Trouble launching CUDA kernels from static initialization code
问题 I have a class that calls a kernel in its constructor, as follows: \"ScalarField.h\" #include <iostream> void ERROR_CHECK(cudaError_t err,const char * msg) { if(err!=cudaSuccess) { std::cout << msg << \" : \" << cudaGetErrorString(err) << std::endl; std::exit(-1); } } class ScalarField { public: float* array; int dimension; ScalarField(int dim): dimension(dim) { std::cout << \"Scalar Field\" << std::endl; ERROR_CHECK(cudaMalloc(&array, dim*sizeof(float)),\"cudaMalloc\"); } }; \"classA.h\"