跳转至

J. HPL-MxP

分数:100 分

In theory, theory and practice are the same. In practice, they are not.

背景

性能测试一直是 HPC 领域最重要的课题之一。1979年,Jack Dongarra 等人发布了 LINPACK benchmarks,至今仍然是性能测试的事实标准之一。2024年11月的Top500榜单中,El Capitan 以 1,742.00PFlops/s 的成绩位居榜首。这个成绩是通过运行 HPL 测试得到的。

随着时代的发展,fp64 不再是衡量 HPC 系统性能的唯一标准。fp16、int8、int4、int1 等低精度计算也逐渐成为 HPC 领域的热点。同时,为了符合 AI 等负载的需求,硬件制造商也在有意降低硬件的 fp64 性能发展速度,将更多面积用在更低精度的计算上。因此,HPL 也需要不断更新,以适应新的硬件和应用场景。

目标

HPL-MxP 也叫 HPL-AI,旨在使用充分利用 fp16 等精度较低的硬件进行 fp64 计算,提高 HPL 的性能。

任务

本题介绍的是用 32 位浮点数实现的 HPL-MxP,这也是 HPL-MxP 的官方实现。你可以使用任意方法进行加速。

评测

评测容器镜像:hpckit。程序运行在配备 Kunpeng 920 处理器的服务器上,可以使用 2 个核心,10G内存。保证 module 命令可用,没有加载任何模块,请在 run.sh 中加载自己所需的环境。

为了方便你获取没有加载任何变量的环境,你可以用full容器,我们提供的 yaml 也是如此。hpckit 容器会默认启用 bisheng 编译器,本题评测时我们进行了特殊处理。

我们会在 hpl-mxp 目录中 bash run.sh 来编译并运行你的程序。注意,hpl-ai.c 程序不可修改,会以 hpc-ai.o 的形式提供在程序运行目录,其中包括了 main 函数及其他性能无关函数。你可以参考现有的 Makefile 使用 hpl-ai.o

bash run.sh

最终得分与对应有效算力成正比。满分为 105 GFLOPs,baseline 为 10 GFLOPs。假设有效算力为x,你的得分为 x-5

提交

请将你的代码打包成 submission.tar 并提交,应该具有如下结构。如果收到"run.sh无法找到"的报错,请注意第一级文件夹的名字应该是 hpl-mxp

|-- hpl-mxp # 必须是hpl-mxp
    |-- hpl-ai.c
    |-- run.sh
    |-- Makefile
    |-- ...

参考

附件