ATLAS Offline Software
Loading...
Searching...
No Matches
AthDevice::ICopiesTool Class Referenceabstract

Interface for a tool that provides host and device copy objects. More...

#include <ICopiesTool.h>

Inheritance diagram for AthDevice::ICopiesTool:
Collaboration diagram for AthDevice::ICopiesTool:

Public Member Functions

 DeclareInterfaceID (ICopiesTool, 1, 0)
 Declare the interface that the tool will implement.
virtual ~ICopiesTool ()=default
 Destructor.
virtual std::shared_ptr< const vecmem::copy > hostCopy (const EventContext &ctx) const =0
 Get the "host" copy object.
virtual std::shared_ptr< const vecmem::copy > deviceCopy (const EventContext &ctx) const =0
 Get the "device" copy object.

Detailed Description

Interface for a tool that provides host and device copy objects.

A given vecmem::copy object is always for one specific type of copy. It can be for performing host<->device copies to a specific type of device, in synchronous or asynchronous ways. Or it can just be for host<->host copies.

Components performing copies between the host and the device can generally be configured in 2 ways:

  • To use a separate host and device memory resource, and perform explicit copies between allocations from the two.
  • To use a single memory resource that is accessible from both the host and the device. Skipping an explicit host<->device copy.

In both of those cases, the component generally needs access to both a "host" and a "device" copy object. It needs a "host" version in both cases to properly set up / handle buffers allocated in host accessible memory.

Long story short, components that need to perform host<->device copies, need to make use of this interface.

Definition at line 40 of file ICopiesTool.h.

Constructor & Destructor Documentation

◆ ~ICopiesTool()

virtual AthDevice::ICopiesTool::~ICopiesTool ( )
virtualdefault

Destructor.

Member Function Documentation

◆ DeclareInterfaceID()

AthDevice::ICopiesTool::DeclareInterfaceID ( ICopiesTool ,
1 ,
0  )

Declare the interface that the tool will implement.

◆ deviceCopy()

virtual std::shared_ptr< const vecmem::copy > AthDevice::ICopiesTool::deviceCopy ( const EventContext & ctx) const
pure virtual

Get the "device" copy object.

◆ hostCopy()

virtual std::shared_ptr< const vecmem::copy > AthDevice::ICopiesTool::hostCopy ( const EventContext & ctx) const
pure virtual

Get the "host" copy object.


The documentation for this class was generated from the following file: