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 kaminis85 Noah-Hardy

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.

    Uma captura de tela da guia GPUs do Inventário do Cisco UCS Manager mostrando uma placa gráfica P6 no modo Compute

    Uma captura de tela do Cisco UCS Manager mostrando o inventário de GPUs com uma UCSB-GPU-P6-R no modo Compute

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

    Uma captura de tela do vSphere Client mostrando o dispositivo gráfico NVIDIA Tesla P6 configurado para Shared Direct

    Uma captura de tela da janela "Editar configurações do dispositivo gráfico" com a opção "Compartilhado direto" selecionada e a opção "Reiniciar servidor X.Org" marcada

  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").

    Uma captura de tela das Opções de Inicialização da VM do vCenter mostrando o firmware EFI e a Inicialização Segura desativados

  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.

      Uma captura de tela que mostra a seção Editar configurações avançadas do vCenter com um link Editar configuração

    Uma captura de tela da caixa de diálogo Parâmetros de Configuração listando pciPassthru.64bitMMIOSizeGB e pciPassthru.use64bitMMIO valores

  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.

    Uma captura de tela do vCenter Edit Settings mostrando o perfil vGPU NVIDIA GRID grid_p6-16c selecionado para um dispositivo PCI

  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.

    Uma captura de tela da página de Clientes Licenciados do NVIDIA License Server, listando um cliente Ethernet virtual

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