2022/09/28

Posits prometem números fraccionais mais eficientes

Investigadores estão a promover a utilização dos Posits como alternativa ao formato tradicional para guardar números fraccionais nos computadores.

Os computadores trabalham com bits, que apenas guardam um estado "0" ou "1", e isso significa que todos os demais números têm que ser guardados de forma codificada. Daí serem populares as designações dos números de 8-bits (que podem guardar valores de 0 a 255), 16-bits (até 65535), 32-bits (4294967295), etc. Mas a coisa complica-se quando se querem guardar números fraccionais, que levaram à criação do formato digital de vírgula fixa e vírgula flutuante (FP), este último sendo o mais habitual.

Neste sistema, o número é guardado sobre a forma de um número com a parte fraccionária e o seu expoente; um sistema que permite guardar uma imensa amplitude de números (até 2^62) mas cuja precisão deixa a desejar nalgumas áreas da computação. Daí a a criação dos Posits.
Em vez de manterem uma precisão fixa para toda a gama de números que podem representar, os posits usam uma escala diferenciada que lhes permite ter maior precisão na escala entre -1 e 1, reduzindo a precisão à medida que os números vão ficando imensamente maiores. Isto dá-lhes vantagem para aplicações de Inteligência Artificial (e outras) onde muitos dos cálculos são feitos com número nessa gama.

O problema é que os chips actuais estão preparados para lidar com números em formato FP, e o custo computacional de fazer a conversão dos posits nega as suas vantagens. Mas, num teste realizado com um processador com hardware feito de raiz para processar os posits, os resultados foram alucinantes, com uma diferença de cerca de quatro ordens de magnitude.

Considerando o enorme interesse que tem havido na área da AI, e o imenso poder de processamento que é necessário (estima-se que o custo de treinar um modelo como o GPT-3 seja de cerca de 5 milhões de dólares), sem dúvida que não irão faltar interessados nestes posits.

Sem comentários:

Enviar um comentário (problemas a comentar?)