From 64167894f0fe1fa9eba8a289904113fdb7493ea3 Mon Sep 17 00:00:00 2001 From: Yaksis <59007159+Yakkhini@users.noreply.github.com> Date: Sun, 1 Dec 2024 11:27:17 +0800 Subject: [PATCH 1/4] doc: bump readme to new version --- README.md | 124 +++++++++++++++++++++++++----------------------------- 1 file changed, 57 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 5241d1a..0901bc8 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,69 @@ -# OPMark (Prototype of OpenPerf Project) +# OpenPerf Project -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. +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). -## Candidate Benchmark Programs +# How to use -[stress-ng - GPL 2.0 Licence](https://github.com/ColinIanKing/stress-ng) +This project is planning to integrate with [YSYX's workbench](https://github.com/OSCPU/ysyx-workbench) and [NJU ProjectN](https://github.com/NJU-ProjectN). -[Anybench - MIT Licence](https://github.com/EntityFX/anybench) - -### Memory access patterns - -#### Stream access - -[STREAM - Custom Licence, but Open Source friendly](https://github.com/jeffhammond/STREAM) - -[RRZE-HPC/TheBandwidthBenchmark - MIT Licence](https://github.com/RRZE-HPC/TheBandwidthBenchmark?tab=readme-ov-file) - -#### Other patterns - -[emilk/ram_bench - No Licence](https://github.com/emilk/ram_bench) - -### Integer Arithmetic - -[shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file) - -### Floating-point Arithmetic - -[shaswata56/BenchUtil - WTFPL license](https://github.com/shaswata56/BenchUtil?tab=readme-ov-file) - -### Branch Prediction - -Verilator Model - -## Run Built-in QEMU VM - -A Nix Flake is provided for convenience, but not necessary dependency in the final project. - -With Nix installed, run `nix develop` to get the reproducible development environment. - -Run `vm` to launch QEMU. - -## How to compile & run programs in Spike - -With `just` installed, run `just compile` then `just run` in the program source code directory. - -Or you can run commands manually. `Justfile` is extremely easy to read and understand. - -## Development Environment & Testing +To use openperf in baseline practice, clone it into your project's [AbstractMachine Kernels](https://github.com/NJU-ProjectN/am-kernels). ```sh -cd am-kernel # This project would be a submodule in am-kernel when it's finish -git clone git@github.com:Yakkhini/OPMark.git -cd OPMark -# git switch [branch] # Maybe you want to contribute to another branch -cp -r src/common/stdio.c $AM_HOME/klib/src/stdio.c # We improve printf functions feature, like print float numbers -cd src/linpack # Run a sub program to ensure build system working -make ARCH=riscv32-nemu run +cd am-kernels +git clone git@github.com:OSCPU/openperf.git +cd openperf +make ARCH= ... # NOTICE: `...` is not a part of the make command and you need to write it by yourself. ``` -## Transplanted - -* Memory Access: STREAM +The make recipe just like other benchmark programs in `am-kernel` that you can decide the Architectures and the test scale. + +## Benchmark Programs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +* Stream Memory Access: STREAM +* Irregular Memory Access: mcf +* Float Memory: GEMM +* Footprint: Gsim and essent which verilate various RISC-V processor cores like riscv-mini, Nutshell, Rocket Core, BOOM and XiangShan +* Branch Prediction: TCC * Floating-point Arithmetic: Linpack, Whetstone * Utils: soft-fp(cyl), abstract-machine, openlibm -* Can build: Spike, RISC-V OpenOCD -## Roadmap +## Ranking (Coming Soon) + +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. + +## Contribute Guide + +### Roadmap -- [x] Run Configurable Linux on QEMU RISC-V Platform -- [x] Basic Benchmark Programs -- [x] Math Library -- [x] GEMM -- [x] Organize Build Scripts -- [x] More Complex Programs -- [ ] Embedded into am-kernel -- [ ] Handle with Licence -- [ ] Merge into single benchmark program -- [ ] Decide OpenPerf Project File Struct +- [x] Transplant benchmark programs +- [ ] Test the sensitivity of different programs +- [ ] Early Access From 7760ef83948f2b0a131e35e13213510b2535c8d2 Mon Sep 17 00:00:00 2001 From: Yaksis <59007159+Yakkhini@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:33:00 +0800 Subject: [PATCH 2/4] doc: abolish content --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0901bc8..920a663 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # OpenPerf Project -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). +OpenPerf is an open source benchmark for evaluating test the performance of the microarchitecture in processor core, developed and be maintained by [One Student One Chip Project](https://ysyx.org). # How to use -This project is planning to integrate with [YSYX's workbench](https://github.com/OSCPU/ysyx-workbench) and [NJU ProjectN](https://github.com/NJU-ProjectN). +This project plans to integrate with [YSYX's workbench](https://github.com/OSCPU/ysyx-workbench) and [NJU ProjectN](https://github.com/NJU-ProjectN). To use openperf in baseline practice, clone it into your project's [AbstractMachine Kernels](https://github.com/NJU-ProjectN/am-kernels). @@ -15,7 +15,7 @@ cd openperf make ARCH= ... # NOTICE: `...` is not a part of the make command and you need to write it by yourself. ``` -The make recipe just like other benchmark programs in `am-kernel` that you can decide the Architectures and the test scale. +The make recipe, like other benchmark programs in `am-kernel`, allows you to choose the architectures and the test scale. ## Benchmark Programs @@ -51,19 +51,20 @@ The make recipe just like other benchmark programs in `am-kernel` that you can d * Stream Memory Access: STREAM * Irregular Memory Access: mcf * Float Memory: GEMM -* Footprint: Gsim and essent which verilate various RISC-V processor cores like riscv-mini, Nutshell, Rocket Core, BOOM and XiangShan +* Footprint: Gsim and essent which simulate various RISC-V processor cores such as riscv-mini, Nutshell, Rocket Core, BOOM and XiangShan * Branch Prediction: TCC * Floating-point Arithmetic: Linpack, Whetstone * Utils: soft-fp(cyl), abstract-machine, openlibm ## Ranking (Coming Soon) -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. +The One Student One Chip Project is planning to build a ranking system for students! You can run OpenPerf with your NEMU or NPC to find out your performance and compare with others. ## Contribute Guide ### Roadmap - [x] Transplant benchmark programs -- [ ] Test the sensitivity of different programs -- [ ] Early Access +- [ ] Test the sensitivity of various programs +- [ ] Collect performance data from various open source processor cores +- [ ] Get early access From a13d2ac3de0fdcf8a957e6affa9ab9e8b2e234ad Mon Sep 17 00:00:00 2001 From: Yaksis <59007159+Yakkhini@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:58:35 +0800 Subject: [PATCH 3/4] doc: Acknowledgement & Licence claim --- LICENCE | 8 ++++---- README.md | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/LICENCE b/LICENCE index 42d426c..c4bb59f 100644 --- a/LICENCE +++ b/LICENCE @@ -67,8 +67,8 @@ 3, 请将如下声明文本放入每个源文件的头部注释中。 -Copyright (c) 2024 Yakkhini sign@yechanv.cc -QEMULinuxDevFlake is licensed under Mulan PSL v2. +Copyright (c) 2024 One Student One Chip ysyx@bosc.ac.cn +OpenPerf is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: @@ -180,8 +180,8 @@ License in the first directory of your software package; iii. Attach the statement to the appropriate annotated syntax at the beginning of each source file. -Copyright (c) 2024 Yakkhini sign@yechanv.cc -QEMULinuxDevFlake is licensed under Mulan PSL v2. +Copyright (c) 2024 One Student One Chip ysyx@bosc.ac.cn +OpenPerf is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: diff --git a/README.md b/README.md index 920a663..5efa565 100644 --- a/README.md +++ b/README.md @@ -68,3 +68,15 @@ The One Student One Chip Project is planning to build a ranking system for stude - [ ] Test the sensitivity of various programs - [ ] Collect performance data from various open source processor cores - [ ] Get early access + +## Acknowledgement + +Thanks to the Open Source Community for developing related programs & tools included in OpenPerf. To know more copyright info you can check the Licence headers in programs' code. The moderate and additional features & code written by us is under Mulan PSL v2 Licence. + +``` +Copyright (c) 2024 One Student One Chip Project OpenPerf is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. + +You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 + +THIS SOFTWARE IS PROVIDED ON AN “AS IS” BASIS, WITHOUT warranties of any kind, either express or implied, including but not limited to non-infringement, merchantability or fit for a particular purpose. See the Mulan PSL v2 for more details. +``` From 4ff00d7c92a7cd3929574978b32f77f8f5616c32 Mon Sep 17 00:00:00 2001 From: Yaksis <59007159+Yakkhini@users.noreply.github.com> Date: Mon, 9 Dec 2024 17:16:44 +0800 Subject: [PATCH 4/4] doc: Community --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5efa565..caaa62b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # OpenPerf Project -OpenPerf is an open source benchmark for evaluating test the performance of the microarchitecture in processor core, developed and be maintained by [One Student One Chip Project](https://ysyx.org). +OpenPerf is an open source benchmark for evaluating test the performance of the microarchitecture in processor core, developed and be maintained by [One Student One Chip Project](https://ysyx.oscc.cc/). # How to use @@ -56,11 +56,19 @@ The make recipe, like other benchmark programs in `am-kernel`, allows you to cho * Floating-point Arithmetic: Linpack, Whetstone * Utils: soft-fp(cyl), abstract-machine, openlibm -## Ranking (Coming Soon) +## Community + +### One Student One Chip Project + +"One Student One Chip" is a public welfare learning program to supply talents & trained students to chip industry, which means registering and studying "One Student One Chip" is free. In the mainline, even if he or she has zero experience or skills, every student could learn deeply about how computer system works and create their own processor cores from scratch. + +Visit [the main page](https://ysyx.oscc.cc/) to know more information. + +### Ranking (Coming Soon) The One Student One Chip Project is planning to build a ranking system for students! You can run OpenPerf with your NEMU or NPC to find out your performance and compare with others. -## Contribute Guide +## Contributing ### Roadmap