Blender V4.3
device/hip/queue.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
7#ifdef WITH_HIP
8
9# include "device/kernel.h"
10# include "device/memory.h"
11# include "device/queue.h"
12
13# include "device/hip/util.h"
14
16
17class HIPDevice;
18class device_memory;
19
20/* Base class for HIP queues. */
21class HIPDeviceQueue : public DeviceQueue {
22 public:
23 HIPDeviceQueue(HIPDevice *device);
24 ~HIPDeviceQueue();
25
26 virtual int num_concurrent_states(const size_t state_size) const override;
27 virtual int num_concurrent_busy_states(const size_t state_size) const override;
28
29 virtual void init_execution() override;
30
31 virtual bool enqueue(DeviceKernel kernel,
32 const int work_size,
33 DeviceKernelArguments const &args) override;
34
35 virtual bool synchronize() override;
36
37 virtual void zero_to_device(device_memory &mem) override;
38 virtual void copy_to_device(device_memory &mem) override;
39 virtual void copy_from_device(device_memory &mem) override;
40
41 virtual hipStream_t stream()
42 {
43 return hip_stream_;
44 }
45
46 virtual unique_ptr<DeviceGraphicsInterop> graphics_interop_create() override;
47
48 protected:
49 HIPDevice *hip_device_;
50 hipStream_t hip_stream_;
51
52 void assert_success(hipError_t result, const char *operation);
53};
54
56
57#endif /* WITH_HIP */
virtual int num_concurrent_busy_states(const size_t state_size) const =0
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 unique_ptr< DeviceGraphicsInterop > graphics_interop_create()
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
ccl_gpu_kernel_postfix ccl_global const int ccl_global float const int work_size
DeviceKernel