[過去の記事]
VisualStudioでCUDAを使った時__syncthreads()が使えなくて困ったので対処法を.
参考にしたのはこのあたり.
- __syncthreads(); is undefined need a help
- CUDA __syncthreads() compiles fine but is underlined with red
#ifndef __CUDACC__
#define __CUDACC__
#endif
を追加すればいいっぽい。
linuxでnvccを直に使えば不要なことだけど...
[2018/11/18追記]
linuxのnvccコマンドがgccを呼び出す際のオプションを見てみるとg++ -std=c++14 -c -x c++
-DFATBINFILE="\"/tmp/tmpxft_00000c9b_00000000-3_qr_dlink.fatbin.c\""
-DREGISTERLINKBINARYFILE="\"/tmp/tmpxft_00000c9b_00000000-2_qr_dlink.reg.c\""
-I.
-D__NV_EXTRA_INITIALIZATION=
-D__NV_EXTRA_FINALIZATION=
-D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__
"-I/usr/local/cuda-10.0/bin/../targets/x86_64-linux/include"
-D__CUDACC_VER_MAJOR__=10
-D__CUDACC_VER_MINOR__=0
-D__CUDACC_VER_BUILD__=130
-m64
-o "/tmp/tmpxft_00000c9b_00000000-6_qr_dlink.o"
"/usr/local/cuda-10.0/bin/crt/link.stub"
となっているため,これと同じようなオプションを渡してあげればいいかも?? カテゴリー:CUDA
記事作成日:2017-05-30