Olá Habr! Os conjuntos de dados para Big Data e aprendizado de máquina estão crescendo exponencialmente e precisamos acompanhar seu processamento. Nosso post sobre mais uma tecnologia inovadora na área de computação de alto desempenho (HPC, High Performance Computing), apresentada no estande da Kingston em . Esta é a aplicação de sistemas de armazenamento de dados Hi-End (SCD) em servidores com processadores gráficos (GPU) e a tecnologia de barramento GPUDirect Storage. Graças à troca direta de dados entre a SCD e a GPU, contornando a CPU, o carregamento de dados nos aceleradores de GPU é acelerado de forma significativa, permitindo que aplicativos de Big Data operem em seu máximo desempenho, proporcionado pelas GPUs. Por sua vez, os desenvolvedores de sistemas HPC estão interessados nos avanços em SCDs com altíssima velocidade de entrada/saída — como os produzidos pela Kingston.

O desempenho da GPU supera o carregamento de dados
Desde que o CUDA foi criado em 2007 — uma arquitetura de hardware e software para computação paralela baseada em GPU para o desenvolvimento de aplicativos de propósito geral, as capacidades dos próprios GPUs cresceram de forma incrível. Hoje, os GPUs estão se tornando cada vez mais utilizados em aplicações HPC, como Big Data, aprendizado de máquina (ML, machine learning) e aprendizado profundo (DL, deep learning).
Vale lembrar que, apesar da semelhança dos termos, as duas últimas são tarefas algoritmicamente diferentes. O ML ensina o computador com base em dados estruturados, enquanto o DL se baseia na resposta de uma rede neural. Um exemplo que ajuda a entender as diferenças é bem simples. Suponha que o computador precise distinguir fotos de gatos e cães carregadas a partir de um armazenamento de dados. Para o ML, é necessário fornecer um conjunto de imagens com muitos rótulos, cada um definindo uma característica específica do animal. Para o DL, basta carregar um número muito maior de imagens, mas apenas com um rótulo, como “isto é um gato” ou “isto é um cão”. O DL se assemelha bastante à forma como se ensina crianças pequenas — elas simplesmente veem imagens de cães e gatos em livros e na vida real (na maioria das vezes, nem se explicam as diferenças detalhadas), e o cérebro da criança começa a identificar o tipo de animal após um certo número crítico de imagens para comparação (estima-se que esse número seja apenas algumas dezenas ao longo da infância). Os algoritmos de DL ainda não são tão perfeitos: para que uma rede neural funcione tão bem na definição de imagens, é necessário fornecer e processar milhões de imagens em uma GPU.
A conclusão da introdução é: com base em GPUs, é possível construir aplicações HPC nas áreas de Big Data, ML e DL, mas existe um problema — os conjuntos de dados são tão grandes que o tempo gasto para carregar dados do sistema de armazenamento para a GPU começa a reduzir o desempenho geral da aplicação. Em outras palavras, as GPUs rápidas permanecem subutilizadas devido à lenta entrada e saída de dados vindos de outros subsistemas. A diferença de velocidade na entrada/saída da GPU e do barramento para a CPU/armazenamento pode ser de uma ordem de magnitude.
Como funciona a tecnologia GPUDirect Storage?
O processo de entrada e saída é controlado pela CPU, assim como o processo de carregamento de dados do armazenamento para as GPUs para processamento posterior. Daí surgiu a demanda por uma tecnologia que proporcionasse acesso direto entre GPUs e discos NVMe para rápida interação entre si. A primeira tecnologia desse tipo foi proposta pela NVIDIA e chamada de GPUDirect Storage. Essencialmente, é uma variante da tecnologia anteriormente desenvolvida por eles chamada GPUDirect RDMA (Acesso Direto à Memória Remota).

Jensen Huang, CEO da NVIDIA, apresenta o GPUDirect Storage como uma variante do GPUDirect RDMA na feira SC-19. Fonte: NVIDIA
A diferença entre GPUDirect RDMA e GPUDirect Storage reside nos dispositivos envolvidos na endereçamento. A tecnologia GPUDirect RDMA é projetada para mover dados diretamente entre a placa de interface de rede (NIC) e a memória da GPU, enquanto o GPUDirect Storage fornece um caminho direto para a transmissão de dados entre armazenamento local ou remoto, como NVMe ou NVMe over Fabric (NVMe-oF), e a memória da GPU.
Ambas as opções, GPUDirect RDMA e GPUDirect Storage, evitam movimentações desnecessárias de dados através do buffer na memória da CPU e permitem que o mecanismo de acesso direto à memória (DMA) transfira dados da placa de rede ou do armazenamento diretamente para a memória da GPU ou dela — tudo isso sem sobrecarregar a CPU central. Para o GPUDirect Storage, a localização do armazenamento não importa: pode ser um disco NVME dentro da unidade com a GPU, dentro do rack ou conectado à rede como NVMe-oF.

Diagrama de funcionamento do GPUDirect Storage. Fonte: NVIDIA
Soluções de armazenamento de alta performance em NVMe são altamente demandadas no mercado de aplicações HPC.
Entendendo que, com o surgimento do GPUDirect Storage, os interesses de grandes clientes se voltariam para sistemas de armazenamento com velocidades de entrada/saída que correspondem à largura de banda da GPU, na SC-19, a Kingston demonstrou um sistema composto por um armazenamento baseado em discos NVMe e uma unidade com GPU, que realizava análise de milhares de imagens de satélite por segundo. Já discutimos sobre esse sistema de armazenamento baseado em 10 unidades DC1000M U.2 NVMe. .

O sistema de armazenamento baseado em 10 unidades DC1000M U.2 NVMe complementa adequadamente um servidor com aceleradores gráficos. Fonte: Kingston.
Este sistema de armazenamento é apresentado na forma de uma unidade de rack 1U ou maior e pode ser dimensionado de acordo com o número de discos DC1000M U.2 NVMe, onde cada um tem capacidade de 3.84-7.68 TB. O DC1000M é o primeiro modelo de SSD NVMe no formato U.2 na linha de unidades Kingston para data centers. Ele possui uma classificação de durabilidade (DWPD, Drive Writes Per Day), permitindo a regravação de dados em sua capacidade total uma vez por dia durante a vida útil garantida da unidade.
No teste fio v3.13 no sistema operacional Ubuntu 18.04.3 LTS, kernel Linux 5.0.0-31-generic, a amostra em exibição do sistema de armazenamento apresentou uma velocidade de leitura (Sustained Read) de 5.8 milhões IOPS com uma largura de banda sustentada (Sustained Bandwidth) de 23.8 Gbps.
Ariél Peres, gerente de negócios de SSD na Kingston, descreveu os novos sistemas de armazenamento: "Estamos prontos para fornecer a próxima geração de servidores com soluções de SSD U.2 NVMe, para eliminar muitos dos gargalos na transmissão de dados que tradicionalmente estiveram associados a sistemas de armazenamento. A combinação de unidades NVMe SSD e nossa memória premium Server Premier DRAM torna a Kingston um dos fornecedores mais completos do setor em soluções integradas para processamento de dados."

O teste gfio v3.13 mostrou uma taxa de transferência de 23,8 Gbps para um sistema de armazenamento demonstrativo com discos DC1000M U.2 NVMe. Fonte: Kingston
Como seria um sistema típico para aplicações HPC, onde a tecnologia GPUDirect Storage ou semelhante está implementada? É uma arquitetura com separação física das unidades funcionais dentro do rack: uma ou duas unidades para a memória, algumas para nós computacionais de GPU e CPU, e uma ou mais unidades para o sistema de armazenamento.
Com o anúncio do GPUDirect Storage e a possível aparição de tecnologias semelhantes de outros fornecedores de GPU, a demanda da Kingston por sistemas de armazenamento voltados para computação de alto desempenho está aumentando. Um marcador será a velocidade de leitura de dados do sistema de armazenamento, comparável à largura de banda de placas de rede de 40 ou 100 Gbps na entrada da unidade computacional com GPU. Assim, sistemas de armazenamento ultrarrápidos, incluindo NVMe externos via Fabric, deixarão de ser exóticos e se tornarão mainstream para aplicações HPC. Além da ciência e cálculos financeiros, eles encontrarão aplicação em muitas outras áreas práticas, como sistemas de segurança em grandes cidades, como Safe City, ou centros de monitoramento no transporte, onde é necessária uma velocidade de reconhecimento e identificação na ordem de milhões de imagens HD por segundo", destacou a importância dos principais sistemas de armazenamento.
Mais informações sobre os produtos da Kingston podem ser encontradas em a empresa.
Fonte: habr.com
