ATLAS Offline Software
Loading...
Searching...
No Matches
KernelRunnerSvcImpl.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2//
3// Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4//
5#ifndef ATHCUDASERVICES_KERNELRUNNERSVCIMPL_H
6#define ATHCUDASERVICES_KERNELRUNNERSVCIMPL_H
7
8// AthCUDA include(s).
11
12// System include(s).
13#include <memory>
14
15namespace AthCUDA {
16
17 // Forward declaration(s).
18 class IStreamPoolSvc;
19 class KernelRunnerSvc;
20
23
24 public:
27
30
31 private:
34
35 }; // class KernelRunnerSvcImplCallback
36
39
40 public:
43 KernelRunnerSvc& svc );
44
46 void execute( std::unique_ptr< IKernelTask > task );
47
50
51 private:
54
57
58 }; // class KernelRunnerSvcImpl
59
60} // namespace AthCUDA
61
62#endif // ATHCUDASERVICES_KERNELRUNNERSVCIMPL_H
Interface for a CUDA stream pool service.
Class used for calling AthCUDA::KernelRunnerSvc::setTaskFinished.
KernelRunnerSvcImplCallback & operator()()
Call setTaskFinished() on the service object.
KernelRunnerSvc * m_svc
Pointer to the main service.
KernelRunnerSvcImplCallback(KernelRunnerSvc &svc)
Constructor with the service object to operate on.
IStreamPoolSvc * m_streamPool
The stream pool service in use.
StreamHolder getAvailableStream()
Get an available CUDA stream from the pool.
void execute(std::unique_ptr< IKernelTask > task)
Implementation of AthCUDA::IKernelRunnerSvc::execute.
KernelRunnerSvcImplCallback m_callback
Helper object to call setTaskFinished() with.
KernelRunnerSvcImpl(IStreamPoolSvc &streamPool, KernelRunnerSvc &svc)
Constructor with all necessary parameters.
Service used for executing AthCUDA::IKernelTask tasks.
Helper class for handling CUDA streams.
Definition Info.h:14