QMCPACK
Queue< PlatformKind::SYCL > Class Template Reference
+ Collaboration diagram for Queue< PlatformKind::SYCL >:

Public Member Functions

 Queue ()
 
template<class DSC >
void enqueueH2D (DSC &dataset, typename DSC::size_type size=0, typename DSC::size_type offset=0)
 
template<class DSC >
void enqueueD2H (DSC &dataset, typename DSC::size_type size=0, typename DSC::size_type offset=0)
 
void sync ()
 
sycl::queuegetNative ()
 

Private Attributes

sycl::queue queue_
 

Detailed Description

template<>
class qmcplusplus::compute::Queue< PlatformKind::SYCL >

Definition at line 25 of file QueueSYCL.hpp.

Constructor & Destructor Documentation

◆ Queue()

Queue ( )
inline

Definition at line 28 of file QueueSYCL.hpp.

sycl::queue createSYCLInOrderQueueOnDefaultDevice()
create an in-order queue using the default device
Definition: SYCLruntime.cpp:20

Member Function Documentation

◆ enqueueD2H()

void enqueueD2H ( DSC &  dataset,
typename DSC::size_type  size = 0,
typename DSC::size_type  offset = 0 
)
inline

Definition at line 45 of file QueueSYCL.hpp.

46  {
47  if (dataset.data() == dataset.device_data())
48  return;
49 
50  if (size == 0)
51  queue_.memcpy(dataset.data() + offset, dataset.device_data() + offset,
52  dataset.size() * sizeof(typename DSC::value_type));
53  else
54  queue_.memcpy(dataset.data() + offset, dataset.device_data() + offset, size * sizeof(typename DSC::value_type));
55  }
QMCTraits::FullPrecRealType value_type

◆ enqueueH2D()

void enqueueH2D ( DSC &  dataset,
typename DSC::size_type  size = 0,
typename DSC::size_type  offset = 0 
)
inline

Definition at line 32 of file QueueSYCL.hpp.

33  {
34  if (dataset.data() == dataset.device_data())
35  return;
36 
37  if (size == 0)
38  queue_.memcpy(dataset.device_data() + offset, dataset.data() + offset,
39  dataset.size() * sizeof(typename DSC::value_type));
40  else
41  queue_.memcpy(dataset.device_data() + offset, dataset.data() + offset, size * sizeof(typename DSC::value_type));
42  }
QMCTraits::FullPrecRealType value_type

◆ getNative()

sycl::queue& getNative ( )
inline

Definition at line 59 of file QueueSYCL.hpp.

◆ sync()

void sync ( )
inline

Definition at line 57 of file QueueSYCL.hpp.

Member Data Documentation

◆ queue_

sycl::queue queue_
private

Definition at line 62 of file QueueSYCL.hpp.


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