c++ - CUDA 似乎无法编译

标签 c++ visual-studio-2012 cuda

我目前正在我的 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/

相关文章:

c# - 无法将运行时连接字符串转换为其设计时等效的 Visual Studio 2012

asp.net - 尝试使用 VS 2012 打开我的 asp.net 4.5 MVC Web 应用程序时出错。Asp.net 尚未在服务器上注册

visual-studio-2010 - 如何编译 CUDA 应用程序是 Visual Studio 2010?

c++ - CUDA 真的没有类似 calloc() 的 API 调用吗?

java - C++ 等价于 Java 加密

c++ - 为什么1个元素的数组允许2k个元素?

c#-4.0 - 如何更改由 Visual Studio 构建的可执行文件的输出名称

Cuda:查明指针是设备指针还是主机指针

C++ : typeid ignored low level const reference but not pointers

C++ select 只检查最后一个客户端套接字