A CPU do seu dispositivo executa milhões de cálculos a cada segundo e é responsável pelo funcionamento do seu computador. Trabalhando com a CPU está a Unidade de Processamento Aritmético (ALU), que é responsável por tarefas matemáticas e é acionada pelo microcódigo da CPU.
Agora, esse microcódigo da CPU não é estático e pode ser melhorado, e uma dessas melhorias foi o conjunto de instruções AVX-512 da Intel. No entanto, a Intel está pronta para matar o AVX-512, removendo sua funcionalidade de suas CPUs para sempre. Mas por que? Por que a Intel está matando o AVX-512?
Como funciona uma ULA?
Antes de conhecer o conjunto de instruções do AVX-512, é fundamental entender como funciona uma ULA.
Como o nome sugere, a Unidade de Processamento Aritmético é usada para realizar tarefas matemáticas. Essas tarefas incluem operações como adição, multiplicação e cálculos de ponto flutuante. Para realizar essas tarefas, a ULA usa circuitos digitais específicos da aplicação, que são acionados pelo sinal de clock da CPU.
Portanto, a velocidade do clock de uma CPU define a taxa na qual as instruções são processadas na ULA. Portanto, se sua CPU funcionar com uma frequência de clock de 5 GHz, a ALU pode processar 5 bilhões de instruções em um segundo. Por esse motivo, o desempenho da CPU melhora à medida que a velocidade do clock aumenta.
Dito isto, à medida que a velocidade do clock da CPU aumenta, a quantidade de calor gerada pela CPU aumenta. Por esse motivo, usuários avançados usam nitrogênio líquido ao fazer overclock em seus sistemas. Infelizmente, esse aumento de temperatura em altas frequências impede que os fabricantes de CPU aumentem a frequência do clock acima de um determinado limite.
Então, como um processador de nova geração oferece melhor desempenho em comparação com iterações mais antigas? Bem, os fabricantes de CPU usam o conceito de paralelismo para aumentar o desempenho. Este paralelismo pode ser alcançado usando uma arquitetura multicore onde vários núcleos de processamento diferentes são usados para melhorar o poder computacional da CPU.
Outra maneira de melhorar o desempenho é usando um conjunto de instruções SIMD. Em termos simples, uma instrução de dados múltiplos de instrução única permite que a ALU execute a mesma instrução em diferentes pontos de dados. Esse tipo de paralelismo melhora o desempenho de uma CPU, e o AVX-512 é uma instrução SIMD usada para aumentar o desempenho de uma CPU ao executar tarefas específicas.
Como os dados chegam à ULA?
Agora que temos uma compreensão básica de como funciona uma ALU, precisamos entender como os dados chegam à ALU.
Para chegar à ULA, os dados precisam passar por diferentes sistemas de armazenamento. Essa jornada de dados é baseada na hierarquia de memória de um sistema de computação. Uma breve visão geral desta hierarquia é dada abaixo:
- Memória secundária: A memória secundária em um dispositivo de computação consiste em um dispositivo de armazenamento permanente. Este dispositivo pode armazenar dados permanentemente, mas não é tão rápido quanto a CPU. Devido a isso, a CPU não pode acessar os dados diretamente do sistema de armazenamento secundário.
- Memória primária: O sistema de armazenamento primário consiste em memória de acesso aleatório (RAM). Este sistema de armazenamento é mais rápido que o sistema de armazenamento secundário, mas não pode armazenar dados permanentemente. Portanto, quando você abre um arquivo em seu sistema, ele se move do disco rígido para a RAM. Dito isto, mesmo a RAM não é rápida o suficiente para a CPU.
- Memória cache: A memória cache está embutida na CPU e é o sistema de memória mais rápido em um computador. Este sistema de memória é dividido em três partes, a saber, o Cache L1, L2 e L3. Quaisquer dados que precisem ser processados pela ALU são movidos do disco rígido para a RAM e depois para a memória cache. Dito isto, a ALU não pode acessar dados diretamente do cache.
- Registros da CPU: O registrador da CPU em um dispositivo de computação é de tamanho muito pequeno e, com base na arquitetura do computador, esses registradores podem conter 32 ou 64 bits de dados. Uma vez que os dados se movem para esses registradores, a ULA pode acessá-los e realizar a tarefa em questão.
O que é o AVX-512 e como funciona?
O conjunto de instruções AVX 512 é a segunda iteração do AVX e chegou aos processadores Intel em 2013. Abreviação de Advanced Vector Extensions, o conjunto de instruções AVX foi introduzido pela primeira vez no Xeon da Intel Phi (Knights Landing) e mais tarde chegou aos processadores de servidor da Intel no Skylake-X CPUs.
Além disso, o conjunto de instruções AVX-512 chegou aos sistemas baseados no consumidor com a arquitetura Cannon Lake e mais tarde foi suportado pelas arquiteturas Ice Lake e Tiger Lake.
O principal objetivo deste conjunto de instruções era acelerar tarefas envolvendo compressão de dados, processamento de imagens e cálculos criptográficos. Oferecendo o dobro do poder de computação em comparação com iterações mais antigas, o conjunto de instruções AVX-512 oferece ganhos substanciais de desempenho.
Então, como a Intel dobrou o desempenho de seus processadores usando a arquitetura AVX-512?
Bem, como explicado anteriormente, a ULA só pode acessar os dados presentes no registrador de uma UCP. O conjunto de instruções Advanced Vector Extensions aumenta o tamanho desses registradores.
Devido a esse aumento de tamanho, a ULA pode processar vários pontos de dados em uma única instrução, aumentando o desempenho do sistema.
Em termos de tamanho de registrador, o conjunto de instruções AVX-512 oferece trinta e dois registradores de 512 bits, o que é o dobro quando comparado ao conjunto de instruções AVX mais antigo.
Por que a Intel está terminando o AVX-512?
Conforme explicado anteriormente, o conjunto de instruções AVX-512 oferece várias vantagens computacionais. Na verdade, bibliotecas populares como o TensorFlow usam o conjunto de instruções para fornecer cálculos mais rápidos nas CPUs que suportam o conjunto de instruções.
Então, por que a Intel está desabilitando o AVX-512 em seus recentes processadores Alder Lake?
Bem, os processadores Alder Lake são diferentes dos mais antigos fabricados pela Intel. Enquanto os sistemas mais antigos usavam núcleos executados na mesma arquitetura, os processadores Alder Lake usam dois núcleos diferentes. Esses núcleos nas CPUs Alder lake são conhecidos como Núcleos P e E e são alimentados por diferentes arquiteturas.
Enquanto os P-cores usam a microarquitetura Golden Cove, os E-cores usam a microarquitetura Gracemont. Essa diferença nas arquiteturas impede que o escalonador funcione corretamente quando instruções específicas podem ser executadas em uma arquitetura, mas não na outra.
No caso dos processadores Alder Lake, o conjunto de instruções AVX-512 é um exemplo, pois os P-cores têm o hardware para processar a instrução, mas os E-cores não.
Por esse motivo, as CPUs Alder Lake não suportam o conjunto de instruções AVX-512.
Dito isto, a instrução AVX-512 pode ser executada em certas CPUs Alder Lake onde a Intel não as fundiu fisicamente. Para fazer o mesmo, os usuários precisam desabilitar os E-cores durante o BIOS.
O AVX-512 é necessário em chipsets para consumidores?
O conjunto de instruções AVX-512 aumenta o tamanho do registro de uma CPU para melhorar seu desempenho. Esse aumento no desempenho permite que as CPUs processem números mais rapidamente, permitindo que os usuários executem algoritmos de compactação de vídeo/áudio em velocidades mais rápidas.
Dito isso, esse aumento no desempenho só pode ser observado quando a instrução definida em um programa é otimizada para ser executada no conjunto de instruções AVX-512.
Por esse motivo, arquiteturas de conjunto de instruções como o AVX-512 são mais adequadas para cargas de trabalho de servidor, e os chipsets de nível de consumidor podem funcionar sem conjuntos de instruções complexos como o AVX-512.