Skip to content

Latest commit

History

147 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

ArchBench

编译方法

本项目依赖于abstract-machinenavy-apps,需要提前设置AM_HOMENAVY_HOME,具体方式请参考相应的仓库。

首先设置环境变量BENCH_HOME为当前目录:

export BENCH_HOME=`pwd`

同一组程序支持四种规模的输入:test,train,ref和huge。

名称计分建议使用场景
testX正确性测试
trainO在RTL仿真环境中研究微结构行为
refO在模拟器或FPGA环境中评估处理器性能
hugeO衡量高性能处理器(如真机)的性能

默认运行test数据规模,可通过mainargs选择其它的数据规模。

然后在相应程序的目录下编译并执行, 例如:

cd bench/000.hello
make ARCH=riscv32-nemu run # 需要提前设置AM_HOME
make TARGET=x86_64-linux-gnu run mainargs=huge # 需要提前设置NAVY_HOME

评分根据

每个benchmark都记录以REF_CPU为基础测得的运行时间微秒数。每个benchmark的评分是相对于REF_CPU的运行速度,与基准处理器一样快的得分为REF_SCORE=1000000

并行评测脚本

本项目提供了一个并行评测脚本scripts/run.sh,当程序运行时间不受宿主机负载影响时(如RTL仿真),可考虑通过该脚本并行评测所有程序,如:

bash run.sh ARCH=riscv32e-npc mainargs=train

当程序运行时间受宿主机负载影响时(如模拟器或真机),可在使用单线程运行该脚本,如:

nproc=1 bash run.sh ARCH=native mainargs=huge

脚本最后还会统计所有benchmark得分的算术平均和几何平均。

可以通过设置benchlist变量来指定需要运行哪些benchmark。具体可参考scripts/benchlist/all.sh

基准程序

类型benchmark介绍说明
测试000.helloHello程序测试用
小型100.blockchain区块链计算sha256
101.igemm矩阵乘法仅含整数操作
102 queenN皇后问题用位运算实现
103.dinic求解二分图最大流
104.malloc动态内存分配
105.bfbrainf*ck语言解释器
106.qsort快速排序
107.stream内存带宽测量
108.ntt数论变换求多项式乘法
中型200.genann神经网络仅含整数操作
201.jpegJPEG解码
202.llama2大语言模型仅含整数操作
203.rsaRSA加解密
204.hypergraph超图划分
大型300.bzip3数据压缩
301.gsimRTL仿真
302.lua脚本解释器
303.cprocC语言编译器
304.mp3MP3解码器仅含整数操作
305.h264H264解码器仅含整数操作

About

No description, website, or topics provided.

Resources

Stars

15 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages