ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

GPU デバイスの識別と選択

コンピューターに 1 つの GPU しかない場合は、その GPU が既定の設定となります。コンピューターに複数の GPU デバイスがある場合は、以下の関数を使用して、使用するデバイスを識別し選択できます。

関数説明
gpuDeviceCountコンピューター内の GPU デバイスの数
gpuDevice使用するデバイスの選択、または選択されているデバイスの確認とそのプロパティの表示

GPUDeviceManager を使用して、GPU デバイスが選択、選択解除またはリセットされるたびに確認することもできます。

クラス説明
GPUDeviceManagerGPU デバイスのマネージャー

例: GPU の選択

次の例では、計算に使用する GPU を識別し選択する方法を示します。

  1. コンピューターにある GPU デバイスの数を決定します。

    gpuDeviceCount
        2
  2. 2 つのデバイスのうち、最初のデバイスが既定値です。そのプロパティを調べて、使用の望ましいデバイスかどうかを判断することができます。

    d = gpuDevice
    
    d =
    
      CUDADevice with properties:
    
                          Name: 'Tesla K20c'
                         Index: 1
             ComputeCapability: '3.5'
                SupportsDouble: 1
                 DriverVersion: 7.5000
                ToolkitVersion: 7.5000
            MaxThreadsPerBlock: 1024
              MaxShmemPerBlock: 49152
            MaxThreadBlockSize: [1024 1024 64]
                   MaxGridSize: [2.1475e+09 65535 65535]
                     SIMDWidth: 32
                   TotalMemory: 5.0330e+09
               AvailableMemory: 4.7858e+09
           MultiprocessorCount: 13
                  ClockRateKHz: 705500
                   ComputeMode: 'Default'
          GPUOverlapsTransfers: 1
        KernelExecutionTimeout: 0
              CanMapHostMemory: 1
               DeviceSupported: 1
                DeviceSelected: 1

    これが使用の望ましいデバイスである場合は、次に進むことができます。

  3. 別のデバイスを使用するには、もう一方のデバイスのインデックスを指定して gpuDevice を呼び出し、プロパティを表示してそれが目的のデバイスであることを確認します。たとえば、この手順で 2 番目のデバイス (インデックスは 1 から開始) を選択し、これを表示します。

    gpuDevice(2)
    

    メモ:   計算容量が十分でないデバイスを選択すると、そのデバイスは使用できないという警告が表示されます。

例: GPU 選択時のメッセージの出力

この例では、デバイスが選択または選択解除されたときのメッセージの出力方法を説明します。

  1. 開始する前に、gpuDevice が選択されていないことをまず確認します。

    gpuDevice([])
    
        Deselecting: 1

  2. デバイスが選択されるときにメッセージを出力します。

    mgr = parallel.gpu.GPUDeviceManager.instance();
    l1 = event.listener(mgr, 'DeviceSelected', @(src, data) fprintf('Selected: %d\n', data.DeviceIndex));
    l2 = event.listener(mgr, 'DeviceDeselecting', @(src, data) fprintf('Deselecting: %d\n', data.DeviceIndex));
    a1 = gpuArray(1:10);
    
        Selected: 1

  3. デバイスが選択解除されるときにメッセージを出力します。

    reset(mgr.SelectedDevice)
    
        Deselecting: 1 
        Selected: 1

    メモ:    計算容量が十分でないデバイスを選択すると、そのデバイスは使用できないという警告が表示されます。

この情報は役に立ちましたか?