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  StreamPool
 
class  StreamPoolImpl
 
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...
 
void enqueueTask (std::function< void()> f)
 Enqueue a function to the TBB task arena used for CUDA calls. More...
 
tbb::task_arena & taskArena ()
 

Function Documentation

◆ enqueueTask()

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.

20  {
21 
22  taskArena().enqueue( f );
23  }

◆ operator<<()

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

Print operator for AthCUDA::Info.

◆ taskArena()

tbb::task_arena& AthCUDA::taskArena ( )

Definition at line 14 of file TaskArena.cxx.

14  {
15 
16  static tbb::task_arena arena ATLAS_THREAD_SAFE ( 1, 0 );
17  return arena;
18  }
hist_file_dump.f
f
Definition: hist_file_dump.py:135
AthCUDA::taskArena
tbb::task_arena & taskArena()
Definition: TaskArena.cxx:14
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211