Skip to content

Commit 6416789

Browse files
committed
doc: bump readme to new version
1 parent 1b095a1 commit 6416789

File tree

1 file changed

+57
-67
lines changed

1 file changed

+57
-67
lines changed

README.md

Lines changed: 57 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,69 @@
1-
# OPMark (Prototype of OpenPerf Project)
1+
# OpenPerf Project
22

3-
This Flake give a Qemu RISC-V Linux / Spike bare metal runtime to run benchmark, aim to make test environment reproducible and result fair enough.
3+
OpenPerf is an open source benchmark aims to test the performance of the microarchitechture in processor core, developed and be mantained by [One Student One Chip Project](https://ysyx.org).
44

5-
## Candidate Benchmark Programs
5+
# How to use
66

7-
[stress-ng - GPL 2.0 Licence](https://github.com/ColinIanKing/stress-ng)
7+
This project is planning to integrate with [YSYX's workbench](https://github.com/OSCPU/ysyx-workbench) and [NJU ProjectN](https://github.com/NJU-ProjectN).
88

9-
[Anybench - MIT Licence](https://github.com/EntityFX/anybench)
10-
11-
### Memory access patterns
12-
13-
#### Stream access
14-
15-
[STREAM - Custom Licence, but Open Source friendly](https://github.com/jeffhammond/STREAM)
16-
17-
[RRZE-HPC/TheBandwidthBenchmark - MIT Licence](https://github.com/RRZE-HPC/TheBandwidthBenchmark?tab=readme-ov-file)
18-
19-
#### Other patterns
20-
21-
[emilk/ram_bench - No Licence](https://github.com/emilk/ram_bench)
22-
23-
### Integer Arithmetic
24-
25-
[shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file)
26-
27-
### Floating-point Arithmetic
28-
29-
[shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file)
30-
31-
### Branch Prediction
32-
33-
Verilator Model
34-
35-
## Run Built-in QEMU VM
36-
37-
A Nix Flake is provided for convenience, but not necessary dependency in the final project.
38-
39-
With Nix installed, run `nix develop` to get the reproducible development environment.
40-
41-
Run `vm` to launch QEMU.
42-
43-
## How to compile & run programs in Spike
44-
45-
With `just` installed, run `just compile` then `just run` in the program source code directory.
46-
47-
Or you can run commands manually. `Justfile` is extremely easy to read and understand.
48-
49-
## Development Environment & Testing
9+
To use openperf in baseline practice, clone it into your project's [AbstractMachine Kernels](https://github.com/NJU-ProjectN/am-kernels).
5010

5111
```sh
52-
cd am-kernel # This project would be a submodule in am-kernel when it's finish
53-
git clone git@github.com:Yakkhini/OPMark.git
54-
cd OPMark
55-
# git switch [branch] # Maybe you want to contribute to another branch
56-
cp -r src/common/stdio.c $AM_HOME/klib/src/stdio.c # We improve printf functions feature, like print float numbers
57-
cd src/linpack # Run a sub program to ensure build system working
58-
make ARCH=riscv32-nemu run
12+
cd am-kernels
13+
git clone git@github.com:OSCPU/openperf.git
14+
cd openperf
15+
make ARCH= ... # NOTICE: `...` is not a part of the make command and you need to write it by yourself.
5916
```
6017

61-
## Transplanted
62-
63-
* Memory Access: STREAM
18+
The make recipe just like other benchmark programs in `am-kernel` that you can decide the Architectures and the test scale.
19+
20+
## Benchmark Programs
21+
22+
<!-- [stress-ng - GPL 2.0 Licence](https://github.com/ColinIanKing/stress-ng) -->
23+
<!---->
24+
<!-- [Anybench - MIT Licence](https://github.com/EntityFX/anybench) -->
25+
<!---->
26+
<!-- ### Memory access patterns -->
27+
<!---->
28+
<!-- #### Stream access -->
29+
<!---->
30+
<!-- [STREAM - Custom Licence, but Open Source friendly](https://github.com/jeffhammond/STREAM) -->
31+
<!---->
32+
<!-- [RRZE-HPC/TheBandwidthBenchmark - MIT Licence](https://github.com/RRZE-HPC/TheBandwidthBenchmark?tab=readme-ov-file) -->
33+
<!---->
34+
<!-- #### Other patterns -->
35+
<!---->
36+
<!-- [emilk/ram_bench - No Licence](https://github.com/emilk/ram_bench) -->
37+
<!---->
38+
<!-- ### Integer Arithmetic -->
39+
<!---->
40+
<!-- [shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file) -->
41+
<!---->
42+
<!-- ### Floating-point Arithmetic -->
43+
<!---->
44+
<!-- [shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file) -->
45+
<!---->
46+
<!-- ### Branch Prediction -->
47+
<!---->
48+
<!-- Verilator Model -->
49+
<!---->
50+
51+
* Stream Memory Access: STREAM
52+
* Irregular Memory Access: mcf
53+
* Float Memory: GEMM
54+
* Footprint: Gsim and essent which verilate various RISC-V processor cores like riscv-mini, Nutshell, Rocket Core, BOOM and XiangShan
55+
* Branch Prediction: TCC
6456
* Floating-point Arithmetic: Linpack, Whetstone
6557
* Utils: soft-fp(cyl), abstract-machine, openlibm
66-
* Can build: Spike, RISC-V OpenOCD
6758

68-
## Roadmap
59+
## Ranking (Coming Soon)
60+
61+
One Student One Chip Project is planning to build a rank for students! You can run OpenPerf with your NEMU or NPC to figure out the performance, and compare to others.
62+
63+
## Contribute Guide
64+
65+
### Roadmap
6966

70-
- [x] Run Configurable Linux on QEMU RISC-V Platform
71-
- [x] Basic Benchmark Programs
72-
- [x] Math Library
73-
- [x] GEMM
74-
- [x] Organize Build Scripts
75-
- [x] More Complex Programs
76-
- [ ] Embedded into am-kernel
77-
- [ ] Handle with Licence
78-
- [ ] Merge into single benchmark program
79-
- [ ] Decide OpenPerf Project File Struct
67+
- [x] Transplant benchmark programs
68+
- [ ] Test the sensitivity of different programs
69+
- [ ] Early Access

0 commit comments

Comments
 (0)