A inevitabilidade da penetração do FPGA nos data centers

A inevitabilidade da penetração do FPGA nos data centers
Você não precisa ser um designer de chips para programar FPGAs, assim como não precisa ser um programador C++ para escrever código em Java. No entanto, em ambos os casos, provavelmente será útil.

O objetivo de comercializar as tecnologias Java e FPGA é refutar a última afirmação. Boas notícias para FPGAs - usando as camadas de abstração e o conjunto de ferramentas corretos, nos últimos 35 anos desde a invenção do dispositivo lógico programável, a criação de algoritmos e fluxos de dados para FPGAs em vez de CPUs, DSPs, GPUs ou qualquer outra forma de ASICs personalizados tornou-se cada vez mais comum.

A incrível oportunidade de sua criação é evidente no fato de que justamente quando as CPUs não podiam mais ser o único módulo de computação dos data centers a executar muitas tarefas - por diversas razões - os FPGAs alcançaram sua eficácia, oferecendo velocidade, baixa latência e recursos de rede. e memória - capacidades de computação heterogêneas dos SoCs FPGA modernos, que são sistemas de computação quase completos. No entanto, os FPGAs também são combinados com sucesso com outros dispositivos em sistemas híbridos e, em nossa opinião, estão apenas começando a encontrar o seu devido lugar na hierarquia da computação.

É por isso que organizamos a conferência The Next FPGA Platform em San Jose, no dia 22 de janeiro. Naturalmente, um dos principais fornecedores de FPGA do mundo e pioneiro nesta área é a Xilinx. Ivo Bolsens, vice-presidente sênior e diretor de tecnologia da Xilinx, falou na conferência e nos deu hoje suas idéias sobre como a Xilinx está ajudando a criar sistemas de computação mutáveis ​​para data centers.

Os arquitetos de sistemas e programadores levaram muito tempo para criar um data center heterogêneo, que contará com vários tipos de potência computacional que resolverão problemas de computação, armazenamento e rede. Isto parece necessário devido ao fato de que está se tornando cada vez mais difícil seguir a Lei de Moore usando vários dispositivos CMOS. Por enquanto, nossa linguagem ainda é centrada na CPU e ainda falamos sobre “aceleração de aplicativos”, o que significa fazer os programas rodarem melhor do que aquilo que pode ser feito apenas nas CPUs. Com o tempo, os data centers se tornarão coleções de poder computacional, armazenamento de dados e protocolos que unem tudo, e voltaremos a termos como “computação” e “aplicativos”. A computação híbrida se tornará tão normal quanto os serviços de nuvem atuais executados em desktops ou máquinas virtuais e, em algum momento, simplesmente usaremos a palavra “computação” para descrever como eles funcionam. Em algum momento - e é provável que os FPGAs ajudem a inaugurar esta era - chamaremos isso de processamento de dados novamente.

A adoção de FPGAs em data centers exigirá uma mudança de mentalidade. “Ao pensar em maneiras de acelerar os aplicativos atuais, você precisa se aprofundar no básico sobre como eles funcionam, quais recursos são usados ​​e onde o tempo é gasto”, explica Bolsens. – Você precisa estudar o problema geral que está tentando resolver. Muitos aplicativos executados em data centers hoje são dimensionados para consumir grandes quantidades de recursos. Veja o aprendizado de máquina, por exemplo, que usa um grande número de nós de computação. Mas quando falamos em aceleração, precisamos pensar não apenas em acelerar a computação, mas também em acelerar a infraestrutura.”

Por exemplo, no tipo de operações de aprendizagem automática que Bolsens estudou na prática, aproximadamente 50% do tempo é gasto na transferência de dados entre o poder de computação disperso, e apenas a metade restante do tempo é gasta nos próprios cálculos.

“É aqui que acho que o FPGA pode ajudar, porque podemos garantir que os aspectos computacionais e de comunicação da aplicação sejam otimizados. E podemos fazer isso no nível geral da infraestrutura e no nível do chip. Esta é uma das grandes vantagens dos FPGAs, permitindo criar redes de comunicação para necessidades específicas de aplicação. Com base em padrões típicos de movimentação de dados em cargas de trabalho de IA, não vejo necessidade de uma arquitetura complexa baseada em switch. Você pode construir uma rede com um grande fluxo de dados. O mesmo se aplica às tarefas de treinamento de redes neurais - você pode construir uma rede mesh com tamanhos de pacotes que se adaptam a uma tarefa específica. Usando um FPGA, protocolos de transferência de dados e topologias de circuito podem ser dimensionados com muita precisão e adaptados para uma aplicação específica. E no caso do aprendizado de máquina, também está claro que não precisamos de números de ponto flutuante de precisão dupla, e podemos ajustar isso também.”

A diferença entre um FPGA e uma CPU ou ASIC customizado é que estes últimos são programados de fábrica, e depois disso você não pode mais mudar de ideia sobre os tipos de dados que estão sendo calculados ou os elementos que estão sendo calculados, ou sobre a natureza dos dados. fluir através do dispositivo. Os FPGAs permitem que você mude de ideia se as condições operacionais mudarem.

No passado, esta vantagem tinha um custo, quando a programação de FPGA não era para os fracos de coração. A necessidade é abrir os compiladores FPGA para melhor integração com as ferramentas que os programadores usam para escrever aplicativos paralelos à CPU em C, C++ ou Python, e terceirizar parte do trabalho para bibliotecas que aceleram procedimentos em FPGAs. Isso é o que a pilha de aprendizado de máquina Vitis faz, alimentando plataformas de ML como Caffe e TensorFlow, com bibliotecas para executar modelos convencionais de IA ou adicionar recursos de FPGA a tarefas como transcodificação de vídeo, reconhecimento de objetos de vídeo e análise de dados. -bibliotecas partidárias.

Este conceito não é muito diferente do projeto CUDA da Nvidia, lançado há uma década, que transfere a computação paralela para aceleradores GPU, ou do kit de ferramentas ROCm da AMD, ou da promessa do projeto OneAPI da Intel, que deve rodar em diferentes CPUs, GPUs e FPGA.

A única questão é como todas essas ferramentas serão conectadas entre si para que qualquer pessoa possa programar um conjunto de poderes computacionais a seu critério. Isto é importante porque os FPGAs se tornaram mais complexos, muito mais complexos do que qualquer uma das CPUs disponíveis. São fabricados utilizando os mais avançados processos de fabricação e as mais modernas tecnologias de embalagem de chips. E encontrarão o seu nicho, pois não podemos mais perder tempo, dinheiro, energia e inteligência - todos esses recursos são muito caros.

“FPGAs oferecem vantagens tecnológicas”, diz Bolsens. – E esta não é apenas a publicidade habitual sobre adaptabilidade e reconfigurabilidade. Em todas as aplicações importantes – aprendizado de máquina, análise de gráficos, negociação em alta velocidade, etc. - eles têm a capacidade de se adaptar a uma tarefa específica não apenas no caminho de distribuição dos dados, mas também na arquitetura da memória - como os dados se movem dentro do chip. Os FPGAs também possuem muito mais memória incorporada do que outros dispositivos. Também deve ser levado em consideração que, se uma tarefa não couber em um FPGA, você poderá escalá-la em vários chips sem encontrar as desvantagens que o aguardam ao escalar tarefas em várias CPUs ou GPUs.”

Fonte: habr.com

Adicionar um comentário