{"id":26788264,"url":"https://github.com/qedprotocol/plonky2-metal-demo","last_synced_at":"2026-01-08T11:04:13.758Z","repository":{"id":204862710,"uuid":"712840420","full_name":"QEDProtocol/plonky2-metal-demo","owner":"QEDProtocol","description":"Speed up plonky2/starky proving by 50% on Macs using Metal Acceleration","archived":false,"fork":false,"pushed_at":"2024-03-26T08:56:54.000Z","size":370,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-19T13:14:02.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Metal","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/QEDProtocol.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}},"created_at":"2023-11-01T10:01:38.000Z","updated_at":"2025-01-05T12:37:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4405863-ff79-4673-a188-3bf498686836","html_url":"https://github.com/QEDProtocol/plonky2-metal-demo","commit_stats":null,"previous_names":["qedprotocol/plonky2-metal-demo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QEDProtocol%2Fplonky2-metal-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QEDProtocol%2Fplonky2-metal-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QEDProtocol%2Fplonky2-metal-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QEDProtocol%2Fplonky2-metal-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QEDProtocol","download_url":"https://codeload.github.com/QEDProtocol/plonky2-metal-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246187225,"owners_count":20737463,"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":"2025-03-29T13:16:39.407Z","updated_at":"2026-01-08T11:04:08.726Z","avatar_url":"https://github.com/QEDProtocol.png","language":"Metal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plonky2 Metal Demo\n\nThis is a demonstration of using a Metal compute shader to accelerate plonky2/starky proving. QED no longer uses classic poseidon as our default hasher, but we decided release our early implementation since it still provides a **40-50% speed up** to proving time despite being extremely janky.\nWe hope that this can be the starting point for people that want to experiment with optimizing plonky2.\n\nNotably, proofs generated by this demo are drop in compatible with vanilla plonky2.\n\n\nNote: This uses a modified version of plonky2 which adds `MerkleHasher` to GenericConfig. \nIf you don't want to use the fork used by this repo, the changes are relatively simple and can be found [here](https://github.com/QEDProtocol/plonky2-merkle-config/commit/4dfb8791505210408c6ed4c1e04d173ecc0e7639).\n\n\nRunning:\n```bash\nmake main\n```\n\nOutput Example:\n```\nnum_gates: 16384, degree: 32768\nproving: metal took 1362ms\nnum_gates: 16384, degree: 32768\nproving: cpu took 2147ms\nmetal is 57.635829662261386% faster than cpu+rayon\n```\n\n(c) 2023 Zero Knowledge Labs Limited - MIT - ∀\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqedprotocol%2Fplonky2-metal-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqedprotocol%2Fplonky2-metal-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqedprotocol%2Fplonky2-metal-demo/lists"}