开发与编程 Jul 23, 2026加入收藏

Mitchell Hashimoto(HashiCorp 创始人)发表了一篇文章,提出了一个简单的论点:在 CPU 宽度时代,不了解 SIMD 就意味着将 4× 到 16× 的性能白白浪费。
Mitchell Hashimoto——HashiCorp 联合创始人,现为活跃的独立贡献者(如今正在用 Zig 开发其终端模拟器 Ghostty)——发布了一篇长文,标题简单直白:《Everyone Should Know SIMD》(人人都该了解 SIMD)。其核心观点只有一句话:在 CPU 频率停滞、但向量寄存器宽度不断增加的时代,忽视 SIMD 就等于让数量级级别的性能白白浪费。
SIMD(单指令多数据流)指的是 CPU 指令集,可在单个周期内对多个数据同时执行相同操作——例如一次性将八个 float 相加,或一次性比较十六个字节。现代 x86-64 CPU 上,这对应 SSE / AVX / AVX2 / AVX-512 指令集;而在 ARM(Apple Silicon、Neoverse 服务器)上,则是 NEON 和 SVE。
这个话题并不新鲜——SIMD 早在 MMX(1996)时代就已存在。但如今的变化在于:
float32 或 64 个 int8。其核心信息:SIMD 不再是图形引擎或视频编解码器开发者的专利。任何大规模数据处理——JSON 解析器、全文搜索引擎、字符串比较、统计计算、图像滤波、哈希计算——都能从向量化中获益匪浅。
典型案例:
std::sort 甩开 3-5 倍。换句话说:SIMD 不再是小众优化,而是所有涉及大规模数据处理性能提升的基础技能。
手写 SIMD 向来以痛苦著称:晦涩的 intrinsics、x86 与 ARM 间脆弱的移植性。如今有三种可行方案:
core::simd、Zig 中的 @Vector 内建类型)。对于普通应用开发者而言,通过可移植库(Highway、std::simd、@Vector)入门,既能避免深入底层 intrinsics,又能保留大部分性能收益。
Hashimoto 的观点切中要害:在托管运行时(JavaScript、Python、Go)的培养下成长起来的一代开发者,往往忽略了 CPU 早已具备的强大计算能力——而他们的代码却从未利用过这些能力。这不是指责,而是事实。而一旦将这些能力与关键路径结合,其回报率之高令人瞩目。
关键要点
std::simd、Zig @Vector)让入门变得可行。本文由人工智能撰写,并经人工编辑审核。