![]() |
ATLAS Offline Software
|
Namespaces | |
| namespace | Details |
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 | IStreamProvider |
| Interface for components providing CUDA streams to (reentrant) algorithms. More... | |
| class | IStreamSvc |
| Interface for services providing CUDA streams to (reentrant) algorithms. More... | |
| class | IStreamTool |
| Interface for tools providing CUDA streams to (reentrant) algorithms. More... | |
| class | StreamHolder |
| Helper class for handling CUDA streams. More... | |
| class | KernelStatus |
| Helper object used for synchronising GPU kernel tasks. More... | |
| class | AsyncCopyTool |
Tool providing an asynchronous vecmem::copy object for CUDA devices. More... | |
| class | CopyTool |
Tool providing a synchronous vecmem::copy object for CUDA devices. 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 | PerComponentStreamTool |
| Tool providing a separate (single) CUDA stream to the component using it. More... | |
| class | PerEventAndComponentStreamTool |
| Tool providing a separate, per-event CUDA streams to the component using it. More... | |
| class | PerEventStreamSvc |
| Service providing CUDA streams to (reentrant) algorithms. More... | |
| class | SingleStreamSvc |
| Service providing CUDA streams to (reentrant) algorithms. 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... | |
| class | StreamSvcAdaptorTool |
| Tool exposing a CUDA stream service as a CUDA stream tool. 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.