Tutorials
Start with one correct process-local evaluator, then choose a learning track for the capability you actually need. The numbered examples are a catalog of maintained workflows; they do not define one mandatory sequential course.
First program
- Read Support, maturity, and security scope.
- Install FHElium against the selected CPU-only or CUDA-enabled PyTorch source-build environment.
- Run the first evaluator in Tutorials.
- Continue with 01 — Basic CKKS workflow.
FHElium currently supports Linux x86-64 and macOS Apple Silicon, Python 3.12 or 3.13, PyTorch >=2.10,<2.14, and a C++17 host toolchain. CUDA builds are Linux x86-64 only and additionally require a CUDA-enabled PyTorch distribution, a matching CUDA source toolkit, and a supported NVIDIA GPU at runtime. macOS uses the native CPU backend rather than PyTorch MPS. The installation guide defines the verified endpoints.
Choose a learning track
| Goal | Suggested sequence |
|---|---|
| Build a correct evaluator | 01 Basic workflow → 02 Key lifecycle → 04 Chain depth → 05 Actual scales → 06 Explicit reuse |
| Understand value layout and storage | 03 Memory and persistence → 14 Homogeneous batching → 15 Compressed plaintexts |
| Reduce rotation cost | 07 Rotation hoisting → Benchmark a workload |
| Use multiple GPUs | 08 Independent ciphertexts → 09 Additive rotation terms → 10 RNS-limb pipeline |
| Repeat work within bounded memory | 11 CUDA Graph → 12 Reusable buffers → 13 Residency |
| Evaluate a feature | Read the bootstrapping semantics and range requirements before 16 Bootstrapping, the multiparty supported security scope before 17 Multiparty CKKS, or the JIT program model before 18 JIT programs |
Use Tutorials to map every numbered page to its source file and main question.
Performance policy comes after correctness
The default NTT policy is sufficient to establish a first correct evaluator. After a representative workload exists on the target GPU, use Screen NTT backends, then follow the deeper analysis guide only when rankings need an explanation.
When you need another document type
- Concepts define state, ownership, communication, and architecture.
- How-to guides provide focused planning and diagnostic procedures.
- API reference gives exact signatures and docstrings for supported interfaces and non-private implementation modules.
- Developer Guide covers the native operator stack and internal cross-layer invariants and interfaces.