主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

parallel.gpu.enableCUDAForwardCompatibility

查询和设置 GPU 设备的前向兼容性

    说明

    如果启用了 GPU 设备的向前兼容性,则 tf = parallel.gpu.enableCUDAForwardCompatibility() 返回 true,否则返回 false。默认值为 false

    当禁用向前兼容性时,您无法使用在您使用的 MATLAB® 版本构建之后发布的架构的 GPU 设备执行计算。

    parallel.gpu.enableCUDAForwardCompatibility(tf) 启用或禁用 GPU 设备的向前兼容性。tf 必须是 true (1) 或 false (0)。

    如果启用向前兼容性,则当您第一次访问具有比 CUDA® 版本更新的架构的设备时,MATLAB 驱动程序会重新编译 GPU 库。重新编译可能需要几分钟。

    启用前向兼容性在 MATLAB 会话之间不是持久的。

    小心

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

    有关详细信息,请参阅GPU 设备的前向兼容性

    示例

    全部折叠

    如果您使用的 GPU 的架构是在 MATLAB 版本之后发布的,则默认情况下,您无法使用该 GPU 在 MATLAB 中执行计算。要在 MATLAB 中使用该 GPU,请启用 GPU 设备的向前兼容性。

    检查是否启用了向前兼容。

    tf = parallel.gpu.enableCUDAForwardCompatibility()
    tf = 
       0
    

    启用向前兼容性。

    parallel.gpu.enableCUDAForwardCompatibility(1)

    选择并使用 GPU 设备。

    gpuDevice(2);
    A = ones(100,'gpuArray');

    第一次从 MATLAB 访问 GPU 时,CUDA 驱动程序会重新编译库。重新编译可能需要几分钟。

    输入参数

    全部折叠

    要设置的前向兼容性状态,指定为数值或逻辑 1 (true) 或 0 (false)。

    示例: 0

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

    GPU 设备的前向兼容性

    注意

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

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

    启用向前兼容性以使用在您的 MATLAB 版本之后发布的架构的 GPU 设备。

    当您启用向前兼容性时,当您第一次访问具有比 CUDA 版本更新的架构的设备时,MATLAB 驱动程序会重新编译 GPU 库。重新编译最多需要一个小时。为了防止这种延迟再次发生,请增加 CUDA 缓存大小。有关如何增加 CUDA 缓存大小的说明,请参阅 增加 CUDA 缓存大小

    小心

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

    设备库重新编译的成功程度取决于设备架构和 CUDA 使用的 MATLAB。在某些情况下,前向兼容性不能按预期工作,并且重新编译库会导致错误。

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

    为 GPU 设备启用前向兼容性

    您可以使用其中任一方法启用 GPU 设备的前向兼容性。

    • 使用 parallel.gpu.enableCUDAForwardCompatibility 函数。当您使用此函数时,MATLAB 会话之间的前向兼容性不会持续。为了在 MATLAB 启动时自动启用前向兼容性,请在 startup 脚本中调用 parallel.gpu.enableCUDAForwardCompatibility 函数。

    • MW_CUDA_FORWARD_COMPATIBILITY 环境变量设置为 1。此设置保留了 MATLAB 会话之间的前向兼容性。如果在 MATLAB 运行时更改环境变量,则必须重新启动 MATLAB 才能看到效果。

    增加 CUDA 缓存大小

    要增加 CUDA 缓存大小,请将 CUDA_CACHE_MAXSIZE 环境变量设置为最小 536870912 (512 MB)。

    设置环境变量

    要在 MATLAB 客户端上设置环境变量,请使用 setenv 函数。如果您正在使用并行工作单元,请参阅设置工作单元的环境变量

    扩展功能

    全部展开

    版本历史记录

    在 R2020b 中推出