Aurora超级计算机架构与性能优化实践

Aurora超级计算机架构与性能优化实践 1. Aurora超级计算机架构概述Aurora超级计算机是美国阿贡国家实验室部署的百亿亿次Exascale计算系统采用Intel Xeon Max系列CPU和Ponte Vecchio GPUPVC构建的异构架构。每个计算节点包含6块PVC GPU和2颗Sapphire Rapids CPU通过高带宽Xe-Link互连。这种设计特别适合需要大规模并行计算的科学工作负载从传统的高性能计算HPC到新兴的人工智能和数据分析应用。PVC GPU的创新之处在于其多芯片模块Multi-Tile设计每个PVC由多达63个计算单元Xe Core组成支持从FP64到INT8的多种精度计算。特别值得注意的是其高达2.1TB/s的HBM2e内存带宽这对内存密集型应用如分子动力学模拟至关重要。CPU方面Xeon Max首次在x86架构中集成HBM内存单插槽带宽达到0.63TB/s为传统CPU代码提供了显著的加速可能。提示在Aurora上开发应用时建议优先考虑将计算密集型部分卸载到PVC GPU而将控制逻辑和I/O操作保留在CPU。这种异构分工能最大化利用硬件特性。2. 编程模型选择与性能可移植性2.1 主流编程模型对比Aurora支持多种编程模型根据2025年早期科学项目ESP的统计使用率最高的五种模型分别是SYCL23个项目OpenMP22个项目AI框架21个项目Kokkos17个项目OCCA6个项目这些选择反映了科学计算社区对性能可移植性的强烈需求。以SYCL为例作为基于现代C的跨平台抽象层它允许相同的代码在Intel、AMD和NVIDIA GPU上运行。在Aurora上SYCL通过Intel的oneAPI实现深度优化特别是对于PVC的矩阵引擎XMX和光线追踪单元都有专门优化。2.1.1 SYCL的实践要点// 典型SYCL代码结构示例 queue q(gpu_selector_v); auto A malloc_sharedfloat(N, q); auto B malloc_sharedfloat(N, q); auto C malloc_sharedfloat(N, q); q.parallel_for(range1(N), [](id1 i) { C[i] A[i] B[i]; }).wait();关键优化技巧使用malloc_shared实现零拷贝数据传输通过nd_range显式控制工作组大小建议PVC上使用256-512线程/工作组利用sycl::ext::oneapi::experimental::matrixAPI调用XMX指令2.2 抽象层框架的应用对于已有代码库的项目Kokkos和RAJA等抽象层提供了更平滑的移植路径。以LAMMPS分子动力学软件为例其Kokkos后端在Aurora上实现了89倍于基准系统的加速比。这主要得益于内存布局优化使用Kokkos::View确保数据在CPU和GPU上的访问模式一致内核融合通过Kokkos::parallel_reduce合并多个计算步骤异步执行利用Kokkos::fence精细控制流水线2.3 领域特定方案不同科学领域呈现出明显的编程模型偏好物理模拟多采用SYCL/OpenMP如QMCPACK、HACC数据科学倾向Python生态PyTorch、TensorFlow机器学习结合AI框架与定制CU如DarkSkyML使用Horovod进行分布式训练表典型应用的编程模型选择应用领域代表软件主要编程模型节点利用率量子化学QMCPACKOpenMP Offload10,240节点宇宙学HACCSYCL9,984节点气候建模E3SMKokkos8,192节点药物发现VirtualDrugPyTorch4,096节点3. 性能优化关键技术3.1 计算密集型负载优化Aurora在HPL基准测试中取得了1.012 EF/s的性能这得益于以下优化混合精度计算利用PVC的TF32和BF16支持HPL-MxP达到11.64 EF/s通信重叠通过oneCCL实现计算与通信的流水线化数据分块匹配GPU L2缓存128MB/GPU的块大小3.1.1 GEMM性能调优PVC的矩阵乘法性能随精度变化显著FP6429.2 TF/sTF32212.8 TF/sBF16420.3 TF/s优化建议# 设置环境变量控制精度 export ONEMKL_ENABLE_GPU_TF321 export ONEMKL_DEBUG_BF1613.2 内存访问优化Aurora的异构内存体系需要特别关注CPU端DDR50.24TB/s与HBM0.63TB/s的差异GPU端2.1TB/s HBM2e带宽优化案例CRK-HACC宇宙学模拟通过以下改动获得54.4倍加速将粒子数据转换为Structure of ArraysSoA布局使用#pragma omp target data map管理数据生命周期启用Intel编译器自动向量化-qopt-zmm-usagehigh3.3 通信模式优化Aurora采用HPE Slingshot 11网络具有以下特点节点间延迟1.9μsCPU-CPU带宽94.7GB/s4个NIC聚合MPICH的关键优化包括GPU-aware MPI支持直接传输GPU内存MPI_Send(buf_d, ..., GPU)拓扑感知利用MPIX_Comm_shard优化集体通信协议选择针对消息大小动态切换eager/rendezvous协议4. 典型应用性能分析4.1 分子动力学模拟EXAALT项目在1,024节点上获得89倍加速关键技术包括邻居列表重构将O(N^2)算法转为O(N)的细胞链表法内核分解将力计算拆分为短程力SYCL内核长程力oneMKL FFT异步执行使用sycl::queue::submit重叠计算与通信4.2 量子蒙特卡洛QMCPACK的优化路径波函数评估使用OpenMP卸载到GPU矩阵运算调用oneMKL的BLAS3函数随机数生成采用Intel的RNG库mkl_vsl4.3 机器学习工作流CANDLE项目的超参数优化实现130倍加速关键技术模型并行将BERT-large分布在512个节点梯度压缩使用oneCCL的ccl::reduce配合FP16流水线化通过DAOS存储实现数据预取5. 故障处理与系统稳定性Aurora的可靠性设计值得关注硬件级PVC内置的RAS特性ECC、指令重试系统级自动故障管理IFR平均修复时间15分钟应用级检查点/重启机制集成如HDF5异步I/O常见问题排查流程使用unittrace检测GPU内核异常通过mpitrace分析通信瓶颈检查/proc/self/status的内存使用情况6. 工具链与开发环境Aurora的软件栈基于Intel oneAPI构建编译器icpx支持SYCL 2020标准性能分析VTune的GPU热点分析调试工具Intel Distribution for GDB开发建议工作流# 1. 模块加载 module load oneapi # 2. 编译SYCL代码 icpx -fsycl -o app main.cpp # 3. 提交作业 qsub -l nodes4 -l walltime1:00:00 ./app对于Python生态推荐使用Intel Extension for PyTorchdpctl管理GPU设备oneDAL加速数据处理7. 经验总结与展望在实际移植过程中我们发现几个关键点渐进式移植效果最好先验证单GPU内核再扩展至多节点混合精度带来显著收益在ExaSky项目中BF16使性能提升3倍工具链成熟度影响大早期采用oneAPI 2023时遇到编译器崩溃升级到2024后稳定未来优化方向包括探索PVC的矩阵稀疏化能力测试SYCL的unified shared memory新特性评估AI框架如vLLM在大模型推理中的应用对于计划移植到Aurora的团队建议从ALCF提供的移植指南开始优先使用经过验证的编程模型如SYCL或Kokkos并充分利用早期科学团队积累的优化经验。特别是在处理大规模并行I/O时DAOS存储系统与传统文件系统的性能差异需要特别注意。