{"id":19947004,"url":"https://github.com/entityfx/anybench","last_synced_at":"2025-04-19T16:02:02.537Z","repository":{"id":43653756,"uuid":"45982306","full_name":"EntityFX/anybench","owner":"EntityFX","description":"CPU Benchmarks Set","archived":false,"fork":false,"pushed_at":"2024-07-25T18:49:22.000Z","size":46942,"stargazers_count":74,"open_issues_count":1,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T09:51:12.311Z","etag":null,"topics":["architecture","benchmarking","benchmarks","coremark","dhrystone","linpack","memspeed","whetstone"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EntityFX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-11T13:07:52.000Z","updated_at":"2025-03-25T08:36:31.000Z","dependencies_parsed_at":"2023-01-27T19:16:15.928Z","dependency_job_id":"c5c1192a-3c33-40f7-9996-12659e103fdc","html_url":"https://github.com/EntityFX/anybench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EntityFX%2Fanybench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EntityFX%2Fanybench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EntityFX%2Fanybench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EntityFX%2Fanybench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EntityFX","download_url":"https://codeload.github.com/EntityFX/anybench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249732707,"owners_count":21317411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["architecture","benchmarking","benchmarks","coremark","dhrystone","linpack","memspeed","whetstone"],"created_at":"2024-11-13T00:33:51.625Z","updated_at":"2025-04-19T16:02:02.497Z","avatar_url":"https://github.com/EntityFX.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anybench benchmarks set\n\n## Generic benchmarks\n\n### Content and description\n\n* Dhrystone v 2.1\n* Whetstone\n* Whetstone MP - multi-thread version of classic Whetstone benchmark\n* Memspeed - simple single-threaded memory speed test\n* Linpack - classical computational benchmark, this is classic C version on small arrays (100x100).\n* [Lloops](https://www.netlib.org/benchmark/livermorec) - Livermore loops, classic benchmark for supercomputers for late 80-s.\n* [Busspeed](http://www.roylongbottom.org.uk/#anchorBusSpd2K)\n* [MP MFlops](http://www.roylongbottom.org.uk/#anchorMPGFLOPS) - syntethic benchmark that tries to achieve peak FP performance on CPU. Significantly benefits from SIMD and it's highly recommended that you **modify march/mtune flag for your CPU and recompile it**\n* [Coremark](https://github.com/eembc/coremark) - industry standard benchmark that stresses CPU Pipeline\n* [Scimark 2](https://math.nist.gov/scimark2/index.html) - C version of classic Java scientific/computational benchmark\n* [SuperPI](https://en.wikipedia.org/wiki/Super_PI) - classic software that computes Pi up to N digits.\n* [STREAM](https://www.cs.virginia.edu/stream/) - multicore memory bandwidth benchmark\n* [GSynth](https://github.com/EntityFX/anybench/pull/17) - contributed benchmark that evaluates CPU on audio synthesis tasks, code was taken from real-world software.\n\n### Running\n\nThere are some already precompiled binaries in `bin/` directory.\nSo you can just\n\n```sh\ncd src/\n./run.sh\n```\n\nHowever, it's highly recommended compiling your own binaries with platform-specific flags set and run them.\n\n### Build\n\nThis repo uses git submodules, if cloning:\n\n```shell\ngit clone --recurse-submodules https://github.com/EntityFX/anybench.git\n```\n\nAlternatively:\n```shell\ngit clone https://github.com/EntityFX/anybench.git\ncd anybench\ngit submodule update --init --recursive\n```\n\nIf you want to modify compile flags, please edit corresponding `make-\u003carch\u003e.sh` script and add them to corresponding parameter:\n * `targetToFlags` - script will iterate over each flag specified there and compile a single version.\n * `targetToFPU` - for the same key specified in `targetToFlags` all the flags will be used\n\nThere are separate scripts that set some optimization specific flags for particular CPU architecture. Some examples are:\n\n#### For **arm** architecture (non-MacOS)\n\n```shell\ncd src/\n./make-arm.sh\n```\n\n#### For **arm** architecture (MacOS)\n\n```shell\ncd src/\n./make-mac-arm.sh\n```\n\n#### For **amd64** architecture (using default CC)\n**NOTE:** By default it will try to compile binary optimized for AMD Zen2, so if your CPU is different please modify script. That might still be ok for any other modern AMD CPU (it must support AVX2) and Intel CPUs that doesn't support AVX-512.\n```shell\ncd src/\n./make-amd64.sh\n```\n\n#### For **amd64** architecture (forcing clang)\n**NOTE:** By default it will try to compile binary optimized for AMD Zen2, so if your CPU is different please modify script. That might still be ok for any other modern AMD CPU (it must support AVX2) and Intel CPUs that doesn't support AVX-512.\n```shell\ncd src/\n./make-amd64_clang.sh\n```\n\n\nFor **e2k** architecture\n\n```shell\ncd src/\n./make-e2k.sh\n```\n\n### Results\n\nYou can see results in `results/\u003cyour-arch\u003e` direcotry.\n\nPlease rename them to some identifiable thing before submitting. Recommended format: `\u003ccpu-vendor\u003e-\u003ccpu-architecture\u003e-\u003ccpu-model\u003e[-\u003coptional-identifiers\u003e]`\n\nSome examples:\n\n* `apple-arm-m1-max-perf-auto` - contains results from Apple M1 Max CPU on OSX with performance mode set to `auto`.\n* `intel-x86-core_i7_2600-clang` - contains results from Intel Core i7 2600, compiled with clang.\n* `nvidia-arm-tegra_xavier_t194-jetson_agx` - contains results obtained on NVidia ARM CPU Tegra T194, board Xavier AGX.\n\n\n## Advanced benchmarks\n\nThose benchmarks requires certain software or libraries installed and might be hard to run on devices like smartphones\n\n* [HashTableBenchmark](https://github.com/unum-cloud/HashTableBenchmark) - benchmark that tries to simulate typical in-memory database patterns. Basically it benchmarks performance of several hash table implementations, like `std::unordered_map`, `tsl::sparse_map` and others.\n\nCurrently there is no pre-build binaries for advanced benchmarks, as well as currently there is no single script to build them.\n\n### Building\n\n#### HashTableBenchmark\nThis benchmark requires CMake 3.x installed and it also require internet connection to fetch it's dependencies (it uses particular commits of gtest and gbenchmark libraries).\n\n```shell\ncd src/benchmarks/advanced/HashTableBenchmark\nmkdir -p build \u0026\u0026 cmake -DCMAKE_BUILD_TYPE=Release -B ./build \u0026\u0026 make -j4 -C ./build\n```\n\n### Running\n\n#### HashTableBenchmark\n\nYou must be in repository root\n\n```shell\nmkdir -p results/$(uname -m)\nsrc/benchmarks/advanced/HashTableBenchmark/build/build/bin/mixed_ops 2\u003e\u00261 | tee results/$(uname -m)/HashTableBenchmark-mixed_ops.log\nsrc/benchmarks/advanced/HashTableBenchmark/build/build/bin/ram_speed 2\u003e\u00261 | tee results/$(uname -m)/HashTableBenchmark-ram_speed.log\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentityfx%2Fanybench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentityfx%2Fanybench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentityfx%2Fanybench/lists"}