To use your GPU with MATLAB®, you must install a recent graphics driver. Best practice is to ensure you
have the latest driver for your device. Installing the driver is sufficient for most
uses of GPUs in MATLAB, including gpuArray
and GPU-enabled MATLAB functions. You can download the latest drivers for your GPU device at
NVIDIA Driver Downloads.
To see support for NVIDIA® GPU architectures by MATLAB release, consult the following table.
The cc numbers show the compute capability of the GPU
architecture. To check your GPU compute capability, see
ComputeCapability
in the output of the gpuDevice
function. Alternatively,
see CUDA GPUs
(NVIDIA).
MATLAB Release | Ampere (cc8.x) | Turing (cc7.5) | Volta (cc7.0, cc7.2) | Pascal (cc6.x) | Maxwell (cc5.x) | Kepler (cc3.x) | Fermi (cc2.x) | Tesla (cc1.3) | CUDA® Toolkit Version |
---|---|---|---|---|---|---|---|---|---|
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 |
R2011a |
|
|
|
|
|
|
|
| 3.2 |
R2010b |
|
|
|
|
|
|
|
| 3.1 |
– Built-in binary support.
– Support for Kepler and Maxwell GPU
architectures will be removed in a future release. At that time, using a
GPU with MATLAB will require a GPU device with compute capability 6.0 or
greater. MATLAB generates a warning the first time you use a Kepler or
Maxwell GPU.
– Supported via forward
compatibility. Optimized device libraries must be compiled at runtime
from an unoptimized version. Support can be limited and you might see
errors and unexpected behaviour. For more information, see Forward Compatibility for GPU Devices.
– By default, this architecture is
not supported. You can enable support by enabling forward compatibility
for GPU devices. You might see errors and unexpected behaviour. For more
information, see Forward Compatibility for GPU Devices.
If you want to use CUDA kernel objects or use GPU Coder, you must install a CUDA Toolkit. The CUDA Toolkit contains CUDA libraries and tools for compilation.
Task | Requirements |
---|---|
Use | Get the latest graphics driver at NVIDIA Driver Downloads. You do not need the CUDA Toolkit as well. |
Create and use CUDA kernel objects or use GPU Coder. | Install the version of the CUDA Toolkit supported by your MATLAB release. |
For more information about generating CUDA code in MATLAB, see Run MEX-Functions Containing CUDA Code and Run CUDA or PTX Code on GPU. Not all compilers supported by the CUDA Toolkit are supported in MATLAB.
For more information about the CUDA Toolkit and to download your supported version, see CUDA Toolkit Archive (NVIDIA).
Note
Starting in R2020b, forward compatibility for GPU devices is disabled by default.
In R2020a and earlier releases, you cannot disable forward compatibility for GPU devices.
Forward compatibility allows you to use a GPU device with an architecture that was released after your version of MATLAB was built, by recompiling the device libraries at runtime.
When forward compatibility is enabled, the CUDA driver recompiles the GPU libraries the first time you access a device with an architecture newer than your MATLAB version. Recompilation can take up to an hour. Increase the CUDA cache size to prevent a recurrence of this delay. For instructions, see Increase the CUDA Cache Size.
When forward compatibility is disabled, you cannot perform computations using a GPU device with an architecture that was released after the version of MATLAB you are using was built. You must enable forward compatibility if you want to use this GPU device in MATLAB.
Caution
Enabling forward compatibility can result in wrong answers and unexpected behavior during GPU computations.
The degree of success of recompilation of device libraries can vary depending on the device architecture and the CUDA version used by MATLAB. In some cases, forward compatibility does not work as expected and recompilation of the libraries results in errors.
For example, forward compatibility from CUDA version 10.0–10.2 (MATLAB versions R2019a, R2019b, R2020a, and R2020b) to Ampere (compute capability 8.x) has only limited functionality.
You can enable forward compatibility for GPU devices using the following methods.
Use the function parallel.gpu.enableCUDAForwardCompatiblity
. Enabling
forward compatibility using this method is not persistent between
MATLAB sessions.
Set the environment variable
MW_CUDA_FORWARD_COMPATIBILITY
to
1
. This can preserve the forward compatibility
between MATLAB sessions. If you change the environment variable while
MATLAB is running, you must restart MATLAB to see the effect. For help setting an environment
variable, see this example: Set the MATLABPATH Environment Variable
If your GPU architecture does not have built-in binary support in your MATLAB release, the graphics driver must compile and cache the GPU libraries.
This process can take up to an hour the first time you access the GPU from
MATLAB. To increase the CUDA cache size to prevent a recurrence of this delay, set the environment
variable CUDA_CACHE_MAXSIZE
to a minimum of
536870912
(512 MB). For help setting an environment variable,
see this example: Set the MATLABPATH Environment Variable.