Blender  V3.3
device/oneapi/queue.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2021-2022 Intel Corporation */
3 
4 #pragma once
5 
6 #ifdef WITH_ONEAPI
7 
8 # include "device/kernel.h"
9 # include "device/memory.h"
10 # include "device/queue.h"
11 
12 # include "device/oneapi/device.h"
14 
16 
17 class OneapiDevice;
18 class device_memory;
19 
20 /* Base class for OneAPI queues. */
21 class OneapiDeviceQueue : public DeviceQueue {
22  public:
23  explicit OneapiDeviceQueue(OneapiDevice *device);
24  ~OneapiDeviceQueue();
25 
26  virtual int num_concurrent_states(const size_t state_size) const override;
27 
28  virtual int num_concurrent_busy_states() const override;
29 
30  virtual void init_execution() override;
31 
32  virtual bool enqueue(DeviceKernel kernel,
33  const int kernel_work_size,
34  DeviceKernelArguments const &args) override;
35 
36  virtual bool synchronize() override;
37 
38  virtual void zero_to_device(device_memory &mem) override;
39  virtual void copy_to_device(device_memory &mem) override;
40  virtual void copy_from_device(device_memory &mem) override;
41 
42  protected:
43  OneapiDevice *oneapi_device_;
44  OneAPIDLLInterface oneapi_dll_;
45  KernelContext *kernel_context_;
46  bool with_kernel_statistics_;
47 };
48 
50 
51 #endif /* WITH_ONEAPI */
virtual void copy_from_device(device_memory &mem)=0
virtual int num_concurrent_states(const size_t state_size) const =0
virtual void init_execution()=0
virtual void copy_to_device(device_memory &mem)=0
virtual int num_concurrent_busy_states() const =0
virtual bool synchronize()=0
virtual bool enqueue(DeviceKernel kernel, const int work_size, DeviceKernelArguments const &args)=0
virtual void zero_to_device(device_memory &mem)=0
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
SyclQueue void void size_t num_bytes SyclQueue void const char void *memory_device_pointer KernelContext int kernel
DeviceKernel