GPU支万博1manbetx持版本
使用你的GPU与MATLAB®,则必须安装最新的图形驱动程序。最佳做法是确保您的设备拥有最新的驱动程序。安装驱动程序对于MATLAB中gpu的大多数使用已经足够了,包括gpuArray
以及gpu支持的MATLAB函数。您可以从以下网站下载GPU设备的最新驱动程序英伟达驱动程序下载.
万博1manbetx支持gpu
查看对NVID万博1manbetxIA的支持®GPU架构由MATLAB发布,参考下表。
的cc数字显示了GPU架构的计算能力。要检查您的GPU计算能力,请参阅ComputeCapability
属性的输出中gpuDeviceTable
而且gpuDevice
功能。另外,看到CUDA图形处理器(NVIDIA).
MATLAB版本 | 安培(cc8.x) | 图灵(cc7.5) | Volta (cc7.0, cc7.2) | 帕斯卡(cc6.x) | 麦克斯韦(cc5.x) | 开普勒(cc3.5, cc3.7) | 开普勒(cc3.0, cc3.2) | 费米(cc2.x) | 特斯拉(cc1.3) | CUDA®工具箱版本 |
---|---|---|---|---|---|---|---|---|---|---|
R2021b |
|
|
|
|
|
|
11.0 | |||
R2021a |
|
|
|
|
|
|
11.0 | |||
R2020b |
|
|
|
|
|
|
|
10.2 | ||
R2020a |
|
|
|
|
|
|
|
10.1 | ||
R2019b |
|
|
|
|
|
|
|
10.1 | ||
R2019a |
|
|
|
|
|
|
|
10.0 | ||
R2018b |
|
|
|
|
|
|
|
9.1 | ||
R2018a |
|
|
|
|
|
|
|
9.0 | ||
R2017b |
|
|
|
|
|
|
|
|
8.0 | |
R2017a |
|
|
|
|
|
|
|
|
8.0 | |
R2016b |
|
|
|
|
|
|
|
|
7.5 | |
R2016a |
|
|
|
|
|
|
|
|
7.5 | |
R2015b |
|
|
|
|
|
|
|
|
7.0 | |
R2015a |
|
|
|
|
|
|
|
|
6.5 | |
R2014b |
|
|
|
|
|
|
|
|
6.0 | |
R2014a |
|
|
|
|
|
|
|
|
|
5.5 |
R2013b |
|
|
|
|
|
|
|
|
|
5.0 |
R2013a |
|
|
|
|
|
|
|
|
|
5.0 |
R2012b |
|
|
|
|
|
|
|
|
|
4.2 |
R2012a |
|
|
|
|
|
|
|
|
|
4.0 |
R2011b |
|
|
|
|
|
|
|
|
|
4.0 |
-内置二进制支持。万博1manbetx
对开万博1manbetx普勒和麦克斯韦GPU架构的支持将在未来的版本中移除。那时,使用带有MATLAB的GPU将要求GPU设备具有6.0或更高的计算能力。MATLAB在您第一次使用开普勒或麦克斯韦GPU时生成警告。
-通万博1manbetx过向前兼容性支持。优化的设备库必须在运行时从未优化的版本编译。万博1manbetx支持可能有限,您可能会看到错误和意外行为。有关更多信息,请参见GPU设备的向前兼容性.
—默认情况下,不支持该架构。万博1manbetx您可以通过启用GPU设备的前向万博1manbetx兼容性来启用支持。您可能会看到错误和意外行为。有关更多信息,请参见GPU设备的向前兼容性.
CUDA工具包
如果你想从CU代码生成CUDA内核对象,或者使用GPU Coder™来编译CUDA兼容的源代码、库和可执行文件,你必须安装一个CUDA工具包。CUDA工具包包含用于编译的CUDA库和工具。在GPU上运行MATLAB函数或生成启用CUDA的MEX函数不需要该工具包。
任务 | 需求 |
---|---|
获取最新的图形驱动程序英伟达驱动程序下载. 您也不需要CUDA工具包。 |
|
|
安装您的MATLAB版本所支持的CUDA工具包版本。万博1manbetx |
*要在MATLAB中创建CUDA内核对象,必须同时拥有CU文件和相应的PTX文件。从CU文件编译PTX文件需要CUDA工具包。如果已经有相应的PTX文件,则不需要工具包。
有关在MATLAB中生成CUDA代码的更多信息,请参见运行包含CUDA代码的MEX-Functions而且在GPU上运行CUDA或PTX Code.并非CUDA工具包支持的所有编译器都万博1manbetx在MATLAB中得到支持。
您需要的工具包版本取决于您使用的MATLAB版本。检查工具箱的哪个版本与你的MATLAB版本兼容在表中万博1manbetx支持gpu.推荐的最佳做法是使用您支持的工具包的最新版本,包括来自NVIDIA的任何更新和补丁。万博1manbetx
有关CUDA工具包的更多信息以及下载受支持的版本,请参见万博1manbetxCUDA工具箱档案(英伟达).
GPU设备的向前兼容性
请注意
从R2020b开始,默认情况下禁用GPU设备的前向兼容性。
在R2020a和更早的版本中,不能禁用GPU设备的前向兼容性。
通过在运行时重新编译设备库,向前兼容性允许您使用带有在您的MATLAB版本构建之后发布的架构的GPU设备。
当启用前向兼容性时,CUDA驱动程序将在您第一次访问具有比MATLAB版本更新的架构的设备时重新编译GPU库。重新编译可能需要一个小时。增加CUDA缓存大小以防止这种延迟的再次发生。有关说明,请参见增加CUDA缓存大小.
当禁用前向兼容性时,您无法使用GPU设备执行计算,该GPU设备的架构是在您所使用的MATLAB版本构建之后发布的。如果要在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
设置环境变量。然后,您可以将环境变量从客户机复制到辅助程序,以便辅助程序以与客户机相同的方式执行计算。有关更多信息,请使用在Workers上设置环境变量.
增加了CUDA缓存大小
如果您的GPU架构在MATLAB版本中没有内置二进制支持,图形驱动程序必须编译和缓存GPU库。万博1manbetx当您第一次从MATLAB访问GPU时,这个过程可能需要一个小时。要增加CUDA缓存大小以防止这种延迟的再次发生,请设置环境变量CUDA_CACHE_MAXSIZE
到最低限度536870912
(512 MB)。在客户端,您可以使用setenv
设置环境变量。然后,您可以将环境变量从客户机复制到辅助程序,以便辅助程序以与客户机相同的方式执行计算。有关更多信息,请使用在Workers上设置环境变量.