- 主题:reinterpret_cast<uint *>(void *) 碰到未对齐内存会出错吗?
我一直这么用,网卡、usb、pcie收到的数据转float*、double*、__m256*直接用没报错
【 在 allegro 的大作中提到: 】
: 会
--
FROM 123.150.181.*
没报错看来是运气好,小白承蒙微软照顾了。
【 在 z16166 的大作中提到: 】
: 手册能查到。x86(包括x64)的对齐检查通过下面三个东西控制是否启用:
: 1、CR0寄存器的AM位(Alignment mask)。ring 0才能修改这个位。要测试必须写个kernel module。
: 2、EFLAGS寄存器的AC位(Alignment check)。ring 3就能修改这个位。
: ...................
--
FROM 123.150.181.*
对齐运算速度是快些,而我以前拿gromacs里一些函数测了测,{copy至对齐+后续运算}耗时比{_mm256_loadu+后续运算}长百分之几~十。所以我习惯不对齐直接拿来算
【 在 Bernstein 的大作中提到: 】
: m128、m256之类的,用simd指令的话,如果不对齐会出问题
: 其他类型x86上应该没问题
:
--
FROM 123.150.181.*