Matlab 警告: The CUDA driver must recompile the GPU libraries because your device is more recent than

每次重新打开matlab运行神经网络都会警告,并且重新编译要花费很长时间。网络训练的结果也不对。我的matlab版本是2020a的,cuda是11.3的。
找了很久在mathworks官网找到了答案。

从 R2020b 开始,默认情况下禁用 GPU 设备的向前兼容性。

在 R2020a 和更早版本中,您无法禁用 GPU 设备的向前兼容性。

通过在运行时重新编译设备库,向前兼容性允许您使用具有在您的 MATLAB 版本构建后发布的架构的 GPU 设备。

启用前向兼容性后,CUDA 驱动程序会在您第一次访问架构比您的 MATLAB 版本更新的设备时重新编译 GPU 库。重新编译最多可能需要一个小时。增加 CUDA 缓存大小以防止再次出现此延迟。有关说明,请参阅增加 CUDA 缓存大小。

禁用向前兼容性后,您将无法使用具有在您使用的 MATLAB 版本构建之后发布的架构的 GPU 设备执行计算。如果要在 MATLAB 中使用此 GPU 设备,则必须启用前向兼容性。

警告

启用前向兼容性可能会在 GPU 计算期间导致错误答案和意外行为。

设备库重新编译的成功程度可能因设备架构和 MATLAB 使用的 CUDA 版本而异。在某些情况下,前向兼容性无法按预期工作,库的重新编译会导致错误。

例如,从 CUDA 版本 10.0-10.2(MATLAB 版本 R2019a、R2019b、R2020a 和 R2020b)到 Ampere(计算能力 8.x)的向前兼容性仅具有有限的功能。

您可以使用以下方法为 GPU 设备启用前向兼容性。

使用函数parallel.gpu.enableCUDAForwardCompatibility。使用此方法启用前向兼容性在 MATLAB 会话之间不是持久的。

将环境变量设置 MW_CUDA_FORWARD_COMPATIBILITY为 1. 这可以保持 MATLAB 会话之间的向前兼容性。如果在 MATLAB 运行时更改环境变量,则必须重新启动 MATLAB 才能看到效果。在客户端,您可以使用setenv来设置环境变量。然后,您可以将环境变量从客户端复制到工作程序,以便工作程序以与客户端相同的方式执行计算。有关更多信息,请使用Set Environment Variables on Workers。

增加CUDA缓存大小
如果您的 GPU 架构在您的 MATLAB 版本中没有内置的二进制支持,则图形驱动程序必须编译和缓存 GPU 库。首次从 MATLAB 访问 GPU 时,此过程最多可能需要一个小时。要增加 CUDA 缓存大小以防止再次出现此延迟,请将环境变量CUDA_CACHE_MAXSIZE设置为最小值 536870912(512 MB)。在客户端,您可以使用setenv来设置环境变量。然后,您可以将环境变量从客户端复制到工作程序,以便工作程序以与客户端相同的方式执行计算。有关更多信息,请使用Set Environment Variables on Workers。


这是原地址
这是另一个人也遇到类似的问题

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值