FERRAMENTAS LINUX: A Intel inicia a remontagem de código aberto em torno do Intel AMX

domingo, 28 de junho de 2020

A Intel inicia a remontagem de código aberto em torno do Intel AMX



Confira !!

A Intel atualizou seu guia de referência de programação de extensões do conjunto de instruções que, juntamente com outras adições, detalha agora o Intel AMX (Advanced Matrix Extensions) que vem com os processadores Sapphire Rapids Xeon no próximo ano.

Além do AVX-512 e do DL-BOOST e outros esforços da empresa para otimizar o Xeon para lidar com as cargas de trabalho de IA modernas, o Advanced Matrix Extensions (AMX) visa melhorar ainda mais o desempenho da IA ​​para cargas de trabalho de treinamento e inferência. O AMX consiste em "blocos" como um conjunto de registros bidimensionais para representar uma imagem de memória maior e aceleradores que podem operar nos referidos blocos. Os recursos AMX iniciais são para BFloat16, TILE e INT8, enquanto novos aceleradores podem ser introduzidos posteriormente.

Alguns dos destaques do guia de referência atualizado da Intel com a adição do AMX esta semana:
O Intel AMX (Intel Advanced Matrix Extensions) é um novo paradigma de programação de 64 bits que consiste em dois componentes: um conjunto de registros bidimensionais (blocos) representando sub-matrizes de uma imagem de memória bidimensional maior e um acelerador capaz para operar em blocos, a primeira implementação é chamada TMUL (unidade de multiplicação de matriz de bloco).
Uma implementação do Intel AMX enumera para o programador como os blocos podem ser programados, fornecendo uma paleta de opções. Duas paletas são suportadas; a paleta 0 representa o estado inicializado e a paleta 1 consiste em 8 KB de armazenamento distribuído por 8 registros de bloco denominados TMM0..TMM7. Cada bloco possui um tamanho máximo de 16 linhas x 64 bytes (1 KB), no entanto, o programador pode configurar cada bloco para dimensões menores, apropriadas ao seu algoritmo. As dimensões do bloco fornecidas pelo programador (linhas e bytes_per_row, isto é, colsb) são metadados que orientam a execução das instruções do bloco e do acelerador. Dessa maneira, uma única instrução pode iniciar a execução autônoma de vários ciclos no hardware do bloco e do acelerador. O valor da paleta (palette_id) e os metadados são mantidos internamente em um registro de controle relacionado ao bloco (TILECFG).
O Intel AMX é uma arquitetura extensível. Novos aceleradores podem ser adicionados, ou o acelerador TMUL pode ser aprimorado para oferecer maior desempenho.... As instruções Intel AMX usam novos registros e herdam o comportamento básico da arquitetura Intel da mesma maneira que o Intel SSE e o Intel AVX.

Consulte o guia de referência (PDF), no capítulo três, que descreve o Intel AMX para obter todos os detalhes desta adição focada em IA à estréia nos processadores Sapphire Rapids.

Com os detalhes do AMX se tornando públicos, também começa a surgir um trabalho de patch de código aberto / Linux em torno do Intel AMX para garantir que o suporte ao software esteja em boa forma antes dos processadores serem enviados em 2021. Na sexta-feira, o especialista em cadeia de ferramentas de compilador de código aberto da Intel HJ Lu começou as alterações de desembarque no código GNU Assembler (Gas) com as alterações iniciais para começar a fazer acomodações para o Intel AMX. que foi fundido na sexta-feira também para a GNU C Library (Glibc) foi a detecção Intel AMX. As alterações recentes do kernel Linux nos estados do supervisor XSAVES também aparece em preparação para o Intel AMX, entre outros recursos futuros da CPU.

Fora dos principais componentes Linux / de código aberto, também houve outros patchs AMX começando a sair da Intel. Por exemplo, ontem também trouxe patches para o Xbyak JIT assembler para lidar com o AMX.

Fonte

Até a prócxima !

Nenhum comentário:

Postar um comentário