使用GPU编码器,但得到错误:当运行cuda启用程序时产生错误:[700,cudaErrorIllegalAddress]
19次意见(过去30天)
显示旧的注释
我使用GPU编码器加速N-D插值函数interpn()。
当我的问题规模很小时,即在1-D或2-D维度上进行插值时,一切都很好。但是当我抛出一个更大的5-D插值问题时,MATLAB抛出了以下错误消息:
错误[700,cudaErrorIllegalAddress] an
非法内存访问。生成额外的调试信息,
启用“SafeBuild”GPU代码生成选项。
我遵循了上面的错误信息建议,并添加了“SafeBuild”GPU代码生成选项,但却得到了以下错误:
错误在运行cuda时生成
program: [46,cudaErrorDevicesUnavailable] all
CUDA-capable设备忙或者没空
我知道,当我不使用GPU编码器,代码仍然工作,但有点慢。但是现在当GPU编码器被启用时,它不能工作。我有NVIDIA RTX 2080ti, 11G内存。当我使用CPU进行计算时,这个问题花了1个小时,RAM的峰值使用大约是64GB RAM中的40GB。这个错误是因为我把问题设置得太大而耗尽了GPU内存吗?我怎么才能知道是不是这样呢?
OK更新:我重启了我的Windows电脑,再次运行相同的程序,却显示了以下错误:
错误在运行cuda时生成
program: [2,cudaErrorMemoryAllocation] out的
内存
我认为这证实了我的问题确实是导致GPU内存不足才开始的问题。现在我知道这个问题了,有什么建议如何拆分这个问题给interpn吗?谢谢!