This week our long term development branch,
CAAR, got merged into
main. Before that could happen I needed to submit a couple of fixes for outstanding issues.
Our automated builds and scripts for building GoogleTest from scratch all build GoogleTest main. However, after v1.12.1 GoogleTest will no longer support C++11 which Cholla uses. I updated the build scripts to instead pull a specific release of GoogleTest (PR #162). Since future version of Cholla will be using C++14 or newer I submitted a second PR to switch back to GoogleTest main when the C++14 version of Cholla is ready (PR #171).
GPU Resident Reductions
The GPU resident reduction utilities I wrote awhile ago had a race condition that occasionally caused issues. I fixed it and added a function for easily setting GPU memory. I also cleaned up some misleading documentation and implementation. PR #163
Device side pointers can be annoying and difficult to work with, plus they don’t conform well with the C++ principle of Scope-Bound Resource Management or RAII. I implemented a simple class that has an interface similar to
std::vector for handling resource allocation and deallocation, copying to and from the device, and allowing easy host side access to values in the array. PR #170