鲲鹏HPC应用移植典型问题
已解决发表于2025-12-04 20:22:44
0 查看
1. 指令集兼容性问题
- 现象:编译时出现
undefined reference to '__atomic_load_8'错误,汇编代码中存在lock cmpxchg16b等X86特有指令。 - 根因:鲲鹏ARM架构采用RISC指令集,不支持X86的原子操作指令。
2. 数学库性能瓶颈
- 现象:FFT计算模块耗时占比达45%,单节点性能仅为X86平台的60%。
- 根因:OpenBLAS未针对鲲鹏多核NUMA架构优化,存在跨节点内存访问。
3. 内存访问效率低下
- 现象:Halo交换阶段带宽利用率仅58%,出现大量L2缓存未命中。
- 根因:数据结构未按鲲鹏64核NUMA特性对齐,存在跨NUMA节点访问。
4. 编译器优化缺失
- 现象:FP64浮点运算性能未达预期,理论峰值利用率仅65%。
- 根因:默认使用GCC编译,未启用ARM NEON向量指令扩展。
ru'he快速解决
我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。查看详情
1. 指令集兼容性问题
- 现象:编译时出现
- 根因:鲲鹏ARM架构采用RISC指令集,不支持X86的原子操作指令。
2. 数学库性能瓶颈undefined reference to '__atomic_load_8'错误,汇编代码中存在lock cmpxchg16b等X86特有指令。- 现象:FFT计算模块耗时占比达45%,单节点性能仅为X86平台的60%。
- 根因:OpenBLAS未针对鲲鹏多核NUMA架构优化,存在跨节点内存访问。
3. 内存访问效率低下- 现象:Halo交换阶段带宽利用率仅58%,出现大量L2缓存未命中。
- 根因:数据结构未按鲲鹏64核NUMA特性对齐,存在跨NUMA节点访问。
4. 编译器优化缺失- 现象:FP64浮点运算性能未达预期,理论峰值利用率仅65%。
- 根因:默认使用GCC编译,未启用ARM NEON向量指令扩展。
ru'he快速解决