CudaMalloc 在分配内存时失败

CudaMalloc fails while allocating memory

本文关键字:失败 内存 分配 CudaMalloc      更新时间:2023-10-16

我正在尝试使用 cudaMalloc 在 GPU 上分配大量内存:cudaMalloc((void**)&count_d, N*sizeof(long));

unsigned long N = 999999999L;

我在那个地方收到一条错误消息,所以问题是我是否分配了太多内存或做错了其他事情。

我得到的错误消息:

CUDA error : an illegal memory access was encountered (77)

正如@talonmies所说,正如cudaMalloc()文档告诉您的那样,调用cudaMalloc()不会触发"非法内存访问"错误 - 这是关于设备代码的非法访问。(主机端代码进行非法内存访问会导致Unix上的SIGSEGV信号或Windows上的保护故障(。

那么,您怎么可能在cudaMalloc()后看到此错误?简单:它发生得更早,你以前根本没有检查错误;或者您没有同步流以执行挂起的内核。

最后,考虑点击@alterIgel作为评论发布的链接,以阅读有关 CUDA API 调用的正确错误检查的信息。