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 projetista de chips para programar para FPGAs, assim como não precisa ser um programador de C++ para escrever código em Java. No entanto, em ambos os casos, é provável que seja uma habilidade útil.

O objetivo da comercialização das tecnologias Java e FPGA é refutar essa última afirmação. A boa notícia para os FPGAs é que, com as camadas de abstração e o conjunto de ferramentas adequados, nos últimos 35 anos, desde a invenção do dispositivo lógico programável, tornou-se cada vez mais fácil criar algoritmos e fluxos de dados para FPGAs em vez de CPUs, DSPs, GPUs ou qualquer outra forma de ASIC especializado.

A incrível coincidência da sua criação fica evidente no facto de terem surgido precisamente quando as CPUs já não podiam ser o único módulo computacional. centros de dados Para uma variedade de tarefas — por uma variedade de razões — os FPGAs alcançaram sua eficácia oferecendo alto desempenho, baixa latência, conectividade em rede e memória — as diversas capacidades computacionais dos modernos SoCs FPGA, que são praticamente sistemas computacionais completos. No entanto, os FPGAs também se combinam com sucesso com outros dispositivos em sistemas híbridos e, em nossa opinião, estão apenas começando a encontrar seu devido lugar na hierarquia da computação.

Por isso, organizamos a conferência The Next FPGA Platform em San Jose, no dia 22 de janeiro. Naturalmente, a Xilinx é uma das principais fornecedoras de FPGAs do mundo e pioneira nessa área. Ivo Bolsens, vice-presidente sênior e diretor de tecnologia da Xilinx, palestrou na conferência e compartilhou suas ideias sobre como a Xilinx está ajudando a criar sistemas de computação flexíveis para data centers.

Levou um tempo para que arquitetos de sistemas e programadores chegassem a um data center heterogêneo, capaz de abrigar diferentes tipos de poder computacional, lidando com tarefas de computação, armazenamento e rede. Isso parece necessário porque acompanhar a Lei de Moore com vários chips CMOS está se tornando cada vez mais difícil. Por enquanto, nossa linguagem ainda é centrada na CPU e ainda falamos em "aceleração de aplicativos", ou seja, programas que rodam melhor do que seria possível apenas com uma CPU. Eventualmente, os data centers se tornarão conjuntos de poder computacional, armazenamento e os protocolos que interligam tudo, e voltaremos a usar termos como "computação" e "aplicativos". A computação híbrida se tornará tão comum quanto os serviços em nuvem atuais, que rodam em redes tradicionais ou híbridas. máquinas virtuaisE em algum momento, simplesmente usaremos a palavra "computação" para descrever o trabalho deles. Em algum momento — e os FPGAs provavelmente serão fundamentais para inaugurar essa era — voltaremos a chamá-lo de processamento de dados.

Implementar FPGAs em data centers exigirá uma mudança de mentalidade. "Ao pensar em maneiras de acelerar os aplicativos atuais, é preciso analisar os fundamentos de como eles são executados, quais recursos utilizam e onde gastam tempo", explica Bolsens. "É preciso entender o problema geral que se está tentando resolver. Muitos aplicativos em execução em data centers hoje são escaláveis, consumindo uma grande quantidade de recursos. Considere o aprendizado de máquina, por exemplo, que utiliza um número enorme de nós de computação. Mas, ao falar de aceleração, é preciso pensar não apenas em acelerar a computação, mas também a infraestrutura."

Por exemplo, no tipo de trabalho de aprendizado de máquina que Bolsens observou na prática, aproximadamente 50% do tempo é gasto transferindo dados de um lado para o outro entre diferentes centros de computação, e apenas a outra metade é dedicada ao cálculo propriamente dito.

"É aqui que acredito que os FPGAs podem ajudar, pois podemos otimizar tanto os aspectos computacionais quanto os de transferência de dados de uma aplicação. Podemos fazer isso tanto no nível da infraestrutura geral quanto no nível do chip. Essa é uma das grandes vantagens dos FPGAs, permitindo-nos criar redes de comunicação personalizadas para as necessidades específicas de uma aplicação. Observando os padrões típicos de fluxo de dados em tarefas relacionadas à IA, não vejo a necessidade de uma arquitetura complexa baseada em switches. Podemos construir uma rede com um grande fluxo de dados. O mesmo se aplica a tarefas de treinamento de redes neurais — podemos construir uma rede mesh com tamanhos de pacotes adaptados à tarefa específica. Usando FPGAs, podemos dimensionar e adaptar com muita precisão os protocolos de transferência de dados e a topologia do circuito a uma 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 podemos adaptar isso também."

A diferença entre um FPGA e uma CPU ou um ASIC especializado é que este último é programado durante a fabricação, o que significa que você não pode mudar de ideia sobre os tipos de dados ou elementos computados, nem sobre a natureza do fluxo de dados através do dispositivo. Os FPGAs permitem que você mude de ideia caso as condições de operação se alterem.

No passado, essa vantagem tinha um custo, já que a programação em FPGA não era para os fracos de coração. Os compiladores de FPGA precisam ser de código aberto para que possam se integrar melhor com as ferramentas que os programadores usam para criar aplicações paralelas de CPU em C, C++ ou Python, e parte do trabalho precisa ser transferida para bibliotecas que aceleram o processamento em FPGA. É exatamente isso que a pilha de aprendizado de máquina Vitis faz. Ela serve de base para plataformas de aprendizado de máquina como Caffe e TensorFlow e inclui bibliotecas para executar modelos de IA padrão ou adicionar recursos de FPGA a tarefas como transcodificação de vídeo, reconhecimento de objetos em vídeo, análise de dados, gerenciamento de risco financeiro e quaisquer bibliotecas de terceiros.

O conceito não é muito diferente do projeto CUDA da Nvidia, lançado há dez anos, que transfere a computação paralela para aceleradores de GPU, ou do kit de ferramentas ROCm da AMD, ou da promessa do projeto OneAPI da Intel, que deve funcionar em CPUs, GPUs e FPGAs.

A única questão é como todas essas ferramentas serão conectadas para que qualquer pessoa possa programar o poder computacional que desejar. Isso é importante porque os FPGAs se tornaram mais complexos, muito mais complexos do que qualquer CPU existente. Eles são fabricados usando os processos de fabricação mais avançados e as tecnologias de encapsulamento de chips mais modernas. E eles encontrarão seu nicho, porque não podemos mais desperdiçar tempo, dinheiro, energia e inteligência — todos esses são recursos preciosos demais.

"Os FPGAs oferecem vantagens tecnológicas", afirma Bolsens. "E isso não se resume ao alarde usual sobre adaptabilidade e reconfigurabilidade. Em todas as aplicações importantes — aprendizado de máquina, análise de grafos, negociação de alta frequência e assim por diante — eles têm a capacidade de adaptar não apenas o caminho de distribuição de dados, mas também a arquitetura de memória — como os dados se movem dentro do chip — à tarefa específica. Os FPGAs também possuem significativamente mais memória integrada do que outros dispositivos. Vale ressaltar também que, se uma tarefa não couber em um único FPGA, ela pode ser escalada para vários chips sem as desvantagens de escalar para várias CPUs ou GPUs."

Fonte: habr.com

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