intel的开源神经网络dnnl里面有gemm conv等深度优化的kernel 可以看看。先用vtune跑个profile出来 看看看是cpu bound还是 memory bound。如果cpu 再看cache是否都在l1 如果不是就考虑数据的layout以及分块 再用avx512把核心计算部分用simd的intrisinc重写 再考虑多线程openmp展开 试试openmp的各种参数 如果需要通信就要考虑通信协议parameter 还是allreduce 还有计算和通信的overlap 另外临时变量能不能用全局的cache起来 cpu的mem不值钱 用空间换时间也是一个重要且常用的方法
【 在 Akyrum 的大作中提到: 】
: 有没有推荐的书或课程/有没有推荐的开源项目可学习模仿下?
: 研究研究为啥高手的linpack能64核intel 4numa暴打32核amd 4numa,而我写的程序64核intel勉强打平32核amd
来自 RMX1901
--
FROM 58.247.209.*