gpt4 book ai didi

c++ - 具有 O2+ 优化的英特尔编译器上的 Eigen 交换函数中的错误

转载 作者:行者123 更新时间:2023-11-30 04:58:19 25 4
gpt4 key购买 nike

我在我的程序中使用 Eigen 库,在英特尔编译器 (在英特尔(R)C++ 编译器 18.0.222 [x86_64] Ubuntu 16 上测试)编译时它无法正常工作 -O2/-O3 优化级别 (与 -O0 和其他编译器(如 MS)一起工作良好)

可能是什么原因?

重现代码

ArrayXXf test(2,3);
float sumBefore = test.sum();
test.row(0).swap(test.row(1));
float sumAfter = test.sum();
float dif = abs(sumBefore - sumAfter);
assert(dif < 0.0001);

例如,我得到了dif = 0.22

最佳答案

这是因为 Eigen.swap 函数 + Intel 编译器上的一些错误。

很难向 Eigen 提交错误,所以我将它留在此处,以便搜索有关错误的信息。

解决方法是,例如,使用 cblas_?swap from MKL这很好用

关于c++ - 具有 O2+ 优化的英特尔编译器上的 Eigen 交换函数中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51710915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com