Uma nova abordagem pode nos ajudar a nos livrar dos cálculos de ponto flutuante



Em 1985, o Instituto de Engenheiros Elétricos e Eletrônicos ( IEEE ) estabeleceu o padrão IEEE 754 , responsável pelos formatos de ponto flutuante e aritméticos, que serão o modelo para todo o hardware e software pelos próximos 30 anos.

E, embora a maioria dos programadores use um ponto flutuante a qualquer momento indiscriminadamente, quando eles precisam executar operações matemáticas com números reais, devido a certas restrições na representação desses números, a velocidade e a precisão de tais operações geralmente deixam muito a desejar.

Por muitos anos, o padrão foi fortemente criticado por cientistas da computação que estavam familiarizados com esses problemas, mas John Gustafson foi o mais proeminente entre eles, que liderou uma cruzada sozinha para substituir o ponto flutuante por algo mais adequado. Nesse caso, positivo ou unum é considerado uma opção mais adequada - a terceira opção é o resultado do estudo de "números universais". Ele diz que os números positivos resolverão a maioria dos principais problemas do padrão IEEE 754, fornecerão desempenho e precisão aprimorados e usarão menos bits. O que é ainda melhor, ele afirma que o novo formato pode substituir os números de ponto flutuante padrão "on the fly", sem precisar alterar o código fonte dos aplicativos.

Nós nos encontramos com Gustafson na conferência ISC19. E para os especialistas em supercomputadores localizados lá, uma das principais vantagens do formato posit é que você pode obter maior precisão e faixa dinâmica usando menos bits que números da IEEE 754. E não apenas um pouco menos. Gustafson disse que o positivo de 32 bits substitui o float de 64 bits em quase todos os casos, o que poderia ter sérias conseqüências para a computação científica. Se você reduzir pela metade o número de bits, poderá não apenas reduzir o cache, a memória e o armazenamento desses números, mas também reduzir seriamente a largura do canal necessária para transferi-los para o processador e vice-versa. Esta é a principal razão pela qual a aritmética baseada em pontos, na sua opinião, fornecerá velocidade de cálculo dupla a quadruplicada em comparação com os números de ponto flutuante do IEEE.

A aceleração pode ser alcançada através de uma representação compacta de números reais. Em vez do expoente e da parte fracionária de um tamanho fixo usado no padrão IEEE, o posit codifica o expoente com um número variável de bits (uma combinação de bits de modo e bits de expoente), de modo que, na maioria dos casos, são necessários menos. Como resultado, mais bits permanecem na parte fracionária, o que fornece maior precisão. Vale a pena usar um expoente dinâmico devido à sua precisão cônica. Isso significa que valores com um pequeno expoente, que são mais frequentemente usados, podem ter maior precisão e menos comumente usados ​​números muito grandes e muito pequenos terão menos precisão. O trabalho de Gustafson em 2017, descrevendo o formato posit, fornece uma descrição detalhada de como isso funciona.



Outra vantagem importante do formato é que, diferentemente dos números comuns de ponto flutuante, os posit fornecem os mesmos resultados bit a bit em qualquer sistema, o que geralmente não pode ser garantido com o formato do IEEE (aqui, mesmo os mesmos cálculos no mesmo sistema podem fornecer diferentes resultados). Além disso, o novo formato lida com erros de arredondamento, excesso e desaparecimento de dígitos significativos, números desnormalizados e muitos valores do tipo não-um-número (NaN). Além disso, o positivo evita esquisitices como os valores de incompatibilidade 0 e -0. Em vez disso, o formato usa um complemento binário para o caractere, como números inteiros, o que significa que a comparação bit a bit funcionará corretamente.

Algo chamado quire está associado a números positivos - um mecanismo de acumulação que permite aos programadores executar álgebra linear reproduzível - um processo inacessível aos números regulares do IEEE. Ele suporta a operação generalizada de adição-multiplicação combinada e outras operações combinadas que permitem calcular produtos ou somas escalares sem erros de arredondamento ou estouros. Os testes lançados na Universidade da Califórnia em Berkeley demonstraram que as operações de quire são 3-6 vezes mais rápidas que a execução seqüencial. Gustafson diz que eles permitem que números positivos "lutem fora da classe de peso".

Embora esse formato numérico só exista há alguns anos, a comunidade de computação de alto desempenho (HPC) já tem interesse em explorar seus aplicativos. No momento, todo o trabalho permanece experimental e baseia-se na velocidade esperada do hardware futuro ou no uso de ferramentas que simulam aritmética positiva nos processadores convencionais. Enquanto em produção, não há chips que implementam posit no nível de hardware.

Uma das possíveis aplicações do formato é o interferômetro de rádio Square Kilometer Array (SKA) em construção, ao projetá-lo, eles consideram números positivos como uma maneira de reduzir radicalmente a largura do canal e a carga computacional para o processamento de dados provenientes do radiotelescópio. É necessário que os supercomputadores que o consomem não consumam mais do que 10 MW, e uma das formas mais promissoras de conseguir isso, segundo os projetistas, é usar um formato positivo mais denso para reduzir pela metade a largura estimada do canal de memória (200 PB / s), o canal de transmissão dados (10 TB / s) e conexão de rede (1 TB / s). O poder da computação também deve aumentar.

Outra aplicação é para uso em previsões meteorológicas e previsões climáticas. A equipe britânica mostrou que os números positivos de 16 bits estão claramente à frente dos números padrão de ponto flutuante de 16 bits e "têm grande potencial para uso em modelos mais complexos". A emulação de 16 bits neste modelo funcionou, assim como números de ponto flutuante de 64 bits.

O Laboratório Nacional Livermore avalia formatos de números positivos e outros, explorando maneiras de reduzir a quantidade de dados que estão sendo movidos em supercomputadores exaflops do futuro. Em alguns casos, eles também obtiveram melhores resultados. Por exemplo, números positivos foram capazes de fornecer precisão superior em cálculos físicos, como hidrodinâmica de choque, e geralmente superaram números de ponto flutuante em várias dimensões.



Talvez o positivo tenha o maior potencial no aprendizado de máquina, onde números de 16 bits podem ser usados ​​para aprendizado e números de 8 bits podem ser usados ​​para verificação. Gustafson disse que os números de ponto flutuante de 32 bits são um exagero para o treinamento e, em alguns casos, nem apresentam bons resultados como positivos de 16 bits, explicando que o padrão IEEE 754 "não se destinava absolutamente a ser usado com IA" .

Não é de surpreender que a comunidade da IA ​​tenha prestado atenção neles. O Facebook Jeff Johnson desenvolveu uma plataforma experimental com FGPA usando posit, que mostra melhor eficiência energética em comparação com o float16 e o ​​bfloat16 do IEEE para tarefas de aprendizado de máquina. Eles planejam explorar o uso de hardware quire de 16 bits para treinamento e compará-los com os formatos concorrentes.

Vale ressaltar que o Facebook está trabalhando com a Intel no processador Nervana Neural Network (NNP), o que deve acelerar algumas das tarefas do gigante social relacionadas à IA. A opção de usar o formato positivo não está descartada, embora seja mais provável que a Intel deixe o formato FlexPoint original para a Nervana. De qualquer forma, vale a pena rastrear esse ponto.

Gustafson conhece pelo menos um chip de IA no qual eles tentam usar números positivos no design, embora ele não tenha o direito de divulgar o nome da empresa. A empresa francesa Kalray, trabalhando com a European Processor Initiative (EPI), também demonstrou interesse em apoiar positivamente o seu acelerador MPPA (Massively Parallel Processor Array) de próxima geração, para que essa tecnologia possa ser utilizada nos supercomputadores europeus de exaflops .

Para Gustafson, tudo isso, é claro, inspira, e ele acredita que essa terceira tentativa de aumentar seus números universais pode ter sucesso. Diferentemente das versões um e dois, o posit é fácil de implementar no hardware. E dada a concorrência acirrada no campo da IA, talvez devêssemos esperar o sucesso comercial do novo formato. Entre outras plataformas nas quais o positivo pode esperar um futuro brilhante estão o processamento de sinal digital, GPU (para gráficos e outros tipos de computação), dispositivos para a Internet das coisas, computação de borda. E, claro, HPC.

Se a tecnologia obtiver distribuição comercial, é improvável que Gustafson seja capaz de capitalizar seu sucesso. Seu projeto, conforme indicado no padrão de 10 páginas, é completamente aberto e está disponível para uso por qualquer empresa que queira desenvolver software e hardware adequados. O que provavelmente explica a atenção à tecnologia de empresas como IBM, Google, Intel, Micron, Rex Computing, Qualcomm, Fujitsu, Huawei e muitas outras.

No entanto, substituir o IEEE 754 por algo mais adequado é um projeto enorme, mesmo para uma pessoa com um currículo tão impressionante como o de Gustafson. Mesmo antes de trabalhar na ClearSpeed, Intel e AMD, ele estudou maneiras de melhorar os cálculos científicos nos processadores modernos. "Eu tenho tentado resolver esse problema nos últimos 30 anos", disse ele.

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


All Articles