Lobsters | 📄 原文链接 | 2026-08-12 收录

SIMD 对齐的性能影响:跨越缓存行的代价实测

来源:eme64.github.io — 2026-01-12

📋 概述

作者深入剖析了 SIMD 向量化中对齐(alignment)对性能的影响。核心问题是当一次内存访问跨越 64 字节缓存行边界时,会被拆成两次访问,从而拖慢内存单元。他用 Java Vector API 做了详细基准:在 AVX512 上 64 字节向量、16 个 int,对齐与完全不对齐之间性能差可达 50%,其中对齐存储(store)比对齐加载(load)更关键,能带来 20% 差异;向量越大差异越明显。他还谈到自己曾把自动向量化的对齐从 store 误改成 load 导致 20% 回归的教训,并给出实用建议:用 Vector API 时若追求极致性能,应使用离堆原生内存并显式指定对齐。

🔑 核心要点

💡 金句

向量化带来的收益通常远超不对齐的损失,对齐只是锦上添花的最后一公里。
← 返回 Lobsters 首页