gpt4 book ai didi

c++ - CUDA返回值错误35是什么意思?

转载 作者:行者123 更新时间:2023-12-02 03:45:12 25 4
gpt4 key购买 nike

我的简单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)解释一下这段代码到底发生了什么

最佳答案

尝试在内核启动之后、复制之前添加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,看来您需要更新驱动程序。

关于c++ - CUDA返回值错误35是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com