Releases: acts-project/vecmem
Releases · acts-project/vecmem
VecMem 1.2.0
Release including the following update(s) since v1.1.0
:
- Added the previously missing
const_data
type tovecmem::edm::container
; - Made
vecmem::edm::data
objects movable; - Changed how a lot of the templating in
vecmem::copy
would work;- Functions copying between two templated types are no longer ensuring through
static_assert
-s that the template types would be compatible with each other. Instead, these functions now use "a single" template type, and explicitly ask for constant views to be copied from, and non-constant views/containers to be copied into. Leaving it up to the view code to do any necessary type conversion itself. - This fixed an issue that prevented copying from a constant
vecmem::edm::view
object into a non-const one.
- Functions copying between two templated types are no longer ensuring through
VecMem 1.1.0
Release including the following update(s) since v1.0.0
:
- Made
vecmem::details::aligned_multiple_placement
work correctly with more than two types/arrays. - Fixed the logic for setting the size of a buffer with
vecmem::copy
. Making sure that the correct "copy direction" would be used in all circumstances. - Made SYCL source file builds generate and use dependency files correctly. To ensure that header file changes would trigger re-builds correctly.
- Introduced
vecmem::tuple
as a lightweight tuple implementation, which works in device code.- The code is a copy of
detray::tuple
with some small modifications. - Empty tuples are not supported, as they were not needed so far.
- The code is a copy of
- Introduced the
vecmem::edm
namespace, and a whole set of classes/traits/functions therein, for efficient SoA EDM declarations.- While having taught
vecmem::copy
how to handle such SoA types as efficiently as possible.
- While having taught
VecMem 1.0.0
After the recent slight ABI changes around the memory resources, which ABI should be easier to keep stable, this is the first "proper release" of the project.
The changes since v0.27.0
are:
- Changed / narrowed how various public classes export their symbols. Allowing for the removal of all warning suppressions from the public headers.
- Fixed a warning on Windows in one of the CUDA tests.
- Updated the project to use an AlmaLinux 9 based developer container with VS Code, and modernised the project's VS Code configuration slightly at the same time.
VecMem Beta 0.27.0
Release including the following update(s) since v0.26.0:
- Updated to GoogleTest v1.14.0, to avoid a warning with CMake >=3.27;
- Multiple updates for better Windows support:
- Disabled warnings about using STL types in the public interface of
vecmem::sycl::async_copy
; - Made SYCL DLL building work correctly with CMake >=3.27;
- Disabled warnings about using STL types in the public interface of
- Introduced protections against using
bool
containers.
VecMem Beta 0.26.0
Release including the following update(s) since v0.25.0:
- Introduced
vecmem::sycl::local_accessor
to make it easier to use local/shared memory in device code with different SYCL versions; - Made the code work correctly with the latest version (0.9.4) of OpenSYCL/hipSYCL;
- Made all memory resources handle
0
sized allocation requests in the same way, by returning anullptr
(and not raising any errors); - Updated
vecmem::data::jagged_vector_buffer
not to request0
sized allocations under any circumstance; - Improved the Doxygen documentation very slightly.
VecMem Beta 0.25.0
Release including the following update(s) since v0.24.0:
- Added a second template argument to
vecmem::device_atomic_ref
, making it capable of operating on "local memory" with SYCL; - Added a
<vecmem/version.hpp>
auto-generated header file to the project.
VecMem Beta 0.24.0
Release including the following update(s) since v0.23.0:
- Introduced tests to make sure that all public headers in the project can be included on their own;
- Fixed some minor cases where this was not true until now;
- Made the project build without warnings when using
-Wconversion
with current GCC / Clang versions; - Changed the API of the constructors of
vecmem::data::vector_buffer
andvecmem::data::jagged_vector_buffer
, to hopefully be a bit less error-prone.
VecMem Beta 0.23.0
Release including the following update(s) since v0.22.0:
- Introduced Doxygen documentation building for the project;
- Made all remaining 64->32 bit conversions explicit in the code to avoid compiler warnings;
- Made the atomic operation tests a bit more elaborate in device code, to help with debugging some remaining issues in Intel's SYCL compiler;
- Made it possible to build the (SYCL sources of the) project using
icx-cl.exe
on Windows; - Made the
vecmem::data::jagged_vector_buffer
constructors accept not juststd::size_t
, but other unsigned integral type "size vectors" as well.
VecMem Beta 0.22.0
Release including the following update(s) since v0.21.0:
- Added explicit support for building the project with hipSYCL;
- At the same time made the build system a little more robust, and updated the list of platforms tested in the CI;
- Made all "data owning" types default constructible;
- Implemented a consistent set of constructor, assignment operators and comparison operators for all of the view types;
- Introduced the
VECMEM_FAIL_ON_WARNINGS
flag to control whether-Werror
(or an equivalent compiler flag) should be used in the build; - Introduced an asynchronous interface for
vecmem::copy
, updated all existing copy types to this asynchronous interface, and introducedvecmem::sycl::async_copy
to support asynchronous copies with SYCL; - Made all functions on
vecmem::copy
const.
VecMem Beta 0.21.0
Release including the following update(s) since v0.20.0:
- Removed the custom
vecmem::sycl::device_selector
class in order to make the project compatible with SYCL2020 v5.