Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

リリース別の GPU サポート

MATLAB®で GPU を使用するには、最新のグラフィックス ドライバーをインストールしなければなりません。ベスト プラクティスは、必ずお使いのデバイスの最新のドライバーを用意しておくことです。gpuArray、GPU 対応の MATLAB 関数など、MATLAB で GPU を使用するには、ほとんどの場合ドライバーをインストールするだけで十分です。お使いの GPU デバイスの最新のドライバーは、NVIDIADriver Downloadsからダウンロードできます。

サポートされている GPU

MATLAB リリース別の NVIDIA®GPUアーキテクチャのサポートについては、次の表を参照してください。

cc番号は GPU アーキテクチャの Compute Capability を示します。GPU の Compute Capability をチェックするには、関数gpuDeviceの出力のComputeCapabilityを確認します。あるいは、CUDA GPU (NVIDIA)を参照してください。

MATLAB リリース Ampere (cc8.x) Turing (cc7.5) Volta (cc7.0、cc7.2) Pascal (cc6.x) Maxwell (cc5.x) Kepler (cc3.5、cc3.7) Kepler (cc3.0、cc3.2) Fermi (cc2.x) Tesla (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

  • – 組み込みのバイナリ サポート。

  • – Kepler および Maxwell の GPU アーキテクチャに対するサポートは、将来のリリースで削除される予定です。その時点で MATLAB と共に GPU を使用するには、Compute Capability 6.0 以上の GPU デバイスが必要になります。Kepler または Maxwell の GPU がはじめて使用されるときに、MATLAB は警告を生成します。

  • – 上位互換性を通してサポートされます。実行時に、最適化されていないバージョンから最適化されたデバイス ライブラリをコンパイルしなければなりません。サポートには制限がある可能性があり、エラーや予期せぬ動作が発生する場合があります。詳細については、GPUデバイスの上位互換性を参照してください。

  • – 既定では、このアーキテクチャはサポートされていません。GPU デバイスの上位互換性を有効にすると、サポートを有効にすることができます。エラーや予期せぬ動作が発生する場合があります。詳細については、GPUデバイスの上位互換性を参照してください。

CUDAツールキット

CUDA カーネル オブジェクトを CU コードから生成する場合や、GPU Coder™ を使用して CUDA 互換のソース コード、ライブラリおよび実行可能ファイルをコンパイルする場合は、CUDA ツールキットをインストールしなければなりません。CUDA ツールキットには、CUDA のライブラリおよびコンパイル用ツールが含まれています。GPU 上で MATLAB 関数を実行する場合や、CUDA 対応の MEX 関数を生成する場合は、このツールキットは必要ありません。

タスク 要件
  • gpuArrayと GPU 対応の MATLAB 関数を使用する。

  • GPUCoder またはmexcudaを使用して CUDA 対応の MEX 関数をコンパイルする。

NVIDIADriver Downloadsから、最新のグラフィックス ドライバーを入手します。

CUDA ツールキットは不要です。

  • CU コードから CUDA カーネル オブジェクトを作成する。*

  • GPUCoder を使用して CUDA 互換のソース コード、ライブラリおよび実行可能ファイルをコンパイルする。

ご利用の MATLAB リリースでサポートされているバージョンの CUDA ツールキットをインストールします。

* MATLAB で CUDA カーネル オブジェクトを作成するには、CU ファイルおよび対応する PTX ファイルの両方が必要です。CU ファイルから PTX ファイルをコンパイルするには、CUDA ツールキットが必要です。対応する PTX ファイルが既にある場合は、ツールキットは不要です。

MATLAB での CUDA コードの生成の詳細については、CUDA コードを含む MEX 関数の実行およびGPUでの CUDA または PTX コードの実行を参照してください。CUDA でサポートされているコンパイラの一部は、MATLAB でサポートされていません。

必要なツールキットのバージョンは、使用している MATLAB のバージョンによって異なります。使用している MATLAB のバージョンと互換性のあるツールキットのバージョンを確認するには、サポートされている GPUの表を参照してください。推奨されるベスト プラクティスは、サポートされているツールキットの最新バージョン (NVIDIA からのすべての更新やパッチを含む) を使用することです。

CUDA ツールキットの詳細、およびサポートされているバージョンのダウンロードについては、CUDA Toolkit Archive (NVIDIA)を参照してください。

GPUデバイスの上位互換性

メモ

R2020b 以降、GPU デバイスの上位互換性は既定では無効になっています。

R2020a以前のリリースでは,GPUデバイスの上位互換性を無効にすることはできません。

上位互換性を利用すると、実行時にデバイス ライブラリを再コンパイルすることにより、使用している MATLAB のバージョンの構築後にリリースされたアーキテクチャをもつ GPU デバイスを使用できます。

上位互換性が有効な場合、使用している MATLAB バージョンより新しいアーキテクチャをもつデバイスにはじめてアクセスしたときに、CUDA ドライバーによって GPU ライブラリが再コンパイルされます。再コンパイルには最大で 1 時間かかる場合があります。この遅延の再発を防ぐには CUDA のキャッシュ サイズを増やします。詳細については、CUDA のキャッシュ サイズの増加を参照してください。

上位互換性が無効な場合は、使用している MATLAB のバージョンの構築後にリリースされたアーキテクチャをもつ GPU デバイスを使用して計算を実行することはできません。この GPU デバイスを MATLAB で使用する場合は、上位互換性を有効にしなければなりません。

注意

上位互換性を有効にした結果、GPU 計算中に間違った解が得られる場合や、予期せぬ動作が発生する場合があります。

デバイス ライブラリの再コンパイルの成功度は、デバイス アーキテクチャおよび MATLAB で使用されている CUDA のバージョンによって異なる場合があります。場合によっては、上位互換性が期待どおりに機能せず、ライブラリの再コンパイルがエラーになります。

たとえば、CUDA Version 10.0–10.2 (MATLAB Version R2019a、R2019b、R2020a、R2020b) から Ampere (Compute Capability 8.x) への上位互換性は機能が限られています。

次の方法で GPU デバイスの上位互換性を有効にできます。

  • 関数parallel.gpu.enableCUDAForwardCompatibilityを使用します。この方法を使用して有効にした上位互換性は、MATLAB のセッション間で維持されません。

  • 環境変数MW_CUDA_FORWARD_COMPATIBILITY1に設定します。この場合は、上位互換性を MATLAB セッション間で維持できます。MATLAB の実行中に環境変数を変更する場合、効果を確認するには MATLAB を再起動しなければなりません。クライアント上で、setenvを使用して環境変数を設定できます。その後、環境変数をクライアントからワーカーにコピーすると、ワーカーではクライアントと同様に計算が実行されます。詳細については、ワーカー上での環境変数の設定を参照してください。

CUDAのキャッシュ サイズの増加

使用している GPU アーキテクチャが MATLAB リリースの組み込みバイナリ サポートに対応していない場合、グラフィックス ドライバーは GPU ライブラリをコンパイルしてキャッシュしなければなりません。MATLAB から GPU にはじめてアクセスしたときに、このプロセスに最大で 1 時間かかる場合があります。この遅延の再発を防ぐために CUDA のキャッシュ サイズを増加するには、環境変数CUDA_CACHE_MAXSIZEを少なくとも536870912(512 MB) に設定します。クライアント上で、setenvを使用して環境変数を設定できます。その後、環境変数をクライアントからワーカーにコピーすると、ワーカーではクライアントと同様に計算が実行されます。詳細については、ワーカー上での環境変数の設定を参照してください。

関連するトピック

外部の Web サイト