Analysis Software
Documentation for sPHENIX simulation software
|
Namespaces | |
namespace | detail |
Classes | |
class | DeviceExperimentCuts |
class | SeedFinder |
struct | DeviceSelector |
Custom device selector that refuses to select NVIDIA OpenCL backends. More... | |
class | QueueWrapper |
Typedefs | |
template<typename T > | |
using | device_array = std::unique_ptr< T, detail::DeviceArrayDeleter > |
Convenience type for using (primitive) variable arrays on a SYCL device. | |
Functions | |
void | createSeedsForGroupSycl (QueueWrapper wrappedQueue, vecmem::memory_resource &resource, vecmem::memory_resource *device_resource, const detail::DeviceSeedFinderConfig &seedFinderConfig, const DeviceExperimentCuts &deviceCuts, vecmem::vector< detail::DeviceSpacePoint > &bottomSPs, vecmem::vector< detail::DeviceSpacePoint > &middleSPs, vecmem::vector< detail::DeviceSpacePoint > &topSPs, std::vector< std::vector< detail::SeedData >> &seeds) |
Seedfinding algorithm implemented in SYCL. | |
cl::sycl::nd_range< 1 > | calculate1DimNDRange (const uint32_t numThreads, const uint32_t workGroupSize) |
Calculate global range of 1 dimensional nd_range for kernel execution. | |
cl::sycl::nd_range< 2 > | calculate2DimNDRange (const uint32_t numThreadsDim0, const uint32_t numThreadsDim1, const uint32_t workGroupSize) |
Calculate global and local range of 2 dimensional nd_range for kernel execution. | |
void | listPlatforms () |
This function allows us to list available SYCL platforms and devices. | |
template<typename T > | |
device_array< T > | make_device_array (std::size_t size, cl::sycl::queue &queue) |
Function creating a primitive array in SYCL device memory. | |
using Acts::Sycl::device_array = typedef std::unique_ptr<T, detail::DeviceArrayDeleter> |
Convenience type for using (primitive) variable arrays on a SYCL device.
Definition at line 43 of file Arrays.hpp.
View newest version in sPHENIX GitHub at line 43 of file Arrays.hpp
cl::sycl::nd_range< 1 > Acts::Sycl::calculate1DimNDRange | ( | const uint32_t | numThreads, |
const uint32_t | workGroupSize | ||
) |
Calculate global range of 1 dimensional nd_range for kernel execution.
[in] | numThreads | is the number of threads globally |
[in] | workGroupSize | is the number of threads in one work group |
Calculates the global dimension of the nd_range, which is the smallest multiple of workGroupSize that is not smaller than numThreads.
Definition at line 13 of file CalculateNdRange.cpp.
View newest version in sPHENIX GitHub at line 13 of file CalculateNdRange.cpp
Referenced by createSeedsForGroupSycl().
cl::sycl::nd_range< 2 > Acts::Sycl::calculate2DimNDRange | ( | const uint32_t | numThreadsDim0, |
const uint32_t | numThreadsDim1, | ||
const uint32_t | workGroupSize | ||
) |
Calculate global and local range of 2 dimensional nd_range for kernel execution.
[in] | numThreadsDim0 | is the number of threads globally in the first dimension |
[in] | numThreadsDim1 | is the number of threads globally in the second dimension |
[in] | workGroupSize | is the number of threads in one work group |
Local range is calculated the following way:
Global range is calculated the following way:
Definition at line 20 of file CalculateNdRange.cpp.
View newest version in sPHENIX GitHub at line 20 of file CalculateNdRange.cpp
Referenced by createSeedsForGroupSycl().
void Acts::Sycl::createSeedsForGroupSycl | ( | QueueWrapper | wrappedQueue, |
vecmem::memory_resource & | resource, | ||
vecmem::memory_resource * | device_resource, | ||
const detail::DeviceSeedFinderConfig & | seedFinderConfig, | ||
const DeviceExperimentCuts & | deviceCuts, | ||
vecmem::vector< detail::DeviceSpacePoint > & | bottomSPs, | ||
vecmem::vector< detail::DeviceSpacePoint > & | middleSPs, | ||
vecmem::vector< detail::DeviceSpacePoint > & | topSPs, | ||
std::vector< std::vector< detail::SeedData >> & | seeds | ||
) |
Seedfinding algorithm implemented in SYCL.
[in] | wrappedQueue | is a wrapper object of the SYCL queue |
[in] | resource | is the host-accessible memory resource to use |
[in] | device_resource | is the optional device-accessible memory resource, necessary if resource is not device-accessible |
[in] | seedFinderConfig | includes the required configuration parameters for the algorithm |
[in] | deviceCuts | is an experiment specific object with customizable seed weight altering and seed cutting member functions |
[in] | bottomSPs | an array of simplified internal space point structures of bottom space points |
[in] | middleSPs | an array of simplified internal space point structures of middle space points |
[in] | topSPs | an array of simplified internal space point structures of top space points |
[out] | seeds | holds of the generated seed indices and weight |
Definition at line 47 of file CreateSeedsForGroupSycl.cpp.
View newest version in sPHENIX GitHub at line 47 of file CreateSeedsForGroupSycl.cpp
References ACTS_FATAL, ACTS_LOCAL_LOGGER, calculate1DimNDRange(), calculate2DimNDRange(), Acts::UnitConstants::e, Acts::getDefaultLogger(), Acts::Sycl::QueueWrapper::getQueue(), h, handler(), i, ambiguity_solver_full_chain::idx, Acts::Logging::INFO, Acts::UnitConstants::min, t, and Acts::UnitConstants::T.
Referenced by Acts::Sycl::SeedFinder< external_spacepoint_t >::createSeedsForGroup().
void Acts::Sycl::listPlatforms | ( | ) |
This function allows us to list available SYCL platforms and devices.
Available platforms and devices only include previously linked targets by CMake, which can optionally be altered by environment variable SYCL_BE.
Definition at line 20 of file ListPlatforms.cpp.
View newest version in sPHENIX GitHub at line 20 of file ListPlatforms.cpp
References perf_headwind::name.
Referenced by CommandLineArguments::parse().
device_array<T> Acts::Sycl::make_device_array | ( | std::size_t | size, |
cl::sycl::queue & | queue | ||
) |
Function creating a primitive array in SYCL device memory.
Definition at line 47 of file Arrays.hpp.
View newest version in sPHENIX GitHub at line 47 of file Arrays.hpp
References size.