我目前正在我的 Visual Studio 2012 Express 上运行 CUDA 5.0 工具包。
我试图运行下面的代码
我到处搜索在 Visual Studio 上编译 .cu 的方法,但无济于事
我尝试编译的代码:
//CUDA.cu
#include <iostream>
#include <cuda.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
using namespace std;
__global__ void Add(int* a, int* b)
{
a[0] += b[0];
}
int main()
{
int a = 5, b = 9;
int *d_a, *d_b;
cudaMalloc(&d_a, sizeof(int));
cudaMalloc(&d_b, sizeof(int));
cudaMemcpy(d_a, &a, sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(d_b, &b, sizeof(int), cudaMemcpyHostToDevice);
Add<<< 1 , 1 >>>(d_a, d_b);
cudaMemcpy(&a, d_a, sizeof(int) , cudaMemcpyDeviceToHost);
cout << a << endl;
return 0;
}
编译器在行中显示错误
Add<<< 1 , 1 >>>(d_a, d_b);
它说 “错误:需要一个表达式”
任何编译此代码的尝试都会成功。但是找不到 .exe,因此我无法进行任何调试。
Unable to start program 'C:\Users\...\CUDATest3.exe'
The system cannot find the file specified
非常感谢任何帮助。谢谢
CK
最佳答案
虽然我很想了解为什么在我的计算机中 CUDA 决定 VS 是一个可悲的程序,但我通过从 CUDA 提供的模板复制来给这两个程序戴上手铐采取了捷径安装工具包。 (CUDA 示例。)
显然,这些示例已经设置好一切并准备就绪;您需要做的就是从解决方案本身内部编辑代码。出于某种原因,如果我从第一步开始编写所有代码,代码将无法运行。
我仍然不知道为什么我无法让它从头开始运行,但我猜
编辑示例模板会得到非常令人满意的结果
如果没有时间。
关于c++ - CUDA 似乎无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25819851/