{"id":19984475,"url":"https://github.com/intellabs/hec-p-isa-tools","last_synced_at":"2025-05-04T06:33:02.231Z","repository":{"id":250367694,"uuid":"771129423","full_name":"IntelLabs/hec-p-isa-tools","owner":"IntelLabs","description":"Intel’s HERACLES accelerator introduces a new set of fundamental instructions, the Polynomial Instructions Set Architecture (P-ISA) that operates directly on polynomials requiring a completely new programming environment. This open-source project aims at developing the building blocks for a compiler toolchain for HERACLES.","archived":false,"fork":false,"pushed_at":"2024-11-05T23:47:59.000Z","size":2068,"stargazers_count":28,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-06T00:31:26.190Z","etag":null,"topics":["accelerator","code-generation","compiler-toolset","polynomial-data-type","polynomial-rings"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IntelLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-12T18:30:56.000Z","updated_at":"2024-11-01T20:22:49.000Z","dependencies_parsed_at":"2024-08-27T18:14:24.362Z","dependency_job_id":"85138e17-c684-44a3-aed2-6ee6d8d56598","html_url":"https://github.com/IntelLabs/hec-p-isa-tools","commit_stats":null,"previous_names":["intellabs/hec-p-isa-tools"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fhec-p-isa-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fhec-p-isa-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fhec-p-isa-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fhec-p-isa-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntelLabs","download_url":"https://codeload.github.com/IntelLabs/hec-p-isa-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224386175,"owners_count":17302611,"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":["accelerator","code-generation","compiler-toolset","polynomial-data-type","polynomial-rings"],"created_at":"2024-11-13T04:19:07.964Z","updated_at":"2024-11-13T04:19:08.519Z","avatar_url":"https://github.com/IntelLabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HERACLES Polynomial Instruction Set Architecture Tools\n[![CodeQL](https://github.com/ossf/scorecard-action/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/IntelLabs/hec-p-isa-tools/actions/workflows/codeql-analysis.yml)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/IntelLabs/hec-p-isa-tools/badge)](https://scorecard.dev/viewer/?uri=github.com/IntelLabs/hec-p-isa-tools)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9276/badge)](https://www.bestpractices.dev/projects/9276)\n\n## Overview\nIntel’s [HERACLES accelerator technology](https://dl.acm.org/doi/10.1145/3560810.3565290)\naims at improving the computational performance of\n[Fully Homomorphic Encryption (FHE)](https://en.wikipedia.org/wiki/Homomorphic_encryption).\nFHE allows computation to be performed on\nencrypted data without having to decrypt the data which brings in\nprofound and beneficial implications for data privacy and data confidentiality.\nHowever, these benefits come with a significant performance cost which has so far\nconfined FHE based applications to specific use case archetypes primarily in use\nby the regulated industries and government.\n\nMost of the FHE schemes of today perform the computation using very large\npolynomial rings, thus requiring considerable compute power and data\nmovement between main memory and the CPU's registers. HERACLES improves\nthe performance of FHE by accelerating the computation over the large\npolynomials and optimizing the data movement involved in the computation.\n\nHERACLES introduces a new Polynomial Data type which does not exist in\ntoday's traditional CPUs. For this new polynomial data type, it supports\na new set of novel and fundamental instructions, the Polynomial Instructions\nSet Architecture (P-ISA), that operates directly on large polynomials in\na SIMD fashion. We at Intel Labs are developing a new compiler pipeline,\nthe Encrypted Computing SDK, to make it easier for developers to develop\nnew implementations of FHE schemes and also integrate with existing libraries.\n\n\u003cp\u003e\n\u003cimg src=\"docs/images/HERACLES_SDK_Integration_3rd_Party.png\" align=\"left\" width=\"600\" /\u003e\n\nThe Encrypted Computing SDK (or HERACLES SDK) will realize a multistage\ntransformation (compiler) pipeline, inspired by the\n[LLVM Compiler Infrastructure](https://llvm.org/). We have adopted a\nmodular approach based on language independent intermediate\nrepresentations (IR) that promotes the separation of concerns at each\nstage of the pipeline and allowing for dedicated transformations and\noptimizations.\n\nThis approach also allows for integration with 3rd Party compilers and\ntranspilers.\n\u003cbr clear=\"left\"\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003c/p\u003e\n\n## HERACLES SDK Roadmap: Phased Approach\n\u003cp\u003e\n\u003cimg src=\"docs/images/HERACLES_SDK_Phased_Approach.png\" width=80% height=80% /\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003c/p\u003e\n\n### HERACLES SDK Phase 1: Components and Tasks\n\u003cp\u003e\n\u003cimg src=\"docs/images/HERACLES_SDK_Phase_1.png\" width=80% height=80% /\u003e\n\u003cbr\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003c/p\u003e\n\nWe are currently at Phase 1, more specifically developing the P-ISA Tools\ncomponent which comprises three main tools, a) Kernel Generator, b) Program\nMapper, and c) Functional Modeler Simulator.\nEach tool in this repo is self contained and has its own local README.\n\nCurrent development is focussed on the Kernel Generator.\nFollow the instructions [here](./kerngen) to start experimenting with it.\n\n# Contributing\nIntel P-ISA Tools project welcomes external contributions through pull\nrequests to the `main` branch.\n\nPlease refer to the [Contributing](CONTRIBUTING.md) and\n[Code of Conduct](CODE_OF_CONDUCT) documents for additional information on\nthe contribution acceptance guidelines.\n\nWe use signed commits, please remember to sign your commits before making a\npull request.  See instructions\n[here](https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification/signing-commits)\nfor how to sign commits.\n\nWe also use `pre-commit`, so before contributing, please ensure that you run\n[pre-commit](https://pre-commit.com) and make sure all checks pass with\n```bash\npre-commit install\npre-commit run --all-files\n```\n\nPlease run the tests provided in each of the components and make sure\nthe tests pass.\n\n# Feedback\nWe encourage feedback and suggestions via\n[GitHub Issues](https://github.com/IntelLabs/hec-p-isa-tools/issues) as well\nas via\n[GitHub Discussions](https://github.com/IntelLabs/hec-p-isa-tools/discussions).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintellabs%2Fhec-p-isa-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintellabs%2Fhec-p-isa-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintellabs%2Fhec-p-isa-tools/lists"}