{"push_id":3146627570,"size":10,"distinct_size":3,"ref":"refs/heads/master","head":"6414591e5109a93a09708df9e9b8cc9c06693dfd","before":"2d9e246fe6a17cf39ce08c756980a20108770657","commits":[{"sha":"be2a8a9faa58832ea4482b8e012d5169c805a5f1","author":{"name":"Ben Cumming","email":"6dff6a00ccbf20e91b0353241836aee31c98c5cd@cscs.ch"},"message":"Squashed merge for fine matrix solver (#640)\n\nAdd a new Hines matrix solver implementation for the GPU that can solve a single tree in parallel with multiple threads. It replaces the interleaved solver, which used a single thread to solve each matrix.\r\nBranches with the same common root in the tree can be solved independently on each of the forward and backward solution passes. \r\n\r\n* Add a matrix storage type, `arb::gpu::matrix_state_fine` that stores the branches of multiple trees for efficient backward and forward substitution.\r\n* Extend the `arb::tree` data structure to support operations for choosing a new root node and determining a root node which minimises the maximum distance between the root and any of the trees leaves. \r\n* Implement code for rebalancing a set of matrix trees, a.k.a. a \"forest\" of trees.\r\n* Add CUDA kernels for efficiently performing matrix assembly and matrix solution steps.\r\n* Add CMake option `ARB_WITH_GPU_FINE_MATRIX` for toggling the new solver (default `on`).","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/be2a8a9faa58832ea4482b8e012d5169c805a5f1"},{"sha":"67b70a80f71a0dc4bb8b2f555b6da7b31aba9803","author":{"name":"Sam Yates","email":"db962d84643350d6ce681b3b395abddd681bf9e1@cscs.ch"},"message":"Revert \"Squashed merge for fine matrix solver (#640)\"\n\nThis reverts commit be2a8a9faa58832ea4482b8e012d5169c805a5f1.","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/67b70a80f71a0dc4bb8b2f555b6da7b31aba9803"},{"sha":"0b7f88cad92a446fa8eb135a56fd51572432ba84","author":{"name":"Felix Huber","email":"8f41c68417eaaaac8e0299ea87ed67d546ae4aec@users.noreply.github.com"},"message":"squashed merge for fine matrix solver","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/0b7f88cad92a446fa8eb135a56fd51572432ba84"},{"sha":"276baf0395b5e45570c11a439ea53ffb625949e6","author":{"name":"Ben Cumming","email":"6dff6a00ccbf20e91b0353241836aee31c98c5cd@cscs.ch"},"message":"Forward cuda header paths to host compiler (#652)\n\n* Forward CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES to compilation of arbor library and unit tests.\r\n\r\nFixes #651","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/276baf0395b5e45570c11a439ea53ffb625949e6"},{"sha":"af15856d944937d008f08b2d1e6a0b69a926c8bc","author":{"name":"Sam Yates","email":"db962d84643350d6ce681b3b395abddd681bf9e1@cscs.ch"},"message":"Workaround for CMake 3.12 bug passing -thread to nvcc (#649)\n\nCMake wants to run a device link pass with nvcc despite\r\nthere being no CUDA seperable compilation enabled anywhere,\r\nand then passes on -pthread to that unnecessary nvcc\r\ninvocation when we use the Threads dependency. The latter,\r\nat least, is fixed in CMake 3.13.\r\n\r\nWe used the prefer -pthread option for compatibility with\r\nour earlier build configuration; turning it off will\r\nhopefully have no consequence.\r\n\r\nWe also enable device linking on the arbor library. Which\r\nis not needed, but if they are going to insist on doing it,\r\nit should be on the library rather than the executable.\r\n\r\nCMake then goes and does it on the executable anyway. Great.\r\n\r\nFixes #645.","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/af15856d944937d008f08b2d1e6a0b69a926c8bc"},{"sha":"5e3865cf2091dbbde10e519442c59dae9948c753","author":{"name":"Ben Cumming","email":"6dff6a00ccbf20e91b0353241836aee31c98c5cd@cscs.ch"},"message":"Fix thread-GPU affinity bug. (#656)\n\nEnsure that all threads use the same GPU, which wasn't the case before.\r\n\r\n* add `gpu_context::set_gpu()` method that will set all subsequent GPU calls from the calling thread run on the GPU of `gpu_context`.\r\n* `fvm_lowered_cell_impl` now calls the `set_gpu` method on construction and `advance`.\r\n* Also changed GPU memory allocation errors in `arb::memory` to throw `arb_exception` instead of calling `std::terminate` on error. Now errors due to poor GPU configuration can be caught by the calling application, and unit tests fail gracefully and allow other tests to run.\r\n\r\nFixes #655","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/5e3865cf2091dbbde10e519442c59dae9948c753"},{"sha":"712070f19f29242483c13be22ba1900bbb18adea","author":{"name":"Ben Cumming","email":"6dff6a00ccbf20e91b0353241836aee31c98c5cd@cscs.ch"},"message":"Refactor hardware detection to sup (#654)\n\nRefactoring that moves the logic for determining available concurrency and available GPUs from the core Arbor library to the sup library. This also constitutes work towards providing functionality for allocating GPUs to particular ranks when multiple GPUs are visible per rank.\r\n\r\n* Move core/thread estimation code to sup library.\r\n* Change default resource behaviour to use one thread and no GPU.\r\n* Provide an interface in the sup library for: acquiring a default GPU; for coordinating an allocation of GPUs across multiple MPI ranks.","distinct":false,"url":"https://api.github.com/repos/akuesters/arbor/commits/712070f19f29242483c13be22ba1900bbb18adea"},{"sha":"6db581c10a7ce4615fd18483e9aa420197e61f5a","author":{"name":"noraabiakar","email":"32d77fa25452e127b985e942a644fa25e89da96e@gmail.com"},"message":"Assertion fix (#663)\n\nEvents arrive already sorted first by index then by time. \r\n* Remove sort by event index.\r\n* Replace assertion that events are sorted by time with assertion that they are sorted by index. Assertion that the subrange of events with the same index is sorted by time already exists.","distinct":true,"url":"https://api.github.com/repos/akuesters/arbor/commits/6db581c10a7ce4615fd18483e9aa420197e61f5a"},{"sha":"f0b5892c516009ea13644b616fe0ee44761da3cf","author":{"name":"Sam Yates","email":"db962d84643350d6ce681b3b395abddd681bf9e1@cscs.ch"},"message":"Wrap std::function for sup::on_scope_exit. (#665)\n\n* Provide a helper wrapper for use behind the scenes in the\r\nimplementation of `sup::on_scope_exit` so that we can work around\r\n`std::function` not being nothrow move constructible (and maintaining\r\nthe nothrow move on the `sup::scope_exit` structure).\r\n\r\nFixes #664.","distinct":true,"url":"https://api.github.com/repos/akuesters/arbor/commits/f0b5892c516009ea13644b616fe0ee44761da3cf"},{"sha":"6414591e5109a93a09708df9e9b8cc9c06693dfd","author":{"name":"Anne Kuesters","email":"8c897298287edcc540a9c54e9ba1f04735d67bde@fz-juelich.de"},"message":"Merge remote-tracking branch 'upstream/master'","distinct":true,"url":"https://api.github.com/repos/akuesters/arbor/commits/6414591e5109a93a09708df9e9b8cc9c06693dfd"}]}
{"actor":{"display_login":"akuesters"}}