Blender V4.3
DeviceQueue Class Referenceabstract

#include <queue.h>

Public Member Functions

virtual ~DeviceQueue ()
 
virtual int num_concurrent_states (const size_t state_size) const =0
 
virtual int num_concurrent_busy_states (const size_t state_size) const =0
 
virtual int num_sort_partition_elements () const
 
virtual bool supports_local_atomic_sort () const
 
virtual void init_execution ()=0
 
virtual bool enqueue (DeviceKernel kernel, const int work_size, DeviceKernelArguments const &args)=0
 
virtual bool synchronize ()=0
 
virtual void zero_to_device (device_memory &mem)=0
 
virtual void copy_to_device (device_memory &mem)=0
 
virtual void copy_from_device (device_memory &mem)=0
 
virtual unique_ptr< DeviceGraphicsInteropgraphics_interop_create ()
 
virtual void * native_queue ()
 

Public Attributes

Devicedevice
 

Protected Member Functions

 DeviceQueue (Device *device)
 
void debug_init_execution ()
 
void debug_enqueue_begin (DeviceKernel kernel, const int work_size)
 
void debug_enqueue_end ()
 
void debug_synchronize ()
 
string debug_active_kernels ()
 

Protected Attributes

DeviceKernelMask last_kernels_enqueued_
 
double last_sync_time_
 
map< DeviceKernelMask, doublestats_kernel_time_
 
bool is_per_kernel_performance_
 

Detailed Description

Definition at line 90 of file device/queue.h.

Constructor & Destructor Documentation

◆ ~DeviceQueue()

DeviceQueue::~DeviceQueue ( )
virtual

◆ DeviceQueue()

CCL_NAMESPACE_BEGIN DeviceQueue::DeviceQueue ( Device * device)
explicitprotected

Definition at line 15 of file queue.cpp.

References DCHECK_NE, device, and is_per_kernel_performance_.

Member Function Documentation

◆ copy_from_device()

virtual void DeviceQueue::copy_from_device ( device_memory & mem)
pure virtual

◆ copy_to_device()

virtual void DeviceQueue::copy_to_device ( device_memory & mem)
pure virtual

◆ debug_active_kernels()

string DeviceQueue::debug_active_kernels ( )
protected

Definition at line 101 of file queue.cpp.

References device_kernel_mask_as_string(), and last_kernels_enqueued_.

◆ debug_enqueue_begin()

void DeviceQueue::debug_enqueue_begin ( DeviceKernel kernel,
const int work_size )
protected

◆ debug_enqueue_end()

void DeviceQueue::debug_enqueue_end ( )
protected

Definition at line 75 of file queue.cpp.

References is_per_kernel_performance_, synchronize(), and VLOG_DEVICE_STATS_IS_ON.

◆ debug_init_execution()

void DeviceQueue::debug_init_execution ( )
protected

Definition at line 56 of file queue.cpp.

References last_kernels_enqueued_, last_sync_time_, time_dt(), and VLOG_DEVICE_STATS_IS_ON.

◆ debug_synchronize()

void DeviceQueue::debug_synchronize ( )
protected

◆ enqueue()

virtual bool DeviceQueue::enqueue ( DeviceKernel kernel,
const int work_size,
DeviceKernelArguments const & args )
pure virtual

◆ graphics_interop_create()

virtual unique_ptr< DeviceGraphicsInterop > DeviceQueue::graphics_interop_create ( )
inlinevirtual

Definition at line 152 of file device/queue.h.

References LOG.

◆ init_execution()

virtual void DeviceQueue::init_execution ( )
pure virtual

◆ native_queue()

virtual void * DeviceQueue::native_queue ( )
inlinevirtual

Definition at line 161 of file device/queue.h.

◆ num_concurrent_busy_states()

virtual int DeviceQueue::num_concurrent_busy_states ( const size_t state_size) const
pure virtual

◆ num_concurrent_states()

virtual int DeviceQueue::num_concurrent_states ( const size_t state_size) const
pure virtual

◆ num_sort_partition_elements()

virtual int DeviceQueue::num_sort_partition_elements ( ) const
inlinevirtual

Definition at line 105 of file device/queue.h.

◆ supports_local_atomic_sort()

virtual bool DeviceQueue::supports_local_atomic_sort ( ) const
inlinevirtual

Definition at line 112 of file device/queue.h.

◆ synchronize()

virtual bool DeviceQueue::synchronize ( )
pure virtual

◆ zero_to_device()

virtual void DeviceQueue::zero_to_device ( device_memory & mem)
pure virtual

Member Data Documentation

◆ device

Device* DeviceQueue::device

Definition at line 159 of file device/queue.h.

Referenced by DeviceQueue().

◆ is_per_kernel_performance_

bool DeviceQueue::is_per_kernel_performance_
protected

Definition at line 185 of file device/queue.h.

Referenced by debug_enqueue_end(), DeviceQueue(), and ~DeviceQueue().

◆ last_kernels_enqueued_

DeviceKernelMask DeviceQueue::last_kernels_enqueued_
protected

◆ last_sync_time_

double DeviceQueue::last_sync_time_
protected

Definition at line 180 of file device/queue.h.

Referenced by debug_init_execution(), and debug_synchronize().

◆ stats_kernel_time_

map<DeviceKernelMask, double> DeviceQueue::stats_kernel_time_
protected

Definition at line 182 of file device/queue.h.

Referenced by debug_synchronize(), and ~DeviceQueue().


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