Concepts
Concepts explain the mental models that remain useful across APIs and implementations. FHElium's foundation consists of two use models, shared CKKS value and operation semantics, and a Backend execution interface. Eager evaluates one requested operation at a time. Compile represents and transforms a Program before linking it for execution. Manual Program/Compilation/Pipeline execution and callable specialization are equally supported paths through that Compile machinery.
Core model
Eager and Compile differ in when CKKS state and scheduling decisions are made. They converge on registered implementations that consume Tensor operands and non-Tensor execution handles. A Compilation keeps one live material-binding dictionary alongside its Program, workspace, and pass reports; linking prepares host calls to selected native or generated implementations. Runtime, distributed execution, persistence, and Residency compose with these paths without becoming hidden properties of a ciphertext or Program.
Choose a starting point
Concept families
| Family | Questions answered |
|---|---|
| Architecture | How do Eager, Compile, shared operation semantics, Backend implementations, runtime mechanisms, and native execution fit together? |
| CKKS semantics | What mathematical and representational state does a value carry, and how does each operation change it? |
| Program representation | What can a partially specified, mixed-level Program represent before it is executable? |
| Compile pipelines | How do source capture, caller-composed passes, Backend linking, and runtime specialization remain separable? |
| Distributed execution | How do rank-local values and collective order define a multi-process computation? |
| Execution and lifecycle | How are repeated execution, buffers, CUDA Graphs, persistence, and live-value retention modeled? |
| Performance | Which arithmetic, memory, launch, and communication costs determine a useful optimization? |
| Advanced CKKS mechanisms | How are bootstrapping components and other research mechanisms composed without redefining the core execution model? |
| Terminology and mathematical model | What do specialized terms, symbols, layouts, and cross-layer identities mean? |
Suggested reading sequences
For immediate evaluator work:
Architecture
→ Value model and identity
→ Evaluator operation transitions
→ Scale and depth lifecycle
→ Key lifecycle2
3
4
5
For Program transformation and execution:
Architecture
→ Neutral IR programs
→ Open compiler stack
→ State transitions and orthogonality
→ System ownership2
3
4
5
For runtime and multi-device work:
Architecture
→ Rank-local SPMD
→ Communication semantics
→ Signatures and buffers
→ Residency lifetimes2
3
4
5