CudaMalloc 在分配内存时失败
CudaMalloc fails while allocating memory
我正在尝试使用 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 调用的正确错误检查的信息。
相关文章:
- 当需要超过16GB的连续内存时,内存分配失败
- 在c++中删除内存失败
- 在构造函数中分配内存失败是如何冒泡的
- CudaMalloc 在分配内存时失败
- 获取进程内存信息失败,错误 6 句柄无效
- 如何防止连续使用"new"时分配失败时内存泄漏
- 无论如何如何重新分配内存,即使 realloc() 在 c++ 中失败
- std::vector<std::vector<int>>:调试断言失败。C++矢量下标超出范围保留内存
- 根 - 填充失败分支:内存驻留树
- 使用GDI+删除位图和CLSID对象时,C++内存管理失败
- C++内存分配失败(使用 new & delete)
- 合并排序逻辑分配内存失败
- 如何创建随机内存分配失败
- 释放内存失败:free():下一个大小无效(快速):
- 文件读取时,文件读取失败后,内存已满
- C++健全性检查失败:几个变量/内存位置被更改为垃圾,即使我从未访问过它们
- Qt Creator-calloc因内存过大而失败
- 内核AIO(libaio)写入请求在启动时从保留的内存中写入时失败
- 为什么 2^80 字节的内存分配不会失败?
- 在Windows上重复数百次后,C++屏幕捕获失败:内存泄漏