EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Namespaces | |
namespace | detail |
Classes | |
class | DeviceExperimentCuts |
class | Seedfinder |
struct | DeviceSelector |
Custom device selector that refuses to select NVIDIA OpenCL backends. More... | |
class | QueueWrapper |
Functions | |
void | createSeedsForGroupSycl (const QueueWrapper &wrappedQueue, const detail::DeviceSeedfinderConfig &seedfinderConfig, const DeviceExperimentCuts &deviceCuts, const std::vector< detail::DeviceSpacePoint > &bottomSPs, const std::vector< detail::DeviceSpacePoint > &middleSPs, const std::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 availabe SYCL platforms and devices. | |
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 | ( | const QueueWrapper & | wrappedQueue, |
const detail::DeviceSeedfinderConfig & | seedfinderConfig, | ||
const DeviceExperimentCuts & | deviceCuts, | ||
const std::vector< detail::DeviceSpacePoint > & | bottomSPs, | ||
const std::vector< detail::DeviceSpacePoint > & | middleSPs, | ||
const std::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] | 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] | {bottom,middle,top} | SPs are arrays of simplified internal space point structures of {bottom, middle, top} space points |
[out] | seeds | holds of the generated seed indices and weight |
Definition at line 39 of file CreateSeedsForGroupSycl.cpp.
View newest version in sPHENIX GitHub at line 39 of file CreateSeedsForGroupSycl.cpp
References kdfinder::abs(), ACTS_FATAL, ACTS_LOCAL_LOGGER, Acts::Sycl::detail::SeedData::bottom, c, calculate1DimNDRange(), calculate2DimNDRange(), Acts::Sycl::detail::DeviceSeedfinderConfig::collisionRegionMax, Acts::Sycl::detail::DeviceSeedfinderConfig::collisionRegionMin, Acts::Sycl::detail::DeviceSeedfinderConfig::compatSeedLimit, Acts::Sycl::detail::DeviceSeedfinderConfig::compatSeedWeight, Acts::Sycl::detail::DeviceLinEqCircle::cotTheta, Acts::Sycl::detail::DeviceSeedfinderConfig::cotThetaMax, Acts::Sycl::detail::DeviceTriplet::curvature, Acts::Sycl::detail::DeviceSeedfinderConfig::deltaInvHelixDiameter, deltaR(), Acts::Sycl::detail::DeviceSeedfinderConfig::deltaRMax, Acts::Sycl::detail::DeviceSeedfinderConfig::deltaRMin, Acts::UnitConstants::e, Acts::Sycl::detail::DeviceLinEqCircle::er, exit(), Acts::Sycl::detail::DeviceSeedfinderConfig::filterDeltaRMin, Acts::getDefaultLogger(), Acts::Sycl::QueueWrapper::getQueue(), Acts::UnitConstants::h, handler(), Acts::Sycl::detail::DeviceLinEqCircle::iDeltaR, Acts::Sycl::detail::DeviceSeedfinderConfig::impactMax, Acts::Sycl::detail::DeviceSeedfinderConfig::impactWeightFactor, Acts::Logging::INFO, it, Acts::IntegrationTest::L, Acts::UnitConstants::m, M, Acts::Sycl::detail::DeviceSeedfinderConfig::maxScatteringAngle2, mid, Acts::Sycl::detail::SeedData::middle, min, Acts::Sycl::detail::DeviceSeedfinderConfig::minHelixDiameter2, Acts::Sycl::detail::DeviceSeedfinderConfig::pT2perRadius, Acts::IntegrationTest::R, read(), Acts::Sycl::DeviceExperimentCuts::seedWeight(), Acts::Sycl::detail::DeviceSeedfinderConfig::sigmaScattering, Acts::Sycl::DeviceExperimentCuts::singleSeedCut(), T, t, Acts::Sycl::detail::SeedData::top, Acts::Sycl::detail::DeviceTriplet::topSPIndex, Acts::Sycl::detail::DeviceLinEqCircle::u, Acts::Sycl::detail::DeviceLinEqCircle::v, Acts::Sycl::detail::SeedData::weight, x, y, and Acts::Sycl::detail::DeviceLinEqCircle::zo.
Referenced by Acts::Sycl::Seedfinder< external_spacepoint_t >::createSeedsForGroup().
void Acts::Sycl::listPlatforms | ( | ) |
This function allows us to list availabe 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 name, and conf::version.
Referenced by CommandLineArguments::parse().