{"id":20177461,"url":"https://github.com/aborg-dev/isa_benchmarks","last_synced_at":"2026-05-28T23:31:04.337Z","repository":{"id":258979870,"uuid":"874750417","full_name":"aborg-dev/isa_benchmarks","owner":"aborg-dev","description":"Benchmarking the instruction usage of different ISAs","archived":false,"fork":false,"pushed_at":"2024-10-29T13:33:54.000Z","size":1739,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T15:15:10.494Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/aborg-dev.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":"2024-10-18T11:53:46.000Z","updated_at":"2024-10-29T13:33:58.000Z","dependencies_parsed_at":"2024-11-14T02:15:59.473Z","dependency_job_id":"85839b10-9cf9-47f1-b09e-b92e9f6a548d","html_url":"https://github.com/aborg-dev/isa_benchmarks","commit_stats":null,"previous_names":["aborg-dev/isa_benchmarks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborg-dev%2Fisa_benchmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborg-dev%2Fisa_benchmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborg-dev%2Fisa_benchmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aborg-dev%2Fisa_benchmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aborg-dev","download_url":"https://codeload.github.com/aborg-dev/isa_benchmarks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241612532,"owners_count":19990828,"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":[],"created_at":"2024-11-14T02:15:57.409Z","updated_at":"2026-05-28T23:31:04.321Z","avatar_url":"https://github.com/aborg-dev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ISA Benchmarks\n\nMeasuring the instruction count of different ISAs.\n\nPlease see https://hackmd.io/@aborg-dev/SkJe-bT11x for project notes.\n\n## Usage\n\n```\nnix develop\njust run fibonacci\njust run iter_sha\njust run iter_keccak\njust run eth_block\n```\n\nFor now, the instruction measurement only works on x86 Linux due to a binary dependency on the QEMU plugin.\n\nTo generate detailed breakdown of WASM instructions use:\n```\njust run-wasm32-trace eth_block\n```\n\nFor now, WASM tracing only works on x86 Linux due to a binary dependency on patched wasm-interp.\n\n## Results\n\nHere are the measurements of the number of QEMU instructions per benchmark and target:\n- x86_64: Rustc to `x86_64-unknown-linux-gnu` with -sha,-ssse3,-sse4.1,-avx2\n- risc64: Rustc to `riscv64gc-unknown-linux-gnu` with +zknh\n- aarch64: Rustc to `aarch64-unknown-linux-gnu` with -sha3,-sve2-sha3\n- wasm32+clang: Rustc to `wasm32-wasip1`, then w2c2 to C, then Clang to x86_64\n- wasm32+zig:   Rustc to `wasm32-wasip1`, then w2c2 to C, then Zig to x86_64\n- wasm32+eval:  Rustc to `wasm32-wasip1`, then run Wasmer interpreter with cost 1 for each WASM instruction\n- wasm32+costs: As `wasm32-eval`, but variable and memory reads and writes are free\n\nThe folder `reports/wasm/` contains detailed breakdown of WASM instructions for each benchmark.\n\n### Fibonacci\n\n|Target      |Intructions|\n|------      |---------  |\n|x86_64      | 1535423   |\n|riscv64     | 5277796   |\n|aarch64     | 5212439   |\n|wasm32+clang| 1318539   |\n|wasm32+zig  | 1535433   |\n|wasm32+eval | 4004505   |\n|wasm32+costs| 1626717  |\n\n### Iterative SHA\n\n|Target      |Intructions|\n|-------     |---------  |\n|x86_64      |  2569565  |\n|riscv64     | 42894630  |\n|aarch64     | 20084604  |\n|wasm32+clang| 37244819  |\n|wasm32+zig  | 30914079  |\n|wasm32+eval | 55683326  |\n|wasm32+costs| 25103699  |\n\n### Iterative Keccak\n\n|Target      |Intructions|\n|-------     |---------  |\n|x86_64      | 62359535  |\n|riscv64     | 67244706  |\n|aarch64     | 39524653  |\n|wasm32+clang| 67784936  |\n|wasm32+zig  | 50354196  |\n|wasm32+eval |105243525  |\n|wasm32+costs| 39223788  |\n\n\n### Ethereum block\n\n|Target      |Intructions|\n|------      |---------  |\n|x86_64      | 255674553 |\n|riscv64     | 320867198 |\n|aarch64     | 191864567 |\n|wasm32+clang| 410921688 |\n|wasm32+zig  | 376863421 |\n|wasm32+eval | 607824971 |\n|wasm32+costs| 237136572 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faborg-dev%2Fisa_benchmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faborg-dev%2Fisa_benchmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faborg-dev%2Fisa_benchmarks/lists"}