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

A inevitabilidade da penetração de FPGA nos data centers
Não é necessário ser um desenvolvedor de chips para programar para FPGA, assim como não é preciso ser um programador em C++ para escrever código em Java. No entanto, em ambos os casos, isso provavelmente será útil.

O objetivo da comercialização de ambas as tecnologias, Java e FPGA, é refutar a última afirmação. Boas notícias para FPGA – usando os níveis apropriados de abstração e um conjunto de ferramentas nos últimos 35 anos, desde que o dispositivo lógico programável foi inventado, criar algoritmos e fluxos de dados para FPGA em vez de CPU, DSP, GPU ou qualquer outra forma de ASIC especial está se tornando cada vez mais fácil.

A surpreendente relevância de sua criação se manifesta no fato de que, exatamente quando as CPUs já não podiam ser o único módulo computacional. de data centers para executar uma variedade de tarefas – por várias razões – os FPGA alcançaram sua eficiência, oferecendo alta capacidade de resposta, baixa latência, capacidades de rede e memória – as diversas capacidades computacionais dos modernos SoC FPGA, que representam praticamente sistemas computacionais completos. No entanto, os FPGA se encaixam bem com outros dispositivos em sistemas híbridos, e acreditamos que eles estão apenas começando a encontrar seu lugar legítimo na hierarquia da computação.

Por isso organizamos a conferência The Next FPGA Platform em San Jose no dia 22 de janeiro. Naturalmente, uma das principais fornecedoras de FPGA no mundo e pioneira nessa área é a empresa Xilinx. Ivo Bolsens, vice-presidente sênior e diretor técnico da Xilinx, apresentou-se na conferência e compartilhou seus pensamentos sobre como a Xilinx está ajudando a criar sistemas computacionais adaptáveis para data centers.

Os arquitetos de sistemas e programadores levaram tempo para chegar a um data center heterogêneo, que incorpora diferentes tipos de capacidades computacionais para resolver tarefas de cálculo, armazenamento e organização de redes. Isso parece ser necessário devido à dificuldade crescente em acompanhar a Lei de Moore usando diferentes CMOS. Enquanto nossa linguagem ainda está centrada na CPU e continuamos a falar em "otimização de aplicativos", referindo-nos à melhoria do desempenho dos programas em comparação com o que pode ser realizado apenas com CPUs. Com o tempo, os data centers se transformarão em conjuntos de capacidades computacionais, armazenamento de dados e protocolos que conectam tudo isso, e voltaremos a termos como "cálculo" e "aplicativos". Cálculos híbridos se tornarão tão normais quanto os serviços "de nuvem" de hoje, que operam com base em comuns ou máquinas virtuais, e em algum momento usaremos simplesmente a palavra "cálculo" para descrever seu funcionamento. Em algum momento — e, provavelmente, a chegada desta era será ativamente impulsionada por FPGA — chamaremos isso novamente de processamento de dados.

Para a introdução de FPGA em data centers, será necessário mudar a maneira de pensar. "Ao considerar maneiras de acelerar os aplicativos de hoje, é necessário voltar às origens de como eles são executados, quais recursos são utilizados, onde o tempo é gasto", explica Bolsens. "É preciso estudar o problema geral que você está tentando resolver. Muitos aplicativos que operam em data centers hoje se escalam, consumindo uma enorme quantidade de recursos. Vamos tomar, por exemplo, o aprendizado de máquina, que utiliza uma enorme quantidade de nós computacionais. Mas ao falar em aceleração, devemos pensar não só na aceleração dos cálculos, mas também na aceleração da infraestrutura."

Por exemplo, nas operações relacionadas ao aprendizado de máquina que Bolsens estudou na prática, cerca de 50% do tempo é gasto na transmissão de dados para frente e para trás entre capacidades computacionais distribuídas, e apenas a metade restante do tempo é dedicada aos próprios cálculos.

«É aqui que o FPGA pode realmente ajudar, pois podemos otimizar tanto os aspectos computacionais quanto os aspectos de transmissão de dados para a aplicação. E podemos fazer isso tanto a nível de infraestrutura geral, quanto a nível de chip. Esta é uma das grandes vantagens do FPGA, permitindo a criação de redes de comunicação adaptadas às necessidades específicas da aplicação. Observando os padrões típicos de movimentação de dados em tarefas relacionadas à inteligência artificial, não vejo a necessidade de uma arquitetura complexa baseada em switches. É possível construir uma rede com um grande fluxo de dados. O mesmo vale para as tarefas de treinamento de redes neurais – pode-se construir uma rede em malha com tamanhos de pacotes que se ajustam à tarefa específica. Com o uso de FPAG, é possível escalonar e ajustar com precisão os protocolos de transmissão de dados e a topologia do circuito para a aplicação específica. E no caso de aprendizado de máquina, também é claro que não precisamos de números de ponto flutuante de dupla precisão, e isso também podemos ajustar.”

A diferença entre FPGA e CPU ou ASIC especializado é que os últimos são programados na fabricação, e depois disso você não pode mudar a forma como os dados são calculados ou os elementos calculados, nem a natureza do fluxo de dados que passa pelo dispositivo. Os FPGAs permitem que você reavalie se as condições de operação mudarem.

No passado, essa vantagem era cara, pois programar para FPGA não era para os fracos de espírito. É necessário abrir compiladores para FPGA para que eles se integrem melhor com as ferramentas utilizadas pelos programadores para criar aplicações de computação paralela para CPU em linguagens C, C++ ou Python, e delegar parte do trabalho a bibliotecas que aceleram procedimentos em FPGA. É exatamente isso que a pilha de aprendizado de máquina Vitis faz, que dá suporte a plataformas de aprendizado de máquina como Caffe e TensorFlow, e possui bibliotecas para executar modelos de IA convencionais ou adicionar capacidades de FPGA a tarefas como transcodificação de vídeo, reconhecimento de objetos em vídeo, análise de dados, gerenciamento de riscos financeiros e qualquer biblioteca de terceiros.

Este conceito não difere muito do projeto CUDA da Nvidia, lançado há dez anos, que transfere computações paralelas para aceleradores GPU, ou do conjunto de ferramentas ROCm da AMD, ou das promessas do projeto OneAPI da Intel, que deve operar em diferentes CPU, GPU e FPGA.

A questão é como todas essas ferramentas se conectarão para que qualquer pessoa possa programar um conjunto de capacidades computacionais à sua maneira. Isso é importante porque os FPGA se tornaram mais complexos do que qualquer um dos CPU existentes. Eles são fabricados com processos tecnológicos de ponta e com as tecnologias de embalagem de chip mais modernas. E eles encontrarão seu nicho, pois já não podemos gastar tempo, dinheiro, energia e inteligência de forma ociosa - todos esses são recursos muito valiosos.

"FPGA oferece vantagens tecnológicas", diz Bolsens. "E não é apenas uma propaganda comum sobre adaptabilidade e reconfigurabilidade. Em todas as aplicações importantes - aprendizado de máquina, análise de grafos, comércio de alta velocidade, etc. - eles têm a capacidade de adaptar não apenas o caminho de propagação de dados à tarefa específica, mas também a arquitetura de memória - como os dados se movem dentro do chip. Além disso, os FPGA têm muito mais memória embutida do que outros dispositivos. Também deve-se considerar que, se a tarefa não cabe em um único FPGA, ela pode ser escalada para vários chips, sem enfrentar as desvantagens que surgem ao escalar tarefas para várias CPU ou GPU."

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster