CUDA
文章平均质量分 54
王大锤的记事本
这个作者很懒,什么都没留下…
展开
-
cudaGetErrorName和cudaGetErrorString的区别
我们知道,在CUDA编程中,经常需要检查运行时函数返回的错误,如下代码 cudaError = cudaGetDeviceProperties(&deviceProp, 100); if (cudaError != cudaSuccess) { auto s = cudaGetErrorName(cudaError); cout << s << endl; return 1; } 而返回的值是枚举类型的值,其定义是 enum __device_built原创 2022-01-22 18:08:03 · 860 阅读 · 0 评论 -
编写CUDA程序注意事项
1. 熟悉头文件 2.选择设备 只有一个GPU时,cudaSetDevice(0),检查是否成功。 3. 检查运行时函数返回值 检查每个函数的返回值,是否成功,类型包括cudaError_t(成功值为枚举值cudaSuccess)等。 4. kernel运行后查错 错误转换:API返回的是枚举的量,可以通过cudaGetErrorName 获得字符串的错误信息,该API处于头文件中。 #include <cuda_device_runtim...原创 2022-01-22 17:55:14 · 2370 阅读 · 0 评论 -
CUDA中cuSolver的稀疏矩阵格式CSR格式和普通dense矩阵的格式互转。
CSR格式表示的矩阵,如图: 稀疏矩阵被3个向量来表示: 1. csrRowPtr: 可以理解为每一行前累计的非零元素的个数(最后一个元素就是非零元素的总个数)。 2.csrColInd: 每一个非零元素所在的列index。 3.csrVal: 每一个非零的元素本身的值。 下面实现了列主元格式和CSR格式的互转。 用列主元表示上图中的矩阵...原创 2019-01-18 22:01:23 · 2223 阅读 · 0 评论