CUDA返回值错误35的含义是什么
What is the meaning of CUDA return value error 35?
我的简单C++库代码源代码
#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;
}
控制台输出输出显示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,似乎你需要更新你的驱动程序。
相关文章:
- 对于具有引用返回类型的搜索算法,默认返回值应该是什么?
- 返回向量元素的 l 值的正确方法是什么?
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- CUDA返回值错误35的含义是什么
- 返回布尔值在 cocos2dx 的 onTouchBegan() 中是什么意思?
- 如何删除新分配的字符,这也是函数返回值?
- 是什么意思,返回值是一个类名,后跟一对空括号
- "警告:并非所有控制路径都返回值"是什么意思?(C++)
- 为循环中多次调用的函数返回值预分配内存的正确方法是什么
- 返回布尔值的函数的命名约定是什么
- 从 boost::algorithm::join 返回值的范围是什么?
- int main() 的返回值是什么意思,如何显示它?
- 打印函数会返回一个意外值,原因是什么
- 当函数返回值是指针,而返回类型是c++中的引用时会发生什么
- rdstate() 返回值是什么意思
- strcmp的返回值是什么意思
- 使用具有返回值的访客模式实现 AST 的最佳方法是什么?
- 对于空映射,map::begin() 的返回值是什么?
- 重用 boost::bind 调用的返回值的正确方法是什么?
- 默认情况下是函数返回值常量(右值)