SIMD(MMX/SSE/AVX)变量命名规范心得
Intel® Intrinsics Guide
SIMD、SSE、AVX指令集
Header | Purpose |
---|---|
x86intrin.h | Everything, including non-vector x86 instructions like _rdtsc(). |
mmintrin.h | MMX (Pentium MMX!) |
mm3dnow.h | 3dnow! (K6-2) (deprecated) |
xmmintrin.h | SSE + MMX (Pentium 3, Athlon XP) |
emmintrin.h | SSE2 + SSE + MMX (Pentium 4, Athlon 64) |
pmmintrin.h | SSE3 + SSE2 + SSE + MMX (Pentium 4 Prescott, Athlon 64 San Diego) |
tmmintrin.h | SSSE3 + SSE3 + SSE2 + SSE + MMX (Core 2, Bulldozer) |
popcntintrin.h | POPCNT (Nehalem (Core i7), Phenom) |
ammintrin.h | SSE4A + SSE3 + SSE2 + SSE + MMX (AMD-only, starting with Phenom) |
smmintrin.h | SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE + MMX (Penryn, Bulldozer) |
nmmintrin.h | SSE4_2 + SSE4_1 + SSSE3 + SSE3 + SSE2 + SSE + MMX (Nehalem (aka Core i7), Bulldozer) |
wmmintrin.h | AES (Core i7 Westmere, Bulldozer) |
immintrin.h | AVX, AVX2, AVX512, all SSE+MMX (except SSE4A and XOP), popcnt, BMI/BMI2, FMA |
Header files for x86 SIMD intrinsics
【AI PC端算法优化】一,一步步优化RGB转灰度图算法有讲解些常用指令
并行编程方法与优化实践-刘文志-电子书-在线阅读-网易云阅读 其中关于simd的内容都可以试读,狂喜。
为什么SSE需要16字节对齐,64位机器一次也就存取8字节,只要8字节对齐不就能保证完美的存取了吗?
好像最近几年的intel cpu访问unaligned内存数据,和访问anligned内存数据形成差不多来。呜呜呜,我竟然花了很大功夫去保证数据对齐。。。
2020年12月7日 gcc默认打开__SSE__宏,没有打开__AVX__宏