• 首页
  • 赛事活动
    • 海洋计算挑战赛(MCC)
    • 并行应用挑战赛(PAC)
  • 新闻公告
  • 资料站
  • 机时申请
  • 联系我们
登录

优化赛道 | 题一:INT8GEMM算子优化

7月25





Int8GEMM赛题简介
Int8GEMM是指使用INT8数据类型进行的通用矩阵乘法(General Matrix Multiplication)运算,是一种高效的深度学习推理加速技术。






赛题要求


01


赛题


1. 已提供gemm测试工具包
源码路径:/home/PACfinal/int8gemm.tar.gz,解压到个人目录下即可
2. 编译
修改Makefile文件,执行make命令编译,将会编译src/gemmlib.c在lib目录下生成libgemm.so,编译test/GemmTest.cpp在当前目录下生成testgemm可执行程序
3. 运行./testgemm,分别计算六组mnk输入数据
具体mnk设置参考int8gemm_mnk文件
4. 数据说明

  • 矩阵固定采用row major排布,算法和测试程序都基于row major编写
  • 采用N N转置类型,A和B矩阵都不做转置
  • 为避免精度误差,设定oc=0不参与计算,alpha取1,beta取1
  • 每次运行只执行一次gemm,确保冷启动条件,如有波动,请多次测试取最大值

5. 计算资源
最多使用单个NUMA内的38核
6. 提交脚本参考(必须使用脚本提交到计算节点运行)

#!/bin/bash

#DSUB --mpi hmpi

#DSUB -nn 1 节点数

#DSUB -R 'cpu=38;mem=256000' 

#DSUB -x job 作业节点独占

#DSUB -oo test.out

#DSUB -eo test.err

taskset -c 0-37 ./testgemm --m=128 --n=1536 --k=7168

taskset -c 0-37 ./testgemm --m=128 --n=1536 --k=1536

taskset -c 0-37 ./testgemm --m=128 --n=576 --k=7168

taskset -c 0-37 ./testgemm --m=128 --n=7168 --k=1024

taskset -c 0-37 ./testgemm --m=128 --n=1536 --k=448

taskset -c 0-37 ./testgemm --m=128 --n=576 --k=448

注:m,n,k设置请参考int8gemm_mnk文件设置

7. dsub --affinity auto -s sub.sh提交作业

djob -l 作业号查看作业运行情况,查看*.out相关文件确认结果,输出参考如下:

8.  作业运行说明

  • 指定矩阵乘法的M,N,K参数

    ./testgemm --m=128 --n=1536 --k=7168

  • 如果只测试性能,不作结果校验

    ONLY_PERF=1 ./testgemm --m=128 --n=1536 --k=7168

  • 结果输出讲解

    Testing i8u8, -m=128 ,n=1536 ,k=7168: PASSED, 0.34448GFLOPS

    Testing i8u8, m = 128, n =1536, k =7168: SKIP CHECK, 0.381542GFLOPS

    结果中PASSED表示计算结果正确,0.34448GFLOPS 表示gemmlib.c里的gemm实现的性能,前部的信息是测试的GEMM参数配置,结果中SKIP CHECK表示不作结果校验。

注:check结果校验位于性能测试后面,不影响性能


02


赛题说明

1. 编程语言:C/C++,汇编,intrinsics

推荐使用KUPL.mma模板库与KUPL.memcpy数据搬移模块

2. 编译器:

可以使用gcc, 毕昇编译器(推荐毕昇编译器)

3. 本赛题不允许使用MPI

最大可用核心数为38,限制在1个numa内

4. 提交最终源码、Makefile、编译环境、运行截图等,确保数据可复现

5. 初始数据要求保存在DDR上

6. GemmTest.cpp文件不可修改,只能改接口代码

通过优化gemmlib.c里的gemm实现,追求更高的flops性能

7. 禁止直接调用kml库接口

8. 允许不同矩阵规模调用不同算子函数

9. 不允许使用warmup优化,测试性能为冷启动测试,只允许跑一次测性能。

最终复测时跑十次取最佳性能

10. 评分标准

取六组测试数据的Flops总和,Flops值越高,成绩越好。要求结果最终输出通过PASSED测试




决赛评分规则


  • 优化赛道决赛共两题:题一【INT8GEMM算子优化】和题二【Attention算子优化】,两题均为必答题,两题各占决赛成绩50%;

  • 各阶段评分占比

    决赛上机成绩=题一上机成绩(50%)+题二上机成绩(50%)

    决赛成绩=上机成绩(80%)+现场答辩成绩(20%)

    最终总决赛成绩=初赛成绩(20%)+决赛成绩(80%)

  • 不可针对某类算例做针对性、无普适性、非通用优化,否则该部分成绩酌情扣除(如不确定优化方法是否满足要求,请及时与组委会沟通确认优化细节)

  • 如出现作品源代码高度相似情况,则视为同一作品,取消参赛成绩





作业提交内容和方式


01


作业提交内容

提交内容:

  • 最终优化后的源代码
  • 编译环境说明及Makefile文件配置
  • 提供完整编译测试流程README文件,保证后续结果能复现
  • 最终的*.out作业日志
  • 技术报告PPT

说明:
新建目录mkdir  ~/final_result_1。源代码、Makefile配置文件及*out结果文件放置在final_result_1路径下,由于机器不支持下载,该部分文件需保存在服务器上


02


作业提交方式

  • 提交方式:决赛当天指定时间提交

  • 提交时间:2025年8月14日(具体时间、地点以临近时间通知为准)
  • 赛题、上机指南及作品提交模版:

    链接: https://pan.baidu.com/s/1iH5WU0d-Y6giU6WX8dE3_Q 

    提取码: PAC5 





其他说明



  • 机时申请时间:初赛评审结束后,机时系统自动发送,具体发送时间请等待通知;
  • 决赛评审方式:所有晋级决赛的队伍需要线下全程参加答辩,具体答辩时间和地点另行通知
  • 证书发放:决赛评比结束后,由专家评审和组委会根据《大赛章程》和赛题评审
    规则共同确定获奖情况,其中同一单位最多两支队伍获奖。
  • 如有任何问题,可在“PAC 2025参赛交流群”中直接交流(技术问题请联系刘帅或刘珍圆,赛事赛程请联系张那),或者联系组委会工作人员(微信号:Paraterazhangna)

官方通知

23
优化赛道 | 题二:Attention算子优化

2025/7/25

23
优化赛道 | 题一:INT8GEMM算子优化

2025/7/25

23
鲲鹏展翼,赛场高光‌:PAC2025初赛晋级榜单权威发布

2025/7/24

23
MCC2025初赛圆满落幕!16强突围,谁将冲刺“深蓝星海”?

2025/6/26

23
PAC 2025 | 优化赛道初赛【题一:DGEMM算子优化】

2025/6/9

23
PAC 2025 | 优化赛道初赛【题二:HPCG优化】

2025/6/9

23
一路相伴,并肩同行 | 第十二届并行应用挑战赛再度扬帆启幕

2025/5/22

23
算海扬帆,青春启航 | 第二届海洋计算挑战赛扬帆起航

2025/6/6

23
全体代码星人注意!PAC报名通道即将挤爆!

2025/4/15

23
“海洋总动员”!2025海洋计算挑战赛报名开始了!

2025/3/6

23
中山大学 | 算法优化与硬件利用的实战经验

2024/10/23

23
南开大学 | 探索新知与突破自我

2024/10/23

23
少年强,行业兴丨PAC 2023-2024赛季圆满闭幕

2024/9/30

23
第十一届PAC 大赛决赛晋级榜单公布:“HPC+AI”成新趋势

2024/8/22

23
第十一届PAC大赛高校培训季纪实(三):PAC优质“实践性”学习平台

2024/7/24

23
第十一届PAC大赛高校培训季纪实(二):聚焦大咖报告,探寻师资传承

2024/7/12

23
第十一届PAC大赛高校培训季纪实(一):对话参赛师生解析行业动态

2024/6/22

23
一路相伴,一往直前丨第十一届PAC全国并行应用挑战赛启幕

2024/4/26

23
十年筑梦,向新而行 | PAC全国并行应用挑战赛在京启幕

2022/7/7

23
PAC: 十年筑梦,向新而行

2022/5/7

合作与支持单位

ACM中国

 

中国科学院计算技术研究所

中国科学院计算机网络信息中心

清华大学

机械工业出版社

联系我们

地址:北京市海淀区厢黄旗东路1号院清控银杏科技园2号楼4层

邮编:100193

邮箱:parallel_edu@paratera.com

京ICP备09053078号