0
私は、次のCUDAコードをカプセル化したいと思います:SHARED_MEMORYは__CUDA_ARCH__は別に定義されていない、または何もされている場合__shared__と評価__device__ __host__関数に__shared__変数をカプセル化できますか?
__device__ __host__
void myFunction()
{
SHARED_MEMORY float sharedVar[3];
...
}
:何かに
__device__ __host__
void myFunction()
{
#ifdef __CUDA_ARCH__
__shared__ float sharedVar[3];
#else
float sharedVar[3];
#endif
...
}
は、よりなどの合理化。以下は明白なアプローチである:
#define SHARED_MEMORY \
#ifdef __CUDA_ARCH__ \
__shared__ \
#endif
他のCプリプロセッサディレクティブがマクロで使用することができないのでしかし、これはコンパイルされません。このコードをカプセル化する方法はありますか?
質問がCUDAタグの未回答のリストから外れるように、この回答を受け入れることを覚えておいてください – talonmies