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