Tags: acts-project/vecmem
Tags
SoA Proxy, main branch (2024.09.25.) (#296) * Introduced a concatenation constructor for vecmem::tuple. Did not try to make a fully functional vecmem::tuple_cat function, as that was not technically needed so far. * Introduced vecmem::edm::proxy for host containers. Proxies can be used to provide an "AoS view" over an SoA container. A view that would make use of the same interface that the container itself also uses. Code for device container support was also added, but is probably not functional at the moment. * Added "proxy functionality" to vecmem::edm::device as well. While also ensuring that vecmem::edm::proxy would be usable in device code, and also with C++14. * Tweaked the new code and its documentation a little. * Switched to references with the const proxies. As feared, this premature/misguided optimization was not helping with code performance in real life.
Copy (Test) Improvements, main branch (2024.02.29.) (#270) * Harmonized / merged the copy tests. All of the "copy tests" are now instantiated in the same way, inside of single compilation units. * Improved the support for asynchronous SoA operations in vecmem::copy. Unfortunately some issues still remain, which I'm in the process of finding / fixing. * vecmem::abstract_event improvements. Made the sycl_event and cuda_event types implicitly wait for their underlying events in their destructors, if the user did not wait for them explicitly. This is to avoid 99% of the asynchronous errors that I encountered during debugging. At the same time also made it possible to explicitly ignore such events, for the rare case where it may be needed. Finally, introduced VECMEM_FAIL_ON_ASYNC_ERRORS for building the project in a mode where asynchronous errors (users not explicitly ignoring or waiting for an event) would cause the program to terminate. * Fixed remaining synhronization issues identified by the "event improvements". * Disabling some test setups on Windows. It seems that the implementation of CUDA managed memory is a bit more fragile on Windows than on Linux.
HIP <-> SYCL CMake Synchronization, main branch (2024.01.19.) (#262) * Synchronizing the HIP and SYCL language implementations. This is fixing a very long-standing issue with the setup of the SYCL flags. Which can be done much more easily now using vecmem_add_flag(...). * Adapted the Windows/oneAPI configuration to the new setup.
PreviousNext