 |
Blender V4.3
|
Go to the documentation of this file.
16#define GPU_MULTIPRESSOR_MAX_REGISTERS 65536
17#define GPU_MULTIPROCESSOR_MAX_BLOCKS 64
18#define GPU_BLOCK_MAX_THREADS 1024
19#define GPU_THREAD_MAX_REGISTERS 255
21#define GPU_KERNEL_BLOCK_NUM_THREADS 1024
22#define GPU_KERNEL_MAX_REGISTERS 64
26#define GPU_HIPRT_KERNEL_BLOCK_NUM_THREADS 1024
30#define ccl_gpu_kernel(block_num_threads, thread_num_registers) \
31 extern "C" __global__ void __launch_bounds__(block_num_threads, \
32 GPU_MULTIPRESSOR_MAX_REGISTERS / \
33 (block_num_threads * thread_num_registers))
35#define ccl_gpu_kernel_threads(block_num_threads) \
36 extern "C" __global__ void __launch_bounds__(block_num_threads)
38#define ccl_gpu_kernel_signature(name, ...) kernel_gpu_##name(__VA_ARGS__)
39#define ccl_gpu_kernel_postfix
41#define ccl_gpu_kernel_call(x) x
42#define ccl_gpu_kernel_within_bounds(i, n) ((i) < (n))
46#define ccl_gpu_kernel_lambda(func, ...) \
47 struct KernelLambda { \
49 __device__ int operator()(const int state) \
53 } ccl_gpu_kernel_lambda_pass
57#if GPU_KERNEL_BLOCK_NUM_THREADS > GPU_BLOCK_MAX_THREADS
58# error "Maximum number of threads per block exceeded"
61#if GPU_MULTIPRESSOR_MAX_REGISTERS / (GPU_KERNEL_BLOCK_NUM_THREADS * GPU_KERNEL_MAX_REGISTERS) > \
62 GPU_MULTIPROCESSOR_MAX_BLOCKS
63# error "Maximum number of blocks per multiprocessor exceeded"
66#if GPU_KERNEL_MAX_REGISTERS > GPU_THREAD_MAX_REGISTERS
67# error "Maximum number of registers per thread exceeded"