12# ifdef WITH_CUDA_DYNLOAD
25 friend class CUDAContextScope;
33 int cuDevArchitecture;
36 CUDADeviceKernels kernels;
38 static bool have_precompiled_kernels();
42 void set_error(
const string &error)
override;
44 CUDADevice(
const DeviceInfo &info, Stats &stats, Profiler &profiler,
bool headless);
46 ~CUDADevice()
override;
48 bool support_device(
const uint );
50 bool check_peer_access(Device *peer_device)
override;
52 bool use_adaptive_compilation();
54 string compile_kernel_get_common_cflags(
const uint kernel_features);
56 string compile_kernel(
const string &cflags,
58 const char *base =
"cuda",
59 bool force_ptx =
false);
61 bool load_kernels(
const uint kernel_features)
override;
62 void reserve_local_memory(
const uint kernel_features);
65 void mem_alloc(device_memory &mem)
override;
66 void mem_copy_to(device_memory &mem)
override;
67 void mem_move_to_host(device_memory &mem)
override;
69 device_memory &mem,
const size_t y,
size_t w,
const size_t h,
size_t elem)
override;
70 void mem_zero(device_memory &mem)
override;
71 void mem_free(device_memory &mem)
override;
73 device_ptr mem_alloc_sub_ptr(device_memory &mem,
const size_t offset,
size_t )
override;
76 void global_alloc(device_memory &mem);
77 void global_copy_to(device_memory &mem);
78 void global_free(device_memory &mem);
81 void tex_alloc(device_texture &mem);
82 void tex_copy_to(device_texture &mem);
83 void tex_free(device_texture &mem);
86 void get_device_memory_info(
size_t &total,
size_t &
free)
override;
87 bool alloc_device(
void *&device_pointer,
const size_t size)
override;
88 void free_device(
void *device_pointer)
override;
91 bool shared_alloc(
void *&shared_pointer,
const size_t size)
override;
92 void shared_free(
void *shared_pointer)
override;
93 void *shared_to_device_pointer(
const void *shared_pointer)
override;
96 void copy_host_to_device(
void *device_pointer,
void *host_pointer,
const size_t size)
override;
97 void const_copy_to(
const char *name,
void *host,
const size_t size)
override;
99 bool should_use_graphics_interop(
const GraphicsInteropDevice &interop_device,
100 const bool log)
override;
102 unique_ptr<DeviceQueue> gpu_queue_create()
override;
104 int get_num_multiprocessors();
105 int get_max_num_threads_per_multiprocessor();
108 bool get_device_attribute(CUdevice_attribute attribute,
int *value);
109 int get_device_default_attribute(CUdevice_attribute attribute,
const int default_value);
void BLI_kdtree_nd_ free(KDTree *tree)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
#define CCL_NAMESPACE_END