大佬, 您的代码里循环次数是10**6, 我原来是10**8
而且我的python代码是s是double的,所以加法也是double的
您再跑下看看
我的机器上10**8是这样的:
OpenMP init.
Run0 resut is 4999999950000000.00, done in 339.596 ms!
Run1 resut is 4999999950000000.00, done in 141.213 ms!
Run2 resut is 4999999950000000.00, done in 125.127 ms!
Run3 resut is 4999999950000000.00, done in 120.397 ms!
Run4 resut is 4999999950000000.00, done in 129.667 ms!
Run5 resut is 4999999950000000.00, done in 29.3486 ms!
Run6 resut is 4999999950000000.00, done in 7.1298 ms!
您打开simd优化了吗? run5的 29ms应该最快的,run6是整型运算不可比。
【 在 ble 的大作中提到: 】
: 实际上你的C++都在做double加法,没法启用AVX;而Python代码都在做int加法,所以可以启用。
: #include <chrono>
: #include <format>
: ...................
【 在 ble 的大作中提到: 】
: 实际上你的C++都在做double加法,没法启用AVX;而Python代码都在做int加法,所以可以启用。
: #include <chrono>
: #include <format>
: ...................
--
FROM 123.112.71.*