目录

SCC2027 超算竞赛选拔 · 四题成果公示

2027 年国际大学生超算竞赛(SCC)校内选拔作业的完整实测成果与创新点公示。 所有数据均来自本机真实运行(非理论推算),原始输出文件全部收录。

完成日期:2026-10-24


测试平台

项目 配置
CPU Intel Core i9-14900HX(8P+16E,24 核 32 线程)
内存 32 GB DDR5
GPU NVIDIA RTX 4070 Laptop 8 GB(sm_89)
系统 Windows 11 + WSL2 Ubuntu 24.04
工具链 GCC 13.3 / Open MPI 4.1.6 / CUDA 12.0 / CMake

四题成果速览

1️⃣ HPCG —— 正式 610 秒 VALID,3.2605 GFLOP/s

  • 最优配置:1×16 线程 + -march=native + 240³ 网格(探索 13 种配置后选出)
  • 🔍 发现:带宽受限负载下 **16 线程反超 32 线程 +6%**(超线程争抢内存通道 + E 核长尾效应)
  • 🔍 发现:WSL2 虚拟拓扑下任何线程绑定都劣于不绑定(close 绑定最差 -87%)
  • 官方结果文件:results/HPCG/|报告:docs/HPCG-report.pdf

2️⃣ HemePure —— UnevenArms 血流仿真 7 组对照实验

np 1 2 4
MLUPS 14.31 14.63 36.32
  • 🔍 发现:np=2 完全无加速的根因——rank 0 是专职几何读取进程,np=2 时仅剩 1 个计算进程;np=4 才有 3 个计算进程(2.54× 加速)
  • 🔍 发现:monitoring 模块每步开销约 7%,但开启稳态收敛检测后提前 1311 步终止(8689/10000),净收益为正
  • 🔍 发现:SSE3 ≈ AVX2(D3Q19 LBM 带宽墙,128-bit 向量已饱和访存),关 SIMD 慢 22%
  • 原始 report.txt ×7:results/HemePure/|报告:docs/HemePure-report.pdf

3️⃣ OpenFOAM —— motorBike 全程 MPI 剖析

源码编译 v2412,motorBike 6 进程 500 迭代(116.6 s),mpiP 全程拦截统计:

排名 按总耗时 按调用次数
1 MPI_Waitall(80.0 s,88.9%) MPI_Waitall(933,075 次)
2 MPI_Allreduce(9.5 s) MPI_Allreduce(312,112 次)
3 MPI_Bcast(0.2 s) MPI_Isend(168,952 次)

4️⃣ YALM —— 修复上游 WSL2 兼容缺陷,GPU 推理 18.6× 加速

⭐ 核心贡献:定位并修复 yalm 在 WSL2 下 CUDA 非法访问的缺陷

  • 根因:yalm 依赖 UVA 让 kernel 直接写 cudaHostRegister 的主机指针(原生 Linux 合法),WSL2 GPU 半虚拟化(dxgkrnl)不支持该隐式映射 → cudaErrorIllegalAddress。以最小复现程序证实(cudaHostRegisterDefault/Mapped 两种方式均失败)
  • 修复(201 行 patch,改 4 个文件):logits 改驻显存 + 采样时 D2H 回拷;matmul_cuda/ffn_cuda/mha_cuda 三个辅助函数改”上传-计算-拷回”模式;新增 YALM_NO_CUDA_GRAPH 旁路开关
  • 验证:仓库全部 CUDA 单元测试通过;Llama-3.2-1B fp16 生成语义连贯文本
配置 吞吐 (tok/s) 带宽 (GB/s)
CPU(24 线程) 4.79 14.4
GPU + CUDA Graph 84.47 253.4
GPU 旁路 Graph(本项目) 89.24 267.7

目录结构

├── docs/            # 四份技术报告(PDF,含全部实验数据与分析)
├── results/         # 原始实验数据(HPCG 官方结果 / report.txt ×7 / mpiP 报告)
├── screenshots/     # 关键结果截图
├── scripts/         # 可复现实验脚本(HPCG 矩阵 / HemePure 矩阵 / motorBike 管线)
└── yalm-wsl2/       # WSL2 缺陷修复:patch + 修复后完整源码 zip

复现说明

环境:WSL2 Ubuntu 24.04 + GCC 13 + Open MPI 4.1.6(GPU 部分需 CUDA + sm_89)。

# HPCG:编译 → 13 配置探索 → 最优配置 610s 正式运行
bash scripts/hpcg_final.sh

# HemePure:三版本编译后跑 7 组实验矩阵
bash scripts/hemepure_experiments.sh

# OpenFOAM:blockMesh → decomposePar → snappy → simpleFoam + mpiP 剖析
bash scripts/motorBike-rerun3.sh && bash scripts/motorBike-final.sh

# YALM:应用 patch 后基准(GPU / CPU / Graph 开关)
cd yalm-wsl2 && unzip yalm-source.zip
make CUARCH=sm_89 && ./yalm/build/main model.yalm -i "..." -m c -n 128

License

  • 本仓库自撰报告与实验数据:CC BY 4.0
  • yalm 修复源码遵循上游 yalm 原许可证
关于
1.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号