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。


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

猜你喜欢

转载自blog.csdn.net/qq_43666228/article/details/122076261