- 主题:求指点高性能计算的技术栈学习路径
用的什么编译器,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.*
加速比上不去是正常的。要看你的逻辑是不是真的可以分割成数据和逻辑完全独立的模块,如果不能完全分割成独立的,加速比的瓶颈在cpu的内部读写带宽上。
【 在 Akyrum 的大作中提到: 】
: 给高校做的一个课题,64核4路金牌比32核3970x(降频180w)慢4%,前几天内部初验时老师提了意见,既要提高加速比又要支持集群还要支持国产化啥的。
: 年底结题,我感觉可以再优化下。现实问题是cpu接近满占用了,3970x也是4个numa,为啥3970x能加速30多倍,而4路5218也只加速30多倍,加速比不上去的原因没弄清楚,这是1个待解决问题。
: 听说设affinity可提高加速比,要改起来程序框架变动不小,除了要设亲和性,还哪些优化技巧?这是第2个问题
--
FROM 122.224.174.*
what programmers should know about memory
读一下这个系列,写得非常好
【 在 Akyrum 的大作中提到: 】
: 有没有推荐的书或课程/有没有推荐的开源项目可学习模仿下?
: 研究研究为啥高手的linpack能64核intel 4numa暴打32核amd 4numa,而我写的程序64核intel勉强打平32核amd
: ms的编译器,因为公司大部分机器禁用avx512所以没开512
--
FROM 115.193.169.*