{"id":26683919,"url":"https://github.com/caps-umu/fideslib","last_synced_at":"2025-10-08T10:20:58.073Z","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-03-24T09:26:04.000Z","size":282,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-24T10:33:20.852Z","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":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-07T11:52:35.000Z","updated_at":"2025-03-24T09:33:59.000Z","dependencies_parsed_at":"2025-03-24T10:43:46.674Z","dependency_job_id":null,"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,"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","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248583269,"owners_count":21128553,"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":["ckks","cuda","gpu","homomorphic-encryption","openfhe"],"created_at":"2025-03-26T09:18:18.949Z","updated_at":"2025-10-08T10:20:58.068Z","avatar_url":"https://github.com/CAPS-UMU.png","language":"Cuda","funding_links":[],"categories":[],"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\n\nA server-side CKKS GPU library fully interoperable with OpenFHE.\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\ttitle        = {{FIDESlib: A Fully-Fledged Open-Source FHE Library for Efficient CKKS on GPUs}},\n\tauthor       = {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\tyear         = 2025,\n\tbooktitle    = {2025 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)},\n\tpublisher    = {IEEE},\n\taddress      = {Ghent, Belgium},\n\tdoi          = {https://doi.org/10.1109/ISPASS64960.2025.00045},\n\turl          = {https://github.com/CAPS-UMU/FIDESlib},\n\tnote         = {Poster paper}\n}\n```\n\n## Compilation\n\n\u003e [!IMPORTANT]\n\u003e Requirements:\n\u003e  -  Nvidia CUDA  version 12 or greater.\n\u003e  -  GNU GCC Compiler version 10 or greater.\n\u003e  -  CMake version 3.25.2 or greater.\n\u003e  -  (Optional) Intel Thread Building Blocks for faster context creation.\n\n\u003e [!NOTE]\n\u003e Some dependencies will be automatically downloaded if needed:\n\u003e - GoogleTest: used by our test suite.\n\u003e - GoogleBenchmark: used by our benchmark suite.\n\nIn order to be able to compile the project, one must follow these steps:\n\n  - Clone this repository.\n  - Generate the makefiles with CMake.\n  ```bash\n  cmake -B $PATH_TO_BUILD_DIR -S $PATH_TO_THIS_REPO --fresh \n  -DCMAKE_BUILD_TYPE=\"Release\" -DFIDESLIB_INSTALL_OPENFHE=ON\n  ```\n  - Build the project.\n  ```bash\n  cmake --build $PATH_TO_BUILD_DIR -j\n  ```\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.\n\n\u003e [!WARNING]\n\u003e Currently custom installation paths for patched OpenFHE are not supported. OpenFHE will be installed on the default path specified in their build files and you will probably need to run the build files generation command with administrator privileges.\n\nThe build process produces the following artifacts: \n- fideslib.a: The FIDESlib library to be statically linked to any client application.\n- fideslib-test: The test suite executable.\n- fideslib-bench: The benchmark suite executable.\n- gpu-test: A dummy executable to search for the CUDA capable devices on the machine.\n- dummy: Another dummy executable.\n\n\u003e [!WARNING]\n\u003e Compiling FIDESlib sometimes produces TLS-related errors. This issue can be addressed by re-compiling OpenFHE in debug mode. In this case, you should:\n\u003e - Manually clone [OpenFHE](https://github.com/openfheorg/openfhe-development) and, with git, apply openfhe-hook.patch and openfhe-base.patch. \n\u003e - Generate the build files with CMake using Debug as build type.\n\u003e - Compile and install OpenFHE on the machine. \n\n## 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. Currently client applications consuming FIDESlib should use the CUDA compiler every time they include a FIDESlib header.\n\n\u003e [!NOTE]\n\u003e As the default installation prefix is /usr/local. All installed headers should be located under /usr/local/include/FIDESlib, the CMake package files under /usr/local/share/FIDESlib and the compiled library under /usr/local/lib.\n\n\u003e [!WARNING]\n\u003e FIDESlib currently does not support custom installation paths. One should run the installation command with administrator priviledges.\n\n## Usage\n\nCheck examples for projects that use FIDESlib.\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\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"}