用的什么编译器,intel cpu要用intel的编译器,用其他编译器的话avx512这些开了没有
HT不要用,HT是假的,用了反而影响性能,numa上同一模块数据有没有限定cpu组
程序里用的什么数据结构,是否cache友好,访问的时候是否按内存遍历,有没有很多shared variable,哪怕是shared read
代码里if的branch多不多,如果是c++20有没有用[[likely/unlikely]]标记,常量有没有用constexpr,函数有没有标记const/noexcept
异步逻辑能用corutine就用corutine,callback handler里需要capture或者bind各种数据,都是cache不友好的。
【 在 Akyrum 的大作中提到: 】
: 4颗5218+12条2933内存(被cpu降频到2666)跑mkl附带的linpack得2928gflops,对比3970跑techpowerup的linpack才847gflops。。。。貌似性能正常
: 慢30多倍是我对比5218和3970的profiler结果,主要计算过程没看出什么区别,目前发现一些调用次数很多的子函数,临时对象构造析构耗时差别很大,累加统计有30多倍。
: :
--
FROM 122.224.174.*