paint-brush
GPUs famintas precisam de armazenamento rápido de objetospor@minio
21,891 leituras
21,891 leituras

GPUs famintas precisam de armazenamento rápido de objetos

por MinIO6m2024/03/15
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

MinIO é capaz de fornecer o desempenho necessário para alimentar suas famintas GPUs; um benchmark recente alcançou 325 GiB/s em GETs e 165 GiB/s em PUTs com apenas 32 nós de SSDs NVMe prontos para uso.

People Mentioned

Mention Thumbnail
featured image - GPUs famintas precisam de armazenamento rápido de objetos
MinIO HackerNoon profile picture

Uma cadeia é tão forte quanto seu elo mais fraco – e sua infraestrutura de IA/ML é tão rápida quanto seu componente mais lento. Se você treinar modelos de aprendizado de máquina com GPUs, seu elo mais fraco pode ser sua solução de armazenamento. O resultado é o que chamo de “problema de GPU faminta”. O problema de Starving GPU ocorre quando sua rede ou solução de armazenamento não consegue fornecer dados de treinamento à sua lógica de treinamento com rapidez suficiente para utilizar totalmente suas GPUs. Os sintomas são bastante óbvios. Se você estiver monitorando suas GPUs, notará que elas nunca chegam perto de serem totalmente utilizadas. Se você instrumentou seu código de treinamento, notará que o tempo total de treinamento é dominado por IO.


Infelizmente, há más notícias para aqueles que estão lutando com esse problema. Vejamos alguns avanços feitos com GPUs para entender como esse problema só vai piorar nos próximos anos.

GPUs estão ficando mais rápidas

As GPUs estão ficando mais rápidas. Não apenas o desempenho bruto está melhorando, mas a memória e a largura de banda também estão aumentando. Vamos dar uma olhada nessas três características das GPUs mais recentes da Nvidia, o A100 , o H100 e a H200 .


GPU

DESEMPENHO

MEMÓRIA

LARGURA DE BANDA DE MEMÓRIA

A100

624 TFLOPS

40 GB

1.555 GB/s

H100

1.979 TFLOPS

80 GB

3,35 TB/s

H200

1.979 TFLOPS

141 GB

4,8 TB/s

A tabela acima usa as estatísticas que se alinham com uma solução de soquete PCIe (Peripheral Component Interconnect Express) para o A100 e a solução de soquete SXM (Server PCI Express Module) para o H100 e o H200. As estatísticas SXM não existem para o A100. Com relação ao desempenho, a estatística Floating Point 16 Tensor Core é usada para comparação.


Vale a pena destacar algumas observações sobre as estatísticas acima. Primeiro, o H100 e o H200 têm o mesmo desempenho (1.979 TFLOPS), que é 3,17 vezes maior que o A100. O H100 tem o dobro de memória que o A100 e a largura de banda da memória aumentou na mesma quantidade - o que faz sentido, caso contrário, a GPU morreria de fome. O H200 pode lidar com impressionantes 141 GB de memória e sua largura de banda de memória também aumentou proporcionalmente em relação às outras GPUs.


Vamos examinar cada uma dessas estatísticas com mais detalhes e discutir o que elas significam para o aprendizado de máquina.


Desempenho - Um teraflop (TFLOP) equivale a um trilhão (10^12) de operações de ponto flutuante por segundo. Isso é um 1 com 12 zeros depois (1.000.000.000.000). É difícil equiparar TFLOPs à demanda de IO em gigabytes, pois as operações de ponto flutuante que ocorrem durante o treinamento do modelo envolvem matemática de tensor simples, bem como primeiras derivadas contra a função de perda (também conhecida como gradientes). No entanto, comparações relativas são possíveis. Olhando para as estatísticas acima, vemos que o H100 e o H200, ambos com desempenho de 1.979 TFLOPS, são 3 vezes mais rápidos – potencialmente consumindo dados 3 vezes mais rápido se todo o resto puder acompanhar.


Memória GPU - Também conhecida como RAM de vídeo ou RAM gráfica. A memória da GPU é separada da memória principal do sistema (RAM) e foi projetada especificamente para lidar com as tarefas intensivas de processamento gráfico executadas pela placa gráfica. A memória da GPU determina o tamanho do lote ao treinar modelos. No passado, o tamanho do lote diminuía ao mover a lógica de treinamento de uma CPU para uma GPU. No entanto, à medida que a memória da GPU alcança a memória da CPU em termos de capacidade, o tamanho do lote usado para treinamento da GPU aumentará. Quando o desempenho e a capacidade de memória aumentam ao mesmo tempo, o resultado são solicitações maiores, onde cada gigabyte de dados de treinamento é processado mais rapidamente.


Largura de banda de memória - Pense na largura de banda de memória da GPU como a “rodovia” que conecta a memória e os núcleos de computação. Ele determina quantos dados podem ser transferidos por unidade de tempo. Assim como uma rodovia mais larga permite que mais carros passem em um determinado período de tempo, uma largura de banda de memória maior permite que mais dados sejam movidos entre a memória e a GPU. Como você pode ver, os projetistas dessas GPUs aumentaram a largura de banda da memória para cada nova versão proporcional à memória; portanto, o barramento de dados interno do chip não será o gargalo.

Um olhar para o futuro

Em agosto de 2023, Nvidia anunciado sua plataforma de próxima geração para computação acelerada e IA generativa - a plataforma GH200 Grace Hopper Superchip. A nova plataforma utiliza o Superchip Grace Hopper , que pode ser conectado com Superchips adicionais por NVIDIA NV Link , permitindo que trabalhem juntos durante o treinamento e inferência do modelo.


Embora todas as especificações do Superchip Grace Hopper representem uma melhoria em relação aos chips anteriores, a inovação mais importante para os engenheiros de IA/ML é sua memória unificada. Grace Hopper dá à GPU acesso total à memória da CPU. Isto é importante porque, no passado, os engenheiros que desejavam usar GPUs para treinamento tinham que primeiro extrair os dados para a memória do sistema e, a partir daí, mover os dados para a memória da GPU. Grace Hopper elimina a necessidade de usar a memória da CPU como buffer de rejeição para enviar dados para a GPU.


A simples comparação de algumas estatísticas importantes da GPU, bem como dos recursos do Grace Hopper, deve ser um pouco assustadora para qualquer pessoa responsável por atualizar as GPUs e garantir que todo o resto possa acompanhar. Uma solução de armazenamento precisará absolutamente fornecer dados em um ritmo mais rápido para acompanhar essas melhorias de GPU. Vejamos uma solução comum para o problema da GPU faminta.

Uma solução comum

Existe uma solução comum e óbvia para esse problema que não exige que as organizações substituam ou atualizem sua solução de armazenamento existente. Você pode manter sua solução de armazenamento existente intacta para aproveitar todos os recursos empresariais que sua organização exige. Esta solução de armazenamento é provavelmente um Data Lake que contém todos os dados não estruturados da sua organização – portanto, pode ser bastante grande e o custo total de propriedade é levado em consideração. Ele também possui muitos recursos habilitados para redundância, confiabilidade e segurança, todos os quais impactam o desempenho.


O que pode ser feito, no entanto, é configurar uma solução de armazenamento que esteja no mesmo data center que sua infraestrutura de computação – idealmente, isso estaria no mesmo cluster que sua computação. Certifique-se de ter uma rede de alta velocidade com os melhores dispositivos de armazenamento disponíveis. A partir daí, copie apenas os dados necessários para o treinamento de ML.


A Amazon anunciou recentemente Amazon S3 Express Uma zona exemplifica essa abordagem. É um tipo de bucket otimizado para alto rendimento e baixa latência e está confinado a uma única zona de disponibilidade (sem replicação). A intenção da Amazon é que os clientes o utilizem para manter uma cópia de dados que exijam acesso de alta velocidade. Conseqüentemente, ele foi desenvolvido especificamente para treinamento de modelo. De acordo com a Amazon, ele fornece 10x a velocidade de acesso a dados do S3 Standard a 8x o custo. Leia mais sobre nossa avaliação do Amazon S3 Express One Zone aqui .

A solução MinIO

A solução comum que descrevi acima exigia que a AWS personalizasse sua solução de armazenamento S3, oferecendo buckets especiais a um custo maior. Além disso, algumas organizações (que não são clientes do MinIO) estão comprando soluções de armazenamento especializadas que fazem as coisas simples que descrevi acima. Infelizmente, isto acrescenta complexidade a uma infra-estrutura existente, uma vez que é necessário um novo produto para resolver um problema relativamente simples.


A ironia de tudo isso é que os clientes do MinIO sempre tiveram essa opção. Você pode fazer exatamente o que descrevi acima com uma nova instalação do MinIO em uma rede de alta velocidade com drives NVMe. MinIO é uma solução de armazenamento definida por software - o mesmo produto é executado em bare metal ou no cluster de sua escolha usando uma variedade de dispositivos de armazenamento. Se o seu Data Lake corporativo usa MinIO em bare metal com HDDs e está funcionando bem para todos os seus dados não ML, não há motivo para substituí-lo. No entanto, se os conjuntos de dados usados para ML exigirem E/S mais rápida porque você está usando GPUs, considere a abordagem descrita nesta postagem. Certifique-se de fazer uma cópia dos seus dados de ML para uso em sua instância de alta velocidade do MinIO - uma cópia dourada sempre deve existir em uma instalação reforçada do MinIO. Isso permitirá que você desative recursos como replicação e criptografia em sua instância de alta velocidade do MinIO, aumentando ainda mais o desempenho. Copiar dados é fácil usando MinIO's espelhamento recurso.



MinIO é capaz de fornecer o desempenho necessário para alimentar suas famintas GPUs - um referência recente alcançou 325 GiB/s em GETs e 165 GiB/s em PUTs com apenas 32 nós de SSDs NVMe prontos para uso.


Download MinIO hoje e aprenda como é fácil construir um data lakehouse. Se você tiver alguma dúvida, entre em contato conosco pelo telefone Folga !


Também aparece aqui .