Cからcudaのヘッダにアクセスする方法
__global__
void func(){}
のような関数がある場合、その関数はソースファイルに隠蔽しなければならない。すなわち
//func.cuh //cudaのヘッダ void func();
//func.cu //cudaのソース __global__ void funcDevice(){ //CudaCode } void func(){ //... cudaDevice<<<1,1>>>(); //... }
//func.cpp //cudaのヘッダ #include "func.cuh" int main(){ //... func(); //... return 0; }
みたいな感じにプログラムを組めば大丈夫。要はcuhでCudaのヘッダを書いてはいけない。書く場合はCコードからincludeしない。ということらしい。
知らなかったー。