Skip to content

hjc4869/Microbenchmarks

 
 

Repository files navigation

Microbenchmarks

Trying to figure various CPU (or GPU) things out.

Basically my playground to microbenchmark various CPU-related things like ROB/register file sizes, lock/cache coherency latency, and cache/memory performance. This repo is loose collection of various experiments and is more of a playground than a well maintained piece of software. As such, various benchmarks may not work, or may not even compile. They're also not well documented and details of what's being tested may not be intuitive. Due to time constraints and real life priorities I won't be able to maintain this repo to an acceptable standard for public use.

Feel free to try running the stuff here, but I highly suggest writing your own code because that'll provide a better understanding of the theory behind the benchmarks. Consider checking out https://github.com/travisdowns/robsize or https://github.com/Veedrac/microarchitecturometer.

Building Clammicrobench with Generated Code

Get NASM (https://www.nasm.us/) and make sure it's in your path. Then things should build under Visual Studio 2022.

Some microbenchmarks have the source code and assembly generated by C# code, to avoid crazy stuff like self modifying code. For clammicrobench, build/run the AsmGen project. Pass "autocopy" on the command line to have it automatically place generated ASM files for Visual Studio. Then, the clammicrobench project should build.

About

Trying to figure various CPU things out

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 42.8%
  • C 35.0%
  • C# 17.9%
  • C++ 3.9%
  • Other 0.4%