Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

GPU セットアップ

共同作成者 kaminis85

GATK ツールは、公開時点で、オンプレミスでの GPU ベースの実行をネイティブでサポートしていません。以下のセットアップとガイダンスは、 GATK 用の PCIe メザニンカードを使用して、背面取り付けの NVIDIA Tesla P6 GPU で FlexPod を使用する場合の簡単な方法を読者が理解できるようにします。

次の Cisco Validated Design ( CVD )をリファレンスアーキテクチャとして使用し、 FlexPod 環境をセットアップして GPU を使用するアプリケーションを実行できるようにしました。

このセットアップの重要なポイントを次に示します。

  1. UCS B200 M5 サーバのメザニンスロットに PCIe NVIDIA Tesla P6 GPU を使用しました。

  2. このセットアップでは、 NVIDIA パートナーポータルに登録し、コンピューティングモードで GPU を使用できる評価用ライセンス(使用権)を取得しました。

  3. NVIDIA パートナーの Web サイトから、必要な NVIDIA vGPU ソフトウェアをダウンロードしました。

  4. エンタイトルメント「 *.bin 」ファイルを NVIDIA パートナーの Web サイトからダウンロードしました。

  5. NVIDIA vGPU ライセンスサーバをインストールし、 NVIDIA パートナーサイトからダウンロードした「 *.bin 」ファイルを使用してライセンスサーバに使用権を追加しました。

  6. NVIDIA パートナーポータルで、導入環境に適した NVIDIA vGPU ソフトウェアのバージョンを選択してください。このセットアップでは、ドライバのバージョン 460.73.02 を使用しました。

  7. このコマンドは、ESXi に "NVIDIA vGPU Manager の略"をインストールします。

    [root@localhost:~] esxcli software vib install -v /vmfs/volumes/infra_datastore_nfs/nvidia/vib/NVIDIA_bootbank_NVIDIA-VMware_ESXi_7.0_Host_Driver_460.73.02-1OEM.700.0.0.15525992.vib
    Installation Result
    Message: Operation finished successfully.
    Reboot Required: false
    VIBs Installed: NVIDIA_bootbank_NVIDIA-VMware_ESXi_7.0_Host_Driver_460.73.02-1OEM.700.0.0.15525992
    VIBs Removed:
    VIBs Skipped:
  8. ESXi サーバのリブート後、次のコマンドを実行してインストールを検証し、 GPU の健全性を確認します。

    [root@localhost:~] nvidia-smi
    Wed Aug 18 21:37:19 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.73.02    Driver Version: 460.73.02    CUDA Version: N/A      |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  Tesla P6            On   | 00000000:D8:00.0 Off |                    0 |
    | N/A   35C    P8     9W /  90W |  15208MiB / 15359MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A   2812553    C+G   RHEL01                          15168MiB |
    +-----------------------------------------------------------------------------+
    [root@localhost:~]
  9. vCenter を使用 "設定" グラフィックデバイスの設定は「 Shared Direct 」になります。

  10. RedHat VM のセキュアブートが無効になっていることを確認します。

  11. VM 起動オプションファームウェアが EFI ( "参照( Ref )")。

  12. 次のパラメータが VM オプションの詳細編集設定に追加されていることを確認します。「 pciPassthru.64bitMMIOSizeGB 」パラメータの値は、 VM に割り当てられた GPU のメモリと数によって異なります。例:

    1. VM に 32GB V100 GPU が 4 つ割り当てられている場合は、この値を 128 にします。

    2. VM に 16GB P6 GPU が 4 つ割り当てられている場合、この値は 64 である必要があります。

  13. vCenter で新しい PCI デバイスとして vGPU を仮想マシンに追加する場合は、 PCI デバイスタイプとして NVIDIA GRID vGPU を選択してください。

  14. 使用している GPU 、 GPU メモリ、および使用目的を調整する適切な GPU プロファイルを選択します。たとえば、グラフィックスとコンピューティングです。

  15. Red Hat Linux VM で、次のコマンドを実行して NVIDIA ドライバをインストールできます。

    [root@genomics1 genomics]#sh NVIDIA-Linux-x86_64-460.73.01-grid.run
  16. 次のコマンドを実行して、正しい vGPU プロファイルが報告されていることを確認します。

    [root@genomics1 genomics]# nvidia-smi –query-gpu=gpu_name –format=csv,noheader –id=0 | sed -e ‘s/ /-/g’
    GRID-P6-16C
    [root@genomics1 genomics]#
  17. リブート後は、正しい NVIDIA vGPU がドライバのバージョンと一緒に報告されていることを確認します。

    [root@genomics1 genomics]# nvidia-smi
    Wed Aug 18 20:30:56 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.73.01    Driver Version: 460.73.01    CUDA Version: 11.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  GRID P6-16C         On   | 00000000:02:02.0 Off |                  N/A |
    | N/A   N/A    P8    N/A /  N/A |   2205MiB / 16384MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A      8604      G   /usr/libexec/Xorg                  13MiB |
    +-----------------------------------------------------------------------------+
    [root@genomics1 genomics]#
  18. vGPU グリッド構成ファイルの VM にライセンスサーバの IP が設定されていることを確認してください。

    1. テンプレートをコピーします。

      [root@genomics1 genomics]# cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    2. /etc/nvidia /rid ファイルを編集し、ライセンス・サーバの IP アドレスを追加して、機能タイプを 1 に設定します。

       ServerAddress=192.168.169.10
       FeatureType=1
  19. VM を再起動すると、次のように、ライセンスサーバーのライセンスクライアントの下にエントリが表示されます。

  20. GATK および Cromwell ソフトウェアのダウンロードの詳細については、「 Solutions Setup 」セクションを参照してください。

  21. GATK がオンプレミスで GPU を使用できるようになると、ワークフロー概要言語は「 * 」になります。wdl には、次に示すランタイム属性があります。

    task ValidateBAM {
      input {
        # Command parameters
        File input_bam
        String output_basename
        String? validation_mode
        String gatk_path
        # Runtime parameters
        String docker
        Int machine_mem_gb = 4
        Int addtional_disk_space_gb = 50
      }
      Int disk_size = ceil(size(input_bam, "GB")) + addtional_disk_space_gb
      String output_name = "${output_basename}_${validation_mode}.txt"
      command {
        ${gatk_path} \
          ValidateSamFile \
          --INPUT ${input_bam} \
          --OUTPUT ${output_name} \
          --MODE ${default="SUMMARY" validation_mode}
      }
      runtime {
        gpuCount: 1
        gpuType: "nvidia-tesla-p6"
        docker: docker
        memory: machine_mem_gb + " GB"
        disks: "local-disk " + disk_size + " HDD"
      }
      output {
        File validation_report = "${output_name}"
      }
    }