このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
MATLAB®でGPUを使用するには,最新のグラフィックスドライバーをインストールしなければなりません。ベストプラクティスは,必ずお使いのデバイスの最新のドライバーを用意しておくことです。gpuArray
, GPU対応のMATLAB関数など,MATLABでGPUを使用するには,ほとんどの場合ドライバーをインストールするだけで十分です。お使いのGPUデバイスの最新のドライバーは,英伟达驱动程序下载からダウンロードできます。
MATLABリリース別のNVIDIA®GPUアーキテクチャのサポートについては,次の表を参照してください。
cc番号はGPUアーキテクチャの计算能力を示します。GPUの计算能力をチェックするには,関数gpuDevice
の出力のComputeCapability
を確認します。あるいは,CUDA GPU(英伟达)を参照してください。
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®ツールキットのバージョン |
---|---|---|---|---|---|---|---|---|---|---|
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 |
——組み込みのバイナリサポート。
——开普勒および麦克斯韦のGPUアーキテクチャに対するサポートは,将来のリリースで削除される予定です。その時点でMATLABと共にGPUを使用するには,以6.0计算能力上のGPUデバイスが必要になります。开普勒または麦克斯韦のGPUがはじめて使用されるときに,MATLABは警告を生成します。
——上位互換性を通してサポートされます。実行時に,最適化されていないバージョンから最適化されたデバイスライブラリをコンパイルしなければなりません。サポートには制限がある可能性があり,エラーや予期せぬ動作が発生する場合があります。詳細については,GPUデバイスの上位互換性を参照してください。
——既定では,このアーキテクチャはサポートされていません。GPUデバイスの上位互換性を有効にすると、サポートを有効にすることができます。エラーや予期せぬ動作が発生する場合があります。詳細については、GPUデバイスの上位互換性を参照してください。
CUDAカーネルオブジェクトを铜コードから生成する場合や,GPU编码器™を使用してCUDA互換のソースコード,ライブラリおよび実行可能ファイルをコンパイルする場合は,CUDAツールキットをインストールしなければなりません。CUDAツールキットには,CUDAのライブラリおよびコンパイル用ツールが含まれています。GPU上でMATLAB関数を実行する場合や,CUDA対応の墨西哥人関数を生成する場合は,このツールキットは必要ありません。
タスク | 要件 |
---|---|
英伟达驱动程序下载から,最新のグラフィックスドライバーを入手します。 CUDAツールキットは不要です。 |
|
|
ご利用のMATLABリリースでサポートされているバージョンのCUDAツールキットをインストールします。 |
* MATLABでCUDAカーネルオブジェクトを作成するには,铜ファイルおよび対応するPTXファイルの両方が必要です。铜ファイルからPTXファイルをコンパイルするには,CUDAツールキットが必要です。対応するPTXファイルが既にある場合は,ツールキットは不要です。
MATLABでのCUDAコードの生成の詳細については,CUDAコードを含む墨西哥人関数の実行およびGPUでのCUDAまたはPTXコードの実行を参照してください。CUDAでサポートされているコンパイラの一部は、MATLAB でサポートされていません。
必要なツールキットのバージョンは,使用しているMATLABのバージョンによって異なります。使用しているMATLABのバージョンと互換性のあるツールキットのバージョンを確認するには,サポートされているGPUの表を参照してください。推奨されるベストプラクティスは,サポートされているツールキットの最新バージョン(NVIDIAからのすべての更新やパッチを含む)を使用することです。
CUDAツールキットの詳細,およびサポートされているバージョンのダウンロードについては,CUDA资料库(英伟达)を参照してください。
メモ
R2020b以降,GPUデバイスの上位互換性は既定では無効になっています。
R2020a以前のリリースでは,GPUデバイスの上位互換性を無効にすることはできません。
上位互換性を利用すると,実行時にデバイスライブラリを再コンパイルすることにより,使用しているMATLABのバージョンの構築後にリリースされたアーキテクチャをもつGPUデバイスを使用できます。
上位互換性が有効な場合,使用しているMATLABバージョンより新しいアーキテクチャをもつデバイスにはじめてアクセスしたときに,CUDAドライバーによってGPUライブラリが再コンパイルされます。再コンパイルには最大で1時間かかる場合があります。この遅延の再発を防ぐにはCUDAのキャッシュサイズを増やします。詳細については,CUDAのキャッシュサイズの増加を参照してください。
上位互換性が無効な場合は,使用しているMATLABのバージョンの構築後にリリースされたアーキテクチャをもつGPUデバイスを使用して計算を実行することはできません。このGPUデバイスをMATLABで使用する場合は,上位互換性を有効にしなければなりません。
注意
上位互換性を有効にした結果,GPU計算中に間違った解が得られる場合や,予期せぬ動作が発生する場合があります。
デバイスライブラリの再コンパイルの成功度は,デバイスアーキテクチャおよびMATLABで使用されているCUDAのバージョンによって異なる場合があります。場合によっては,上位互換性が期待どおりに機能せず,ライブラリの再コンパイルがエラーになります。
たとえば,CUDA 10.0版本-10.2 (MATLAB版本R2019a R2019b, R2020a, R2020b)から安培(计算能力8. x)への上位互換性は機能が限られています。
次の方法でGPUデバイスの上位互換性を有効にできます。
関数parallel.gpu.enableCUDAForwardCompatibility
を使用します。この方法を使用して有効にした上位互換性は,MATLABのセッション間で維持されません。
環境変数MW_CUDA_FORWARD_COMPATIBILITY
を1
に設定します。この場合は,上位互換性をMATLABセッション間で維持できます。MATLABの実行中に環境変数を変更する場合、効果を確認するには MATLAB を再起動しなければなりません。クライアント上で、setenv
を使用して環境変数を設定できます。その後,環境変数をクライアントからワーカーにコピーすると,ワーカーではクライアントと同様に計算が実行されます。詳細については,ワーカー上での環境変数の設定を参照してください。
使用しているGPUアーキテクチャがMATLABリリースの組み込みバイナリサポートに対応していない場合,グラフィックスドライバーはGPUライブラリをコンパイルしてキャッシュしなければなりません。MATLABからGPUにはじめてアクセスしたときに,このプロセスに最大で1時間かかる場合があります。この遅延の再発を防ぐためにCUDAのキャッシュサイズを増加するには,環境変数CUDA_CACHE_MAXSIZE
を少なくとも536870912
(512 MB)に設定します。クライアント上で,setenv
を使用して環境変数を設定できます。その後,環境変数をクライアントからワーカーにコピーすると,ワーカーではクライアントと同様に計算が実行されます。詳細については,ワーカー上での環境変数の設定を参照してください。