{"id":47532915,"url":"https://github.com/CAPS-UMU/FIDESlib","last_synced_at":"2026-04-11T17:00:38.864Z","repository":{"id":284128117,"uuid":"944467345","full_name":"CAPS-UMU/FIDESlib","owner":"CAPS-UMU","description":"A server-side CKKS GPU library fully interoperable with OpenFHE.","archived":false,"fork":false,"pushed_at":"2025-09-03T09:55:12.000Z","size":20608,"stargazers_count":39,"open_issues_count":3,"forks_count":7,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-10-08T10:31:04.199Z","etag":null,"topics":["ckks","cuda","gpu","homomorphic-encryption","openfhe"],"latest_commit_sha":null,"homepage":"","language":"Cuda","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/CAPS-UMU.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-07T11:52:35.000Z","updated_at":"2025-09-30T13:23:55.000Z","dependencies_parsed_at":"2025-04-13T08:11:16.654Z","dependency_job_id":"e60b9bb1-f377-4e30-9fd5-503d838dd7fb","html_url":"https://github.com/CAPS-UMU/FIDESlib","commit_stats":null,"previous_names":["caps-umu/fideslib"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CAPS-UMU/FIDESlib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CAPS-UMU%2FFIDESlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CAPS-UMU%2FFIDESlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CAPS-UMU%2FFIDESlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CAPS-UMU%2FFIDESlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CAPS-UMU","download_url":"https://codeload.github.com/CAPS-UMU/FIDESlib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CAPS-UMU%2FFIDESlib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31687881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ckks","cuda","gpu","homomorphic-encryption","openfhe"],"created_at":"2026-03-28T02:00:17.114Z","updated_at":"2026-04-11T17:00:38.842Z","avatar_url":"https://github.com/CAPS-UMU.png","language":"Cuda","funding_links":[],"categories":["Hardware Acceleration - Official Backends and Libraries"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/CAPS-UMU/FIDESlib/blob/main/doxygen/FidesLogo.drawio.svg?raw=true\" width=\"200\"\u003e\n\u003c/p\u003e\n\n# FIDESlib 2.0\n\nA server-side CKKS GPU library fully interoperable with OpenFHE.\n\n## Improvements in version 2.0\n\n  - OpenFHE version 1.4.2 compatibility.\n  - Multi-GPU support with NCCL.\n  - Sparse Secret Encapsulation support.\n  - Many performance optimizations.\n  - Bug fixes.\n\n## Features\n  -  Full CKKS implementation: Add, AddPt, AddScalar, Mult, MultPt, MultScalar, Square, Rotate, RotateHoisted, Bootstrap.\n  -  OpenFHE interoperability for FIXEDMANUAL, FIXEDAUTO, FLEXIBLEAUTO and FLEXIBLEAUTOEXT.\n  -  Hardware acceleration with NVIDIA CUDA.\n  -  High-performance NTT/INTT implementation.\n  -  Hybrid Key-Switching.\n\n## Citation\n\nIf you use FIDESlib on your research, please cite our ISPASS paper.\n\n```bibtex\n@inproceedings{FIDESlib,\n  author    = {Carlos Agulló-Domingo and Óscar Vera-López and Seyda Guzelhan and Lohit Daksha and Aymane El Jerari and Kaustubh Shivdikar and Rashmi Agrawal and David Kaeli and Ajay Joshi and José L. Abellán},\n  title     = {{FIDESlib: A Fully-Fledged Open-Source FHE Library for Efficient CKKS on GPUs}},\n  booktitle = {2025 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)},\n  year      = {2025},\n  note      = {Poster paper},\n  url       = {https://github.com/CAPS-UMU/FIDESlib},\n  publisher = {IEEE},\n  address = {Ghent, Belgium},\n}\n```\n\n## Compilation\n\n\u003e [!IMPORTANT]\n\u003e Requirements:\n\u003e  -  NVIDIA CUDA version 12 or greater.\n\u003e     - Must provide a NVTX implementation.\n\u003e  -  Clang Compiler toolchain version \u003e=17 or GCC version \u003e=11\n\u003e  -  OpenMP development library.\n\u003e  -  CMake version 3.25.2 or greater.\n\u003e  -  (Optional) NVIDIA Collective Communications Library to enable Multi-GPU support.\n\n### Requirements installation\n\nFor CUDA software stack, follow the official installation guides. For the remaining\ndependencies, install them using the package manager or mehtod of your choice. \n\nOn Ubuntu:\n```bash \napt install make build-essential cmake git libtbb-dev libomp-dev\n```\n\n\u003e [!NOTE]\n\u003e CMake package on Ubuntu may be older than expected; install it using snap, pip or build from source.\n\n### FIDESlib compilation\n\nIn order to be able to compile the project, one must follow these steps:\n\n  - Clone this repository.\n  - Generate the Makefile with CMake.\n  - Build the project.\n\nFIDESlib needs a patched version of OpenFHE in order to be able to access some internals needed for interoperability. This patched version can be automatically installed by defining FIDESLIB_INSTALL_OPENFHE=ON CMake variable. By default this variable is set OFF. Once the patched version is installed, one can disable this flag when reinstalling FIDESlib.\n\nThe build process produces the following artifacts: \n- fideslib.so: The FIDESlib library to be dynamically linked to any client application.\n- fideslib-test: The test suite executable if selected.\n- fideslib-bench: The benchmark suite executable if selected.\n- gpu-test: A dummy executable to search for the CUDA capable devices on the machine.\n- dummy: Another dummy executable.\n\nThe following options can be used with CMake to configure the build. The default value for each option is denoted in **boldface** under the **Values** column:\n\n| CMake Option                  | Values              | Description |\n|-------------------------------|---------------------|------------------------------------------------------\n| `FIDESLIB_ARCH`               | **\"all-major\"**,string | Select the GPU architectures of the selected backend. |\n| `CMAKE_BUILD_TYPE`            | **\"Release\"**, \"Debug\", \"MinSizeRel\", \"RelWithDebInfo\" | Select the compilation build type. |\n| `FIDESLIB_INSTALL_PREFIX`     | **\"/usr/local\"**,string | Select prefix path for the installation path of FIDESlib. Relative paths are resolved from the project root directory. |\n| `OPENFHE_INSTALL_PREFIX`      | **\"/usr/local\"**,string | Select prefix path for the installation path of OpenFHE. Relative paths are resolved from the project root directory. |\n| `FIDESLIB_INSTALL_OPENFHE`    | ON / **OFF**        | Enable the installation of the patched version of OpenFHE. Needed the first time. |\n| `FIDESLIB_COMPILE_TESTS`      | **ON** / OFF        | Build the tests for verifying the functionality of the project. |\n| `FIDESLIB_COMPILE_BENCHMARKS` | **ON** / OFF        | Build the benchmarks executable. |\n\n### FIDESlib Installation\n\nInstalling the library is as easy as running the following command:\n\n```bash\ncmake --build $PATH_TO_BUILD_DIR --target install -j\n```\n\nFIDESlib is currently ready to be consumed as a CMake library. The template project on the examples directory shows how to build and run a FIDESlib client application and contains examples of usage of most of the functionality provided by FIDESlib.\n\n\u003e [!NOTE]\n\u003e As the default installation prefix for FIDESlib is /usr/local you may need administrator priviledges. Change this using the previously mentioned configuration options.\n\n## Usage\n\nCheck examples for projects that use FIDESlib.\n\n## Docker\n\nCheck docker directory to obtain instructions on running FIDESlib inside a Docker environment.\n\n## Credits\n\nThanks to all main contributors:\n* Carlos Agulló Domingo. \n* Óscar Vera López.\n* Seyda Guzelhan.\n* Lohit Daksha.\n* Aymane El Jerari.\n\nAnd thanks to our advisor:\n* José L. Abellán.\n\n## Grants\n\nThis project was possible thanks to the following grants:\n* Grant CNS2023-144241 funded by \"MICIU/AEI/10.13039/501100011033\" and the \"European Union NextGenerationEU/PRTR\".\n* Grants NSF CNS 2312275 and 2312276, and supported in part from the NSF IUCRC Center for Hardware and Embedded Systems Security and Trust (CHEST).\n\n## Inquiries and comments\n\nIf you have any question, comment, or suggestion, please contact:\n* Carlos Agulló Domingo (carlos.a.d@um.es).\n* Óscar Vera López (oscar.veral@um.es).\n\nOr feel free to open an issue or a general discussion on this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCAPS-UMU%2FFIDESlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCAPS-UMU%2FFIDESlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCAPS-UMU%2FFIDESlib/lists"}