Dev & Code Jul 23, 2026Adicionar aos favoritos

Mitchell Hashimoto (fundador da HashiCorp) escreve um ensaio que apresenta uma tese simples: na era dos CPUs de núcleos largos, não conhecer o SIMD é deixar 4× a 16× de desempenho na mesa.
Mitchell Hashimoto — o cofundador da HashiCorp que se tornou um contribuidor individual prolífico (hoje trabalha no Ghostty, seu emulador de terminal em Zig) — publicou um longo artigo intitulado simplesmente Everyone Should Know SIMD. A tese se resume em uma frase: em um mundo onde os CPUs estagnam em frequência, mas aumentam em registradores vetoriais, ignorar o SIMD é deixar escapar ordens de grandeza de desempenho.
SIMD (Single Instruction, Multiple Data) refere-se às instruções de CPU que aplicam a mesma operação a vários valores simultaneamente — somar oito float em um único ciclo, comparar dezesseis bytes de uma vez. Nos CPUs x86-64 modernos, são os conjuntos de instruções SSE / AVX / AVX2 / AVX-512. No ARM (Apple Silicon, servidores Neoverse), são NEON e SVE.
O debate não é novo — o SIMD existe desde o MMX (1996). O que mudou:
float32 ou 64 int8.A mensagem central: o SIMD não é exclusivo de codificadores de motores gráficos ou codecs de vídeo. Qualquer manipulação de dados em massa — parsers JSON, mecanismos de busca de texto completo, comparações de strings, cálculos estatísticos, filtros de imagem, hashes — se beneficia massivamente de uma passagem para o vetorial.
Casos de uso tangíveis:
std::sort em um fator de 3-5 em arrays de inteiros.Em outras palavras: não é mais uma área de nicho, é uma competência básica para tudo que diz respeito a desempenho em volume.
O SIMD manual é conhecido por ser trabalhoso: intrinsics ilegíveis, portabilidade frágil entre x86 e ARM. Três abordagens viáveis hoje:
core::simd no Rust nightly, @Vector builtin no Zig).Para um desenvolvedor aplicativo “padrão”, a entrada por uma biblioteca portátil (Highway, std::simd, @Vector) evita mergulhar nos intrinsics de baixo nível, mantendo a essência do ganho.
Hashimoto acerta em cheio: a geração de desenvolvedores formada em runtimes gerenciados (JavaScript, Python, Go) muitas vezes ignora que o CPU dispõe, há dez anos, de meios de cálculo que nunca são usados por seu código. Não é uma acusação — é um diagnóstico. E o retorno sobre o investimento, quando finalmente se conectam esses meios a um caminho crítico, é espetacular.
Para reter
std::simd, Zig @Vector) tornam a entrada acessível.Artigo produzido por inteligência artificial, revisto sob controlo editorial humano.