0
我的CUDA内核看起来像这样。我们应该将宏放在CUDA外部还是放在__global__函数内部?
#define MY_AWESOME_MACRO(foo, bar) (foo * bar * 123 + 456)
__global__ void my_CUDA_kernel(int* cool, float* beans) {
// Some computation.
}
我应该把我的宏放在函数内部还是外部?我搜索了一下,有一些做了。这样或那样做有害吗?
无论哪种方式都可以工作,只要宏在被代码引用或扩展之前被定义。预处理器处理宏,因此当宏被定义和扩展时,还没有完成任何代码处理(无论是通过nvcc还是通过使用任何c编译器)。 –
在源文件顶部或头文件中定义宏更方便。使代码更具可读性。 – sgarizvi