【发布时间】:2015-04-17 18:23:23
【问题描述】:
我想知道.cu 编译单元中隐含了哪些标头。例如,让我们举一些基本的例子:
#include <iostream>
__global__ void kernel(int a, int b, int *c)
{
*c = a * b;
}
int main()
{
int c, *dev_c;
cudaMalloc((void **) &dev_c, sizeof(*dev_c));
kernel<<<1,1>>>(5, 3, dev_c);
cudaMemcpy(&c, dev_c, sizeof(*dev_c), cudaMemcpyDeviceToHost);
cudaFree(dev_c);
std::cout << c << std::endl;
}
根据 C++ 标准,所有函数都必须在使用之前声明(自 C99 以来在 C 中也是如此),所以我猜这些 CUDA 标头包含在“幕后”。
这个问题是相关的,因为我想在 Visual C++ 中获得 IntelliSense 以进行 CUDA API 调用,但我还没有找到任何“官方”参考。
【问题讨论】: