Skip to content

Releases: root-project/veccore

VecCore 0.4.0

05 Apr 15:56
1797975
Compare
Choose a tag to compare

This version of VecCore changes the way VecCore is found by CMake, by providing backends as components. That is, if users want to use the Vc backend, they can add the following to their CMakeLists.txt file:

find_package(VecCore 0.4.0 REQUIRED COMPONENTS Vc)

add_definitions(${VecCore_DEFINITIONS})
include_directories(${VecCore_INCLUDE_DIRS})
link_libraries(${VecCore_LIBRARIES})

to add the proper flags for compiling with VecCore and the Vc backend enabled. For the UME::SIMD backend,
only the COMPONENTS have to change to UMESIMD in the call to find_package(). The scalar backend
does not require any components to be enabled, and both Vc and UMESIMD can be enabled at the same time, as well as CUDA.

If users want to search for all backends, but prefer a single one, several variables are available to support this.
In addition to the standard variables, per component variables are also defined, such as VecCore_<backend>_DEFINITIONS, and VecCore_<backend>_INCLUDE_DIR, that can be used to compile code with a single backend enabled, even if multiple backends have been found and enabled. To find both backends without failure, one should use find_package(VecCore 0.4.0 REQUIRED OPTIONAL_COMPONENTS Vc UMESIMD), and then check if either VecCore_UMESIMD_FOUND and/or VecCore_Vc_FOUND have been set.

Note, however, that since CUDA is a special case (different architecture), no libraries are added automatically to either VecCore_LIBRARIES or VecCore_CUDA_LIBRARIES. For CUDA targets, the user must provide all target options explicitly. VecCore support only enables CUDA support for VecCore's own API, which itself requires no libraries. For that, VecCore_DEFINITIONS or VecCore_CUDA_DEFINITIONS should be added to the compile options of CUDA targets.

VecCore 0.3.2

28 Mar 12:55
v0.3.2
005dce9
Compare
Choose a tag to compare

This release contains the following relevant changes:

  • Fix for a bug in VectorSize() function for reference types
  • Updated builtin Vc to version 1.3.1
  • Updated builtin UME::SIMD to version 0.8.1

VecCore 0.3.1

23 Feb 19:09
Compare
Choose a tag to compare

This release contains a few minor fixes to let VecCore work with the Ninja CMake generator and to allow compilation for the first generation of Xeon Phi (Knights Corner).

VecCore 0.3.0

21 Feb 13:11
Compare
Choose a tag to compare

This is the first release of VecCore as an independent project.

Main changes since last version:

  • Internal code refactoring
  • New CopySign() and IsInf() functions
  • KNL compilation with GCC/Clang
  • Updated documentation
  • VecCore now uses the Apache-2 license
  • Continuous integration with Travis CI and GitLab CI
  • CMake modules for installing Vc and UME::SIMD as externals
  • Updated CMake files for use by dependent projects