Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Configuração GPU

Colaboradores

No momento da publicação, a ferramenta GATK não tem suporte nativo para execução baseada em GPU no local. A configuração e orientação a seguir são fornecidas para permitir que os leitores entendam como é simples usar o FlexPod com uma GPU NVIDIA Tesla P6 montada na traseira usando uma placa mezzanine PCIe para GATK.

Usamos o Cisco-Validated Design (CVD) a seguir como arquitetura de referência e guia de práticas recomendadas para configurar o ambiente FlexPod para que possamos executar aplicativos que usam GPUs.

Aqui está um conjunto de pontos-chave durante esta configuração:

  1. Usamos uma GPU PCIe NVIDIA Tesla P6 em um slot mezzanine nos servidores UCS B200 M5.

    Erro: Imagem gráfica em falta

    Erro: Imagem gráfica em falta

  2. Para essa configuração, nos registramos no portal de parceiros da NVIDIA e obtivemos uma licença de avaliação (também conhecida como direito) para poder usar as GPUs no modo de computação.

  3. Nós baixamos o software vGPU NVIDIA necessário no site do parceiro NVIDIA.

  4. Nós baixamos o arquivo de direitos *.bin do site do parceiro NVIDIA.

  5. Instalamos um servidor de licença NVIDIA vGPU e adicionamos os direitos ao servidor de licenças usando o *.bin arquivo baixado do site do parceiro NVIDIA.

  6. Certifique-se de escolher a versão correta do software NVIDIA vGPU para sua implantação no portal de parceiros da NVIDIA. Para esta configuração, usamos o driver versão 460.73.02.

  7. Este comando instala o "Gerenciador de vGPU do NVIDIA" no ESXi.

    [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. Depois de reiniciar o servidor ESXi, execute o seguinte comando para validar a instalação e verificar a integridade das GPUs.

    [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. Usando o vCenter, "configurar" as configurações do dispositivo gráfico para "Shared Direct".

    Erro: Imagem gráfica em falta

    Erro: Imagem gráfica em falta

  10. Certifique-se de que a inicialização segura esteja desativada para a VM RedHat.

  11. Certifique-se de que o firmware das opções de inicialização da VM está definido como EFI ( "ref").

    Erro: Imagem gráfica em falta

  12. Certifique-se de que os PARÂMETROS a seguir sejam adicionados à Configuração de edição avançada de opções da VM. O valor do pciPassthru.64bitMMIOSizeGB parâmetro depende da memória da GPU e do número de GPUs atribuídas à VM. Por exemplo:

    1. Se uma VM tiver 4 GPUs x 32GB V100, esse valor deverá ser 128.

    2. Se uma VM tiver 4 GPUs x 16GB P6, esse valor deverá ser 64.

      Erro: Imagem gráfica em falta

    Erro: Imagem gráfica em falta

  13. Ao adicionar vGPUs como um novo dispositivo PCI à máquina virtual no vCenter, certifique-se de selecionar NVIDIA GRID vGPU como o tipo de dispositivo PCI.

  14. Escolha o perfil de GPU correto que combina a GPU que está sendo usada, a memória de GPU e o propósito de uso: Por exemplo, gráficos versus computação.

    Erro: Imagem gráfica em falta

  15. Na VM RedHat Linux, os drivers NVIDIA podem ser instalados executando o seguinte comando:

    [root@genomics1 genomics]#sh NVIDIA-Linux-x86_64-460.73.01-grid.run
  16. Verifique se o perfil vGPU correto está sendo relatado executando o seguinte comando:

    [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. Após a reinicialização, verifique se o vGPU NVIDIA correto é relatado juntamente com as versões do driver.

    [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. Verifique se o IP do servidor de licença está configurado na VM no arquivo de configuração de grade vGPU.

    1. Copie o modelo.

      [root@genomics1 genomics]# cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    2. Edite o /etc/nvidia/rid.conf arquivo , adicione o endereço IP do servidor de licença e defina o tipo de recurso como 1.

       ServerAddress=192.168.169.10
       FeatureType=1
  19. Depois de reiniciar a VM, você deve ver uma entrada sob Clientes Licenciados no servidor de licenças, conforme mostrado abaixo.

    Erro: Imagem gráfica em falta

  20. Consulte a seção Configuração de soluções para obter mais informações sobre como baixar o software GATK e Cromwell.

  21. Depois que o GATK pode usar GPUs no local, a linguagem de descrição do fluxo de trabalho *. wdl tem os atributos de tempo de execução, como mostrado abaixo.

    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}"
      }
    }