How-to guides
How-to guides provide procedures for application, deployment, diagnosis, and performance tasks using FHElium's public interfaces.
CKKS
Choose a preset and chain depthPlan slots, depth, scale, range, and validation before building an evaluator.→Provision the minimum required keysetDerive keys from the operation schedule and place only what each worker needs.→Diagnose a value-state mismatchCompare stored value/key state, physical placement, and external key relations in order.→
Distributed execution
Choose a multi-GPU partitionDecide between independent data, additive-term, and RNS-limb parallelism.→Diagnose a distributed hangLocalize collective-order, rank, validation, and device mismatches.→
Experimental public interfaces
Compose a bootstrap callableSelect built-in approximation, polynomial evaluation, transform, and periodic-reduction components.→Implement a CKKS bootstrap componentImplement an approximation, polynomial DAG, linear compiler/evaluator, or periodic reduction as a direct Python object.→Use multiparty CKKSRun the application-owned state machine for collective key material and synthetic secret-dependent output operations.→Visualize and inspect a JIT ProgramRender selected SSA, type, attribute, obligation, and user evidence for pattern analysis and pass comparison.→
Execution and lifecycle
Choose and switch a local execution deviceSelect CPU or CUDA at engine construction, move values with .to(...), and recreate device-owned runtime state safely.→Manage exact artifacts by logical namePublish, replace, validate, and consume checked ArtifactStore generations with local durability guarantees.→Capture a repeated evaluatorSeparate static and dynamic state, then capture one rank-local schedule.→Choose a Residency control levelChoose functional movement, strict manager primitives, a manual plan, or deterministic automatic admission.→Stream resources with bounded CUDA memoryChoose reusable buffers or residency windows and define their lifetimes.→Diagnose a Residency failureReconcile endpoints, budgets, protections, decision evidence, stale state, and committed partial execution.→
Performance
Inspect runtime and CUDA topologyRecord the package/runtime environment and inspect devices and peer access before multi-GPU work.→Screen NTT backendsRun the focused recommendation command after a correct representative workload exists.→Analyze and choose an NTT backendExplain kernel-versus-primitive results through launch, traffic, occupancy, RNS, and CKKS composition costs.→Benchmark a workload correctlyDefine the timed work, synchronize CUDA, and retain a correctness oracle.→Choose a homogeneous batch sizeCompare unbatched, B1, and larger batches across active levels, latency, and peak memory.→Optimize a workload systematicallyProfile the evaluator, isolate the dominant cost, and validate each change.→