ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthCUDA
AthCUDAServices
src
KernelRunnerSvcImpl.cxx
Go to the documentation of this file.
1
//
2
// Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
//
4
5
// Local include(s).
6
#include "
KernelRunnerSvcImpl.h
"
7
#include "
KernelRunnerSvc.h
"
8
9
// AthCUDA include(s).
10
#include "
AthCUDAInterfaces/IStreamPoolSvc.h
"
11
12
// System include(s).
13
#include <cassert>
14
15
namespace
AthCUDA
{
16
17
KernelRunnerSvcImplCallback::
18
KernelRunnerSvcImplCallback
(
KernelRunnerSvc
& svc )
19
:
m_svc
( &svc ) {
20
21
}
22
23
KernelRunnerSvcImplCallback
&
KernelRunnerSvcImplCallback::operator()
() {
24
25
assert(
m_svc
!=
nullptr
);
26
m_svc
->setTaskFinished();
27
return
*
this
;
28
}
29
30
KernelRunnerSvcImpl::KernelRunnerSvcImpl
(
IStreamPoolSvc
& streamPool,
31
KernelRunnerSvc
& svc )
32
:
m_streamPool
( &streamPool ),
m_callback
( svc ) {
33
34
}
35
36
StreamHolder
KernelRunnerSvcImpl::getAvailableStream
() {
37
38
assert(
m_streamPool
!=
nullptr
);
39
return
m_streamPool
->getAvailableStream();
40
}
41
42
}
// namespace AthCUDA
IStreamPoolSvc.h
KernelRunnerSvcImpl.h
KernelRunnerSvc.h
AthCUDA::IStreamPoolSvc
Interface for a CUDA stream pool service.
Definition
IStreamPoolSvc.h:24
AthCUDA::KernelRunnerSvcImplCallback::operator()
KernelRunnerSvcImplCallback & operator()()
Call setTaskFinished() on the service object.
Definition
KernelRunnerSvcImpl.cxx:23
AthCUDA::KernelRunnerSvcImplCallback::m_svc
KernelRunnerSvc * m_svc
Pointer to the main service.
Definition
KernelRunnerSvcImpl.h:33
AthCUDA::KernelRunnerSvcImplCallback::KernelRunnerSvcImplCallback
KernelRunnerSvcImplCallback(KernelRunnerSvc &svc)
Constructor with the service object to operate on.
Definition
KernelRunnerSvcImpl.cxx:18
AthCUDA::KernelRunnerSvcImpl::m_streamPool
IStreamPoolSvc * m_streamPool
The stream pool service in use.
Definition
KernelRunnerSvcImpl.h:53
AthCUDA::KernelRunnerSvcImpl::getAvailableStream
StreamHolder getAvailableStream()
Get an available CUDA stream from the pool.
Definition
KernelRunnerSvcImpl.cxx:36
AthCUDA::KernelRunnerSvcImpl::m_callback
KernelRunnerSvcImplCallback m_callback
Helper object to call setTaskFinished() with.
Definition
KernelRunnerSvcImpl.h:56
AthCUDA::KernelRunnerSvcImpl::KernelRunnerSvcImpl
KernelRunnerSvcImpl(IStreamPoolSvc &streamPool, KernelRunnerSvc &svc)
Constructor with all necessary parameters.
Definition
KernelRunnerSvcImpl.cxx:30
AthCUDA::KernelRunnerSvc
Service used for executing AthCUDA::IKernelTask tasks.
Definition
KernelRunnerSvc.h:33
AthCUDA::StreamHolder
Helper class for handling CUDA streams.
Definition
StreamHolder.h:24
AthCUDA
Definition
Info.h:14
Generated on
for ATLAS Offline Software by
1.17.0