主要内容

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

gpuDeviceCount

存在するGPUデバイスの数

    説明

    n= gpuDeviceCountは,GPUデバイスドライバーによって報告された,ローカルマシンに存在するGPUデバイスの数を返します。MATLAB®でサポートされていないデバイスや,現在のMATLABセッションで使用できないデバイスも含めて,ドライバーによって報告されたすべてのデバイスがカウントされます。

    n= gpuDeviceCount (countModeは,countModeに従ってカウントされた,マシン内のGPUデバイスの数を返します。サポートされている GPU デバイスのみをカウントする場合や、この MATLAB セッションで使用可能なデバイスのみをカウントする場合は、この構文を使用します。

    nindx) = gpuDeviceCount (___は,前出の構文のいずれかに関して,カウントされたGPUデバイスのインデックスも返します。カウントされたGPUデバイスを選択または調査する場合は,この構文を使用します。

    すべて折りたたむ

    コンピューター内の使用可能なGPUデバイスの数と,それらのインデックスを特定します。

    [n, indx] = gpuDeviceCount
    N = 2 indx = 1

    gpuDeviceTableを使用してGPUのプロパティをクエリします。

    gpuDeviceTable
    ans =索引名称ComputeCapability DeviceAvailable DeviceSelected  _____ __________________ _________________ _______________ ______________ 1“泰坦RTX”“7.5”真假2“GeForce GTX 1080”“5.0”真正的事实

    複数のGPUにアクセスできる場合,並列プールを使用して複数のGPUで並列計算を実行することができます。

    MATLABで使用可能なGPUの数を特定するには,関数gpuDeviceCountを使用します。

    availableGPUs = gpuDeviceCount (“可用”
    availableGPUs = 3

    使用可能なGPUと同数のワーカーをもつ並列プールを起動します。最良のパフォーマンスを得るために,MATLABは既定でワーカーごとに別々のGPUを割り当てます。

    parpool (“本地”, availableGPUs);
    使用“local”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:3)。

    各ワーカーが使用しているGPUを識別するために,spmdブロック内でgpuDeviceを呼び出します。spmdブロックは各ワーカーでgpuDeviceを実行します。

    spmdgpuDevice结束

    parforparfevalなどの並列言語機能を使用して,並列プールのワーカーに計算を分散します。計算にgpuArray対応関数を使用すると,これらの関数はワーカーのGPUで実行されます。詳細については,GPUでのMATLAB関数の実行を参照してください。例は,複数のGPUでのMATLAB関数の実行を参照してください。

    計算が完了したら,並列プールをシャットダウンします。関数gcpを使用して,現在の並列プールを取得できます。

    删除(gcp (“nocreate”));

    他のGPUを選択して使用する場合は,gpuDeviceでGPUデバイスインデックスを使用して,各ワーカーで特定のGPUを選択できます。関数gpuDeviceCountを使用すると,システム内の各GPUデバイスのインデックスを取得できます。

    システム内に使用可能なGPUが3つあり,その中の2つだけを計算に使用するとします。デバイスのインデックスを取得します。

    [availableGPUs, gpuIndx] = gpuDeviceCount (“可用”
    availableGPUs = 3
    gpuIndx =1×31 2 3

    使用するデバイスのインデックスを定義します。

    useGPUs = [1 3];

    並列プールを起動します。spmdブロックとgpuDeviceを使用して,各ワーカーと使用するGPUのいずれかをデバイスインデックスにより関連付けます。関数labindexは各ワーカーのインデックスを識別します。

    parpool (“本地”元素个数(useGPUs));
    使用“local”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:2)。
    spmdgpuDevice (useGPUs (labindex));结束

    ベストプラクティスとして,また最良のパフォーマンスを得るには,各ワーカーに異なるGPUを割り当てます。

    計算が完了したら,並列プールをシャットダウンします。

    删除(gcp (“nocreate”));

    入力引数

    すべて折りたたむ

    デバイスのカウントモード。次のいずれかとして指定します。

    • “所有”- - - - - - GPUデバイスドライバーによって報告された,すべてのGPUデバイスをカウントします。このカウントには,MATLABでサポートされていないデバイスや,現在のMATLABセッションで使用できないデバイスも含まれます。

    • “金宝app支持”——現在のMATLABのバージョンでサポートされているGPUデバイスのみをカウントします。

    • “可用”——現在のMATLABセッションで使用可能なGPUデバイスのみをカウントします。

    例:“可用”

    データ型:字符|字符串

    出力引数

    すべて折りたたむ

    GPUデバイスの数。正のスカラーとして返されます。

    GPUデバイスのインデックス。数値ベクトルとして返されます。indxの各要素は,カウントされたGPUデバイスのデバイスインデックスです。関数gpuDeviceを使用してGPUデバイスを選択またはクエリするには,デバイスインデックスを使用します。

    R2010bで導入