A inevitabilidade da penetración de FPGA nos centros de datos

A inevitabilidade da penetración de FPGA nos centros de datos
Non é necesario ser un deseñador de chips para programar FPGA, do mesmo xeito que non é necesario ser un programador de C++ para escribir código en Java. Non obstante, en ambos os casos probablemente sexa útil.

O obxectivo de comercializar ambas tecnoloxías, Java e FPGA, é desmentir esta última afirmación. Boas noticias para os FPGA: usar as capas de abstracción e o conxunto de ferramentas adecuados, nos últimos 35 anos desde a invención do dispositivo lóxico programable, converteuse na creación de algoritmos e fluxos de datos para FPGA en lugar de CPU, DSP, GPU ou calquera outra forma de ASIC personalizado. cada vez máis común.máis fácil.

A sorprendente puntualidade da súa creación é evidente no feito de que xusto cando as CPU xa non podían seguir sendo o único módulo informático dos centros de datos para realizar moitas tarefas -por diversas razóns- as FPGA acadaron a súa eficacia, ofrecendo velocidade, baixa latencia e capacidades de rede. e memoria: capacidades informáticas heteroxéneas dos modernos SoC FPGA, que son sistemas informáticos case completos. Non obstante, as FPGA tamén se combinan con éxito con outros dispositivos en sistemas híbridos e, na nosa opinión, só comezan a atopar o lugar que lles corresponde na xerarquía informática.

É por iso que organizamos a conferencia The Next FPGA Platform en San José o 22 de xaneiro. Por suposto, un dos principais provedores de FPGA no mundo e pioneiro neste ámbito é Xilinx. Ivo Bolsens, vicepresidente senior e director de tecnoloxía de Xilinx, falou na conferencia e deunos hoxe as súas reflexións sobre como Xilinx está a axudar a crear sistemas informáticos cambiables para centros de datos.

Os arquitectos e programadores de sistemas levou moito tempo crear un centro de datos heteroxéneo, que contará con varios tipos de potencia informática que resolvan problemas de computación, almacenamento e redes. Isto parece necesario debido ao feito de que cada vez é máis difícil seguir a Lei de Moore usando varios dispositivos CMOS. Polo momento, a nosa linguaxe aínda está centrada na CPU e aínda falamos de "aceleración de aplicacións", é dicir, facer que os programas funcionen mellor que o que se pode facer só nas CPU. Co paso do tempo, os centros de datos converteranse en coleccións de potencia informática, almacenamento de datos e protocolos que unen todo, e volveremos a termos como "informática" e "aplicacións". A informática híbrida será tan normal como os servizos na nube actuais que se executan en máquinas de escritorio ou virtuais, e nalgún momento simplemente usaremos a palabra "computación" para describir o seu funcionamento. Nalgún momento, e é probable que as FPGA axuden a iniciar esta era, chamarémoslle de novo procesamento de datos.

A adopción de FPGA nos centros de datos requirirá un cambio de mentalidade. "Ao pensar en formas de acelerar as aplicacións actuais, hai que baixar aos conceptos básicos de como funcionan, que recursos se utilizan, onde se gasta o tempo", explica Bolsens. – Cómpre estudar o problema xeral que se intenta resolver. Moitas aplicacións que se executan nos centros de datos hoxe escalan para consumir grandes cantidades de recursos. Tomemos, por exemplo, a aprendizaxe automática, que utiliza un gran número de nodos informáticos. Pero cando falamos de aceleración, hai que pensar non só en acelerar a informática, senón tamén en acelerar a infraestrutura”.

Por exemplo, no tipo de operacións de aprendizaxe automática que Bolsens estudou na práctica, aproximadamente o 50% do tempo lévase a transferir datos de ida e volta entre a potencia de computación dispersa, e só a metade restante se dedica aos propios cálculos.

"Aquí é onde creo que FPGA pode axudar, porque podemos garantir que tanto os aspectos computacionais como de comunicación da aplicación estean optimizados. E podemos facelo a nivel xeral de infraestrutura e a nivel de chip. Esta é unha das grandes vantaxes das FPGA, que permite crear redes de comunicación para necesidades específicas de aplicacións. Con base nos patróns típicos de movemento de datos nas cargas de traballo de IA, non vexo a necesidade dunha arquitectura complexa baseada en interruptores. Podes construír unha rede cun gran fluxo de datos. O mesmo aplícase ás tarefas de adestramento de redes neuronais: podes construír unha rede de malla con tamaños de paquete que se adapten a unha tarefa específica. Usando unha FPGA, os protocolos de transferencia de datos e as topoloxías de circuítos pódense escalar e adaptar de forma moi precisa a unha aplicación específica. E no caso da aprendizaxe automática, tamén está claro que non necesitamos números de coma flotante de dobre precisión, e tamén podemos axustalo".

A diferenza entre unha FPGA e unha CPU ou ASIC personalizado é que estes últimos están programados de fábrica, e despois xa non podes cambiar de opinión sobre os tipos de datos que se calculan ou elementos que se calculan, nin sobre a natureza dos datos. fluír polo dispositivo. As FPGA permítenche cambiar de opinión se cambian as condicións de funcionamento.

No pasado, esta vantaxe tiña un custo, cando a programación FPGA non era para os débiles de corazón. A necesidade é abrir compiladores FPGA para integrarse mellor coas ferramentas que usan os programadores para escribir aplicacións paralelas á CPU en C, C++ ou Python, e subcontratar parte do traballo a bibliotecas que aceleran os procedementos en FPGA. Isto é o que fai a pila de aprendizaxe automática de Vitis, que alimenta plataformas de ML como Caffe e TensorFlow, con bibliotecas para executar modelos de IA convencionais ou engadir capacidades FPGA a tarefas como a transcodificación de vídeo, o recoñecemento de obxectos de vídeo e a análise de datos. , xestión de riscos financeiros e calquera terceiro. -Bibliotecas do partido.

Este concepto non é moi diferente do proxecto CUDA de Nvidia, lanzado hai unha década, que descarga a computación paralela aos aceleradores de GPU, nin do kit de ferramentas ROCm de AMD, nin da promesa do proxecto OneAPI de Intel, que debería executarse en diferentes CPU, GPU e FPGA.

A única cuestión é como se conectarán todas estas ferramentas entre si para que calquera persoa poida programar un conxunto de potencias informáticas ao seu criterio. Isto é importante porque as FPGA volvéronse máis complexas, moito máis complexas que calquera das CPU dispoñibles. Fábricase mediante os procesos de fabricación máis avanzados e as máis modernas tecnoloxías de envasado de chips. E atoparán o seu oco, xa que xa non podemos perder tempo, diñeiro, enerxía e intelixencia: todos estes son recursos demasiado caros.

"Os FPGA ofrecen vantaxes tecnolóxicas", di Bolsens. – E esta non é só a publicidade habitual sobre adaptabilidade e reconfigurabilidade. En todas as aplicacións importantes: aprendizaxe automática, análise de gráficos, negociación de alta velocidade, etc. - Teñen a capacidade de adaptarse a unha tarefa específica non só a ruta de distribución de datos, senón tamén a arquitectura da memoria: como se moven os datos dentro do chip. As FPGA tamén teñen moita máis memoria incorporada que outros dispositivos. Tamén hai que ter en conta que se unha tarefa non encaixa nunha FPGA, pode escalala en varios chips sen atopar as desvantaxes que che esperan ao escalar tarefas en varias CPU ou GPU.

Fonte: www.habr.com

Engadir un comentario