![]() |
ATLAS Offline Software
|
Classes | |
| class | Info |
| Class providing information about the CUDA devices at runtime. More... | |
| struct | DeviceInfo |
| class | IGPUSystemInfoSvc |
| class | IKernelRunnerSvc |
Interface for executing AthCUDA::IKernelTask tasks. More... | |
| class | IKernelTask |
| Abstract interface for setting up / running a CUDA task. More... | |
| class | IStreamPoolSvc |
| Interface for a CUDA stream pool service. More... | |
| class | StreamHolder |
| Helper class for handling CUDA streams. More... | |
| class | KernelStatus |
| Helper object used for synchronising GPU kernel tasks. More... | |
| class | DeviceMemoryResourceTool |
| Tool providing memory resource for device memory. More... | |
| class | GPUSystemInfoSvc |
| class | HostMemoryResourceTool |
| Tool providing memory resource for pinned host memory. More... | |
| class | KernelRunnerSvc |
Service used for executing AthCUDA::IKernelTask tasks. More... | |
| class | KernelRunnerSvcImplCallback |
Class used for calling AthCUDA::KernelRunnerSvc::setTaskFinished. More... | |
| class | KernelRunnerSvcImpl |
CUDA implementation of AthCUDA::KernelRunnerSvc. More... | |
| class | ManagedMemoryResourceTool |
| Tool providing memory resource for managed host/device memory. More... | |
| class | StreamPoolImpl |
| class | StreamPool |
| class | StreamPoolSvc |
| Service managing a fixed number of CUDA streams for an application. More... | |
| class | StreamPoolSvcImpl |
CUDA implementation of AthCUDA::StreamPoolSvc. More... | |
Functions | |
| std::ostream & | operator<< (std::ostream &out, const AthCUDA::Info &info) |
Print operator for AthCUDA::Info. | |
| void | enqueueTask (std::function< void()> f) |
| Enqueue a function to the TBB task arena used for CUDA calls. | |
| tbb::task_arena & | taskArena () |
| void AthCUDA::enqueueTask | ( | std::function< void()> | f | ) |
Enqueue a function to the TBB task arena used for CUDA calls.
Since many (most?) CUDA calls use global locks, in order to avoid waiting times in the threads, one needs to schedule all CUDA operations using a single task arena, which takes care of executing all operations one by one, using the TBB threads allocated for the rest of the job.
Definition at line 20 of file TaskArena.cxx.
| std::ostream & AthCUDA::operator<< | ( | std::ostream & | out, |
| const AthCUDA::Info & | info ) |
Print operator for AthCUDA::Info.
| tbb::task_arena & AthCUDA::taskArena | ( | ) |
Definition at line 14 of file TaskArena.cxx.