【问题标题】:What is the meaning of CUDA return value error 35?CUDA返回值错误35是什么意思?
【发布时间】:2020-03-07 20:25:27
【问题描述】:

我的简单C++ cuda代码源代码

#include <iostream>
#include <cuda.h>

using namespace std;

__global__ void AddIntsCUDA(int *a, int *b, int *c)
{
    *c = *a + *b;
}

int main()
{
    int a, b, c;
    int *d_a, *d_b, *d_c;
    int size = sizeof(int);

    cudaMalloc((void **)&d_a, size);
    cudaMalloc((void **)&d_b, size);
    cudaMalloc((void **)&d_c, size);


    a = 10;
    b = 35;
    c = 0;

    cudaMemcpy(d_a, &a, size, cudaMemcpyHostToDevice);
    cudaMemcpy(d_b, &b, size, cudaMemcpyHostToDevice);

    AddIntsCUDA<<<1, 1>>>(d_a, d_b, d_c);

    cudaMemcpy(&c, d_c, size, cudaMemcpyDeviceToHost);

    cout << "The Answer is "<< c << endl;

    cudaFree(d_a);
    cudaFree(d_b);
    cudaFree(d_c);

    system("pause");

    return 0;
}

Console Output 输出显示 c = 0,但我期望 a 和 b 输出的总和(应该像这个 45,因为 a = 10,b = 35) 解释一下这段代码到底发生了什么

【问题讨论】:

  • 您忽略了从 Cuda 函数返回的值。他们不返回错误吗?
  • 显示 err = 35 它基本上是运行时错误代码
  • Cuda 错误 35 是“cudaErrorInsufficientDriver”。来自文档:这表明安装的 NVIDIA CUDA 驱动程序比 CUDA 运行时库旧。这不是受支持的配置。用户应安装更新的 NVIDIA 显示驱动程序以允许应用程序运行。在此处检查兼容性:docs.nvidia.com/deploy/cuda-compatibility/index.html.
  • @iliar 在我看来(但诚然可能不是其他人......我不能保证),你的贡献也可以变成一个答案。与 Daniel 形成鲜明对比的是,强调您对调试的建议。他们对解决问题的不同方式提出了单独的并且在我看来也很有帮助的答案。或者,由于您之前的评论提到了文档和一般正确答案,您可以对此进行解释并参考 Daniels 更直接适用的链接。
  • zaid 请立即更改相应的代码。请注意,通常必须非常小心地更改已经有答案的问题。 SO 用户不喜欢“移动目标”问题,这是危险的地方。但是,如果考虑到历史,我提出的编辑仍将充分匹配现在存在的答案。我添加了一个解释并希望保护对 iliars 好答案的评论。

标签: c++ cuda gpu


【解决方案1】:

尝试在内核启动之后和复制之前添加cudaError_t err = cudaDeviceSynchronize();。并打印err的值。

使用const char* cudaGetErrorString ( cudaError_t error )在运行时获取错误字符串,或者看这里:
https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html#group__CUDART__TYPES_1gf599e5b8b829ce7db0f5216928f6ecb6

根据您的评论,它是错误号 35,您似乎需要更新驱动程序。

【讨论】:

  • 你不存储它。仅仅是 std::cout
  • 您好投票的 SO 用户。如果问题在某个时候已经显示了建议的调试工具,请不要吝啬这个答案来提出它(这是对问题的一个非常有用的答案,因为它最初发生在有同样问题的人身上),也不要吝啬添加的问题在这个答案之后(这是一个更有用的问题,里面有标题和这个调试代码)。请查看历史和共同目标。
猜你喜欢
  • 2013-04-25
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2017-04-13
  • 1970-01-01
相关资源
最近更新 更多