Escolha a opção de GPU Nvidia apropriada

Concluído

Quando você treina modelos de computação intensiva, escolha a computação de GPU que melhor se adapta às suas necessidades para usar seus recursos da melhor forma.

Lembre-se do modelo de aprendizagem profunda que você deseja treinar para extrair texto manuscrito de formulários de seguro. Você espera usar um grande conjunto de dados e o próprio modelo para ser intensivo em computação. Você se pergunta qual tipo de cluster de computação seria mais adequado para sua carga de trabalho.

Você aprenderá sobre os tipos de GPU oferecidos no Aprendizado de Máquina do Azure e como você pode monitorar para encontrar a configuração ideal.

Tipos de GPU no Azure Machine Learning

Quando você cria uma instância de computação ou cluster no Azure Machine Learning, as máquinas virtuais do Azure são criadas e mantidas para você.

O Azure tem uma ampla gama de tamanhos de máquinas virtuais otimizadas para GPU disponíveis que fazem parte da família N-series:

  • A série NC é usada para computação de alto desempenho e cargas de trabalho de aprendizado de máquina.
  • A série ND é usada para treinamento e inferência de cenários para deep learning.
  • A série NV é usada para visualização remota, cargas de trabalho e outros aplicativos com uso intensivo de gráficos.

Para usar a computação de GPU, você precisa usar o código configurado para funcionar com GPUs. Um erro comum é usar código que não faz uso de GPUs, o que pode resultar em muitos recursos desperdiçados.

A interface de programação GPU mais comum é CUDA (Compute Unified Device Architecture). Para usar o CUDA no Azure Machine Learning, inclua-o no ambiente que você usa ao enviar um trabalho. Muitos dos ambientes selecionados que você pode usar quando treina um modelo de computação intensiva já incluem CUDA.

Ao usar estruturas ou bibliotecas projetadas para usar GPUs, certifique-se de escolher o tipo de GPU apropriado. Por exemplo, se você usa RAPIDs para processar grandes quantidades de dados, precisa criar uma computação de GPU Tesla V100.

Gorjeta

Explore a visão geral dos ambientes selecionados para encontrar o ambiente de que você precisa.

Decida qual tipo de GPU usar

Para decidir qual computação usar para um trabalho, pense nos seguintes fatores:

  • Desempenho: pense na estrutura que você usa para treinar um modelo. Certos algoritmos podem proporcionar uma necessidade de menos tempo para treinar, mas têm um custo mais elevado. O desempenho da GPU varia de acordo com a carga de trabalho, mas uma rápida visão geral pode ser encontrada no site da NVIDIA.
  • Custo: Dependendo de suas necessidades, você pode precisar escolher um modelo que seja mais econômico ou tenha um desempenho melhor. Para economizar custos, você pode usar instâncias reservadas para máquinas virtuais ou máquinas virtuais de baixa prioridade.
  • Local: esteja ciente da disponibilidade de máquinas virtuais por região do Azure. Se seus dados precisarem permanecer em uma determinada região, isso pode afetar sua escolha de modelo.
  • Tamanho da memória GPU: os modelos de aprendizagem profunda se beneficiam quando um cluster de computação tem memória GPU suficiente disponível. Pense nos requisitos de memória para o modelo que você deseja treinar. Os requisitos podem incluir a dimensão do conjunto de dados e o número de parâmetros.

Monitore para encontrar a configuração ideal

A única maneira confiável de encontrar a configuração de computação ideal é executar a carga de trabalho e monitorar os resultados.

Há uma ampla gama de ferramentas de linha de comando disponíveis para monitorar o desempenho da computação da GPU. Uma das ferramentas de linha de comando mais comuns é a NVIDIA System Management Interface (nvidia-smi), que pode ser executada em um intervalo definido.

Example nvidia-smi log

Gorjeta

Saiba mais sobre como usar o nvidia-smi para monitorar a computação da GPU.

Para monitorar o consumo de GPU de um cluster de computação do Azure Machine Learning, você pode usar o Azure Monitor. Uma maneira fácil de acessá-lo é por meio do portal do Azure:

  1. Navegar para https://portal.azure.com.
  2. Vá para o recurso do Azure Machine Learning.
  3. Em Monitorização, selecione Métricas.
  4. Crie um novo gráfico e explore as métricas de utilização da GPU.

Azure Monitor for GPU utilization

No Estúdio de Aprendizado de Máquina do Azure, também é possível monitorar o uso da GPU para execuções específicas.

Entender a quantidade de GPU consumida durante o treinamento do modelo pode ajudar a confirmar se a carga de trabalho está fazendo o melhor uso dos recursos disponíveis. Idealmente, as execuções maximizam a GPU e a memória GPU disponíveis e não são restringidas pela taxa de transferência.

Uma abordagem comum é começar com uma única GPU e nó. Em seguida, você pode aumentar a escala com mais GPUs alterando o tamanho da sua computação no Aprendizado de Máquina do Azure. Você também pode dimensionar entre nós e processar dados em paralelo. Uma abordagem distribuída pode melhorar o desempenho, mas requer mais despesas gerais, pelo que só deve ser feita quando é possível introduzir melhorias significativas.