ATLAS Offline Software
Classes | Functions
AthCUDA Namespace Reference

Classes

class  IKernelRunnerSvc
 Interface for executing AthCUDA::IKernelTask tasks. More...
 
class  IKernelTask
 Abstract interface for setting up / running a CUDA task. More...
 
class  Info
 Class providing information about the CUDA devices at runtime. More...
 
class  IStreamPoolSvc
 Interface for a CUDA stream pool service. More...
 
class  KernelRunnerSvc
 Service used for executing AthCUDA::IKernelTask tasks. More...
 
class  KernelRunnerSvcImpl
 CUDA implementation of AthCUDA::KernelRunnerSvc. More...
 
class  KernelRunnerSvcImplCallback
 Class used for calling AthCUDA::KernelRunnerSvc::setTaskFinished. More...
 
class  KernelStatus
 Helper object used for synchronising GPU kernel tasks. More...
 
class  StreamHolder
 Helper class for handling CUDA streams. More...
 
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. More...
 
tbb::task_arena & taskArena ()
 Function returning the TBB task arena that should be used for CUDA calls. More...
 

Function Documentation

◆ operator<<()

std::ostream& AthCUDA::operator<< ( std::ostream &  out,
const AthCUDA::Info info 
)

Print operator for AthCUDA::Info.

◆ taskArena()

tbb::task_arena & AthCUDA::taskArena ( )

Function returning the TBB task arena that should be 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 this single task arena, which takes care of executing all operations one by one. Using the TBB threads allocated for the rest of the job.

Returns
A reference to the tbb::task_arena object to use for CUDA calls.

Definition at line 12 of file TaskArena.cxx.

12  {
13 
14  static tbb::task_arena arena ATLAS_THREAD_SAFE ( 1, 0 );
15  return arena;
16  }
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211