【发布时间】:2016-07-08 12:49:03
【问题描述】:
在快速尝试中,我尝试将 AVX2 数据(类型 __m256i)存储在向量中:
__m256i values= _mm256_set_epi32(2, 4, 6, 8, 10, 12, 14, 16);
std::vector< __m256i > vecValues;
for ( int k = 0; k < static_cast< int >(100); k++ )
{
vecValues.push_back( values);
}
使用 VS2012,这在调试模式下工作,但在发布模式下运行时会出现“未处理的异常/访问冲突”。
有人能解释一下,为什么以及如何正确存储数据吗?
【问题讨论】:
-
也许你的变量没有正确对齐?
-
而且即使你能做到这一点,它也没有任何意义。
-
@harold 我在完全围绕 SIMD 类型设计的例程中经常做这种事情(作为原始数组,而不是 std::vector)。
标签: c++ debugging vector release avx2