Skip to content

OSCPU/archbench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

145 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArchBench

编译方法

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

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

export BENCH_HOME=`pwd`

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

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

默认运行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.hello Hello程序 测试用
小型 100.blockchain 区块链 计算sha256
101.igemm 矩阵乘法 仅含整数操作
102 queen N皇后问题 用位运算实现
103.dinic 求解二分图最大流
104.malloc 动态内存分配
105.bf brainf*ck语言解释器
106.qsort 快速排序
107.stream 内存带宽测量
108.ntt 数论变换求多项式乘法
中型 200.genann 神经网络 仅含整数操作
201.jpeg JPEG解码
202.llama2 大语言模型 仅含整数操作
203.rsa RSA加解密
204.hypergraph 超图划分
大型 300.bzip3 数据压缩
301.gsim RTL仿真
302.lua 脚本解释器
303.cproc C语言编译器
304.mp3 MP3解码器 仅含整数操作
305.h264 H264解码器 仅含整数操作

About

No description, website, or topics provided.

Resources

License

Stars

12 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages