Inevitabilidade da penetração do FPGA nos data centers

imagem

Você não precisa ser um desenvolvedor de chips para programar para FPGA, não precisa ser um programador de C ++ para escrever código Java. No entanto, em ambos os casos, provavelmente, não será supérfluo.

O objetivo de comercializar as duas tecnologias, Java e FPGA, é refutar a declaração mais recente. A boa notícia para os FPGAs é que, com o uso de níveis adequados de abstração e kit de ferramentas 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 especial de ASIC Mais fácil.

A incrível pontualidade de sua criação se manifesta no fato de que justamente quando a CPU não podia mais permanecer o único módulo de computação de data centers a executar muitas tarefas - por várias razões - os FPGAs alcançaram sua eficiência oferecendo velocidade, baixa latência, recursos de rede e memória - heterogêneos Recursos de computação dos SoCs FPGA modernos, que são sistemas de computação quase completos. No entanto, os FPGAs são combinados com sucesso com outros dispositivos em sistemas híbridos e, em nossa opinião, estão apenas começando a encontrar seu lugar de direito na hierarquia da computação.

Por isso, organizamos The Next FPGA Platform em San Jose em 22 de janeiro. Naturalmente, um dos principais fornecedores de FPGAs do mundo e pioneiro nessa área é a Xilinx. Ivo Bolsens, vice-presidente sênior e CTO da Xilinx, fez uma apresentação na conferência e nos contou sobre seus pensamentos hoje sobre como a Xilinx ajuda a criar sistemas de computação mutáveis ​​para data centers.

Arquitetos e programadores de sistemas levaram tempo suficiente para chegar a um data center heterogêneo, que apresentará vários tipos de capacidades de computadores que resolvem os problemas de computação, armazenamento e rede. Isso parece necessário devido ao fato de que seguir a lei de Moore usando vários CMOS está se tornando cada vez mais difícil. Enquanto nossa linguagem ainda está ligada à CPU, ainda estamos falando sobre "aceleração de aplicativos", referindo-se à melhoria dos programas em comparação com o que pode ser feito apenas na CPU. Depois de algum tempo, os datacenters se transformarão em conjuntos de poder de computação, data warehousing e protocolos que conectam tudo, e retornaremos a termos como "computação" e "aplicativos". A computação híbrida será igual aos serviços de nuvem atuais,trabalhando com base em máquinas convencionais ou virtuais e, em algum momento, usaremos apenas a palavra “computação” para descrever seu trabalho. Em algum momento - e provavelmente o advento desta era será ativamente facilitado pelo FPGA - iremos chamá-lo novamente de processamento de dados.

Para implementar o FPGA nos data centers, você precisa mudar sua mentalidade. “Ao pensar em maneiras de acelerar os aplicativos atuais, você precisa entender como eles são executados, quais recursos são usados, o que leva tempo”, explica Bolsens. - Você precisa estudar o problema geral que está tentando resolver. Atualmente, muitos aplicativos em execução nos datacenters são escaláveis, capturando um grande número de recursos. Veja o aprendizado de máquina, por exemplo, usando um grande número de nós de computação. Mas, falando em aceleração, precisamos pensar não apenas em acelerar a computação, mas também em acelerar a infraestrutura. ”

Por exemplo, nas operações de aprendizado de máquina que Bolsens estudou na prática, cerca de 50% do tempo é gasto transferindo dados de um lado para outro entre o poder de computação disperso e apenas a metade restante do tempo é desperdiçada nos próprios cálculos.

“Parece-me que é aqui que o FPGA poderá ajudar, pois podemos oferecer otimização dos aspectos computacionais e dos aspectos de transferência de dados para a aplicação. E podemos fazer isso no nível geral da infraestrutura e no nível do chip. Essa é uma das grandes vantagens dos FPGAs que permitem criar redes de comunicação para as necessidades específicas do aplicativo. Observando os padrões típicos de movimentação de dados em tarefas relacionadas ao trabalho de inteligência artificial, não vejo a necessidade de uma arquitetura complexa baseada em comutadores. 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 em malha com tamanhos de pacote que se adaptam a uma tarefa específica. Usando o FPGA, você pode dimensionar e ajustar os protocolos de transferência de dados e a topologia de circuitos para um aplicativo específico.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 também podemos ajustar isso. "

A diferença entre FPGA e CPU ou ASIC especializado é que os últimos são programados durante a produção e, depois disso, você não consegue mudar de idéia sobre os tipos de dados calculados ou elementos calculados, ou sobre a natureza do fluxo de dados que passa pelo dispositivo. Os FPGAs permitem que você mude de idéia se as condições de trabalho mudarem.

No passado, essa vantagem era cara quando a programação para FPGA não era para os fracos de coração. Você precisa abrir compiladores para FPGAs para que eles se integrem melhor às ferramentas usadas pelos programadores para criar aplicativos de computação paralela para CPUs em C, C ++ ou Python, e dedicar parte do trabalho às bibliotecas que agilizam os procedimentos nos FPGAs. É isso que a pilha de aprendizado de máquina Vitis, que é a base de plataformas para MOs como Caffe e TensorFlow, e que possui bibliotecas para lançar modelos comuns de IA ou adicionar recursos de FPGA a tarefas como transcodificação de vídeo, reconhecimento de objetos em vídeo, análise de dados, está envolvida nisso. , gerenciamento de riscos financeiros e quaisquer bibliotecas de terceiros.

Esse conceito não é muito diferente do projeto CUDA da Nvidia, lançado há dez anos, e da transferência de computação paralela para aceleradores de GPU, do kit de ferramentas ROCm da AMD ou das promessas do projeto Intel, OneAPI, que deve ser executado em diferentes CPUs, GPUs e FPGA

A única questão é como todas essas ferramentas serão conectadas para que qualquer pessoa possa programar um conjunto de poder de computação a seu critério. Isso é importante porque os FPGAs se tornaram mais complexos, muito mais complexos do que qualquer uma das CPUs disponíveis. Eles são feitos com os processos tecnológicos mais avançados e com a ajuda das mais modernas tecnologias de empacotamento de chips. E eles encontrarão seu nicho, porque não podemos mais perder tempo, dinheiro, energia e inteligência - todos esses recursos são muito caros.

"O FPGA oferece vantagens tecnológicas", diz Bolsens. - E isso não é apenas publicidade comum sobre adaptabilidade e reajustabilidade. 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 oportunidade de se adaptar a uma tarefa específica, não apenas o caminho da distribuição de dados, mas também a arquitetura da memória - a maneira como os dados se movem dentro do chip. E o FPGA possui muito mais memória incorporada do que outros dispositivos. Também deve ser observado que, se a tarefa não couber em um FPGA, você pode escalá-la para vários chips sem precisar lidar com as desvantagens que o aguardam ao escalonar tarefas para várias CPUs ou GPUs. ”

Source: https://habr.com/ru/post/undefined/


All Articles