Skip to content

Benchmark v1 results

CUDA GPU benchmark run

FHElium Benchmark v1

FHElium 0.10.0 ·

System under test

Execution hardware and host

Host CPUAMD Ryzen Threadripper PRO 7975WX 32-Cores
Logical CPUs
64
Architecture
x86_64
System RAM
503 GiB
CUDA execution GPU 0NVIDIA RTX A6000
Memory
47.4 GiB
Compute
8.6
SMs
84
Memory bus
384-bit
CUDA execution GPU 1NVIDIA RTX A6000
Memory
47.4 GiB
Compute
8.6
SMs
84
Memory bus
384-bit
FHElium
0.10.0 · 0e0552608ec1 · local changes
Torch
2.13.0+cu130
Torch CUDA build
13.0
NCCL
[2,29,7]
Python
3.13.14
Operating system
Linux-6.8.0-136-generic-x86_64-with-glibc2.35

Benchmark 1 · Single operations

Depth-aware CKKS single operations

CUDA GPU executionckks-depth-aware-single-operations · core
measured

CKKS parameters

Ring geometry

N = 2^14

16,384 coefficients · 8,192 complex slots · torch.int64 residues

Scale and state

40-bit default scale

Modulus budget

Q 8 / 340 bits · P 1

400 complete Q·P bits · 430 security-budget bits · 128-bit security target

Execution policy

Radix-2 indexed reference

security check enforced

Parameter-selection notes

RationaleThe maintained slots8192-scale40-levels7-int64 preset fixes logN=14, 8,192 complex slots, seven public levels, one key-switch P prime, and an enforced 128-bit security-table budget. The indexed radix-2 backend is the one fixed implementation shared by CPU and CUDA.

Exact CKKS parameters and states
{
  "ckks_plan": {
    "buffer_bit_length": 62,
    "ciphertext_modulus_basis": "Q",
    "complete_qp_product_bits": 400,
    "complex_slot_count": 8192,
    "default_scale": 1099511627776,
    "evaluation_key_modulus_basis": "QP",
    "final_public_level": 6,
    "level_states": [
      {
        "active_q_count": 8,
        "active_q_prime_ids": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 340,
        "active_scale_prime_count": 7,
        "available_public_transitions": 6,
        "entry_chain_depth": 0,
        "entry_level": 0
      },
      {
        "active_q_count": 7,
        "active_q_prime_ids": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 301,
        "active_scale_prime_count": 6,
        "available_public_transitions": 5,
        "entry_chain_depth": 1,
        "entry_level": 1
      },
      {
        "active_q_count": 6,
        "active_q_prime_ids": [
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 260,
        "active_scale_prime_count": 5,
        "available_public_transitions": 4,
        "entry_chain_depth": 2,
        "entry_level": 2
      },
      {
        "active_q_count": 5,
        "active_q_prime_ids": [
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 220,
        "active_scale_prime_count": 4,
        "available_public_transitions": 3,
        "entry_chain_depth": 3,
        "entry_level": 3
      },
      {
        "active_q_count": 4,
        "active_q_prime_ids": [
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 180,
        "active_scale_prime_count": 3,
        "available_public_transitions": 2,
        "entry_chain_depth": 4,
        "entry_level": 4
      },
      {
        "active_q_count": 3,
        "active_q_prime_ids": [
          5,
          6,
          7
        ],
        "active_q_product_bits": 140,
        "active_scale_prime_count": 2,
        "available_public_transitions": 1,
        "entry_chain_depth": 5,
        "entry_level": 5
      },
      {
        "active_q_count": 2,
        "active_q_prime_ids": [
          6,
          7
        ],
        "active_q_product_bits": 100,
        "active_scale_prime_count": 1,
        "available_public_transitions": 0,
        "entry_chain_depth": 6,
        "entry_level": 6
      }
    ],
    "logN": 14,
    "maximum_security_budget_bits": 430,
    "ntt_backend": "radix2_indexed",
    "num_p_primes": 1,
    "num_q_primes": 8,
    "num_scale_primes": 7,
    "p_product_bits": 60,
    "p_rows": [
      {
        "modulus_bits": 60,
        "modulus_decimal": "1152921504606683137",
        "prime_id": 8,
        "role": "key_switch_p_prime"
      }
    ],
    "preset": "slots8192-scale40-levels7-int64",
    "public_level_count": 7,
    "q0_product_bits": 340,
    "q_rows": [
      {
        "modulus_bits": 40,
        "modulus_decimal": "1099510054913",
        "prime_id": 0,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 41,
        "modulus_decimal": "1099515691009",
        "prime_id": 1,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 40,
        "modulus_decimal": "1099508121601",
        "prime_id": 2,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 41,
        "modulus_decimal": "1099515789313",
        "prime_id": 3,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 40,
        "modulus_decimal": "1099507695617",
        "prime_id": 4,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 41,
        "modulus_decimal": "1099516280833",
        "prime_id": 5,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 40,
        "modulus_decimal": "1099506515969",
        "prime_id": 6,
        "role": "scale_q_prime"
      },
      {
        "modulus_bits": 60,
        "modulus_decimal": "1152921504606748673",
        "prime_id": 7,
        "role": "structural_base_q_prime"
      }
    ],
    "ring_dimension": 16384,
    "scale_bits": 40,
    "security_bits": 128,
    "security_budget_enforced": true,
    "sigma": 3.19,
    "torch_dtype": "torch.int64"
  },
  "entry_state": {
    "axis": "public_source_level",
    "construction": "direct_at_entry_level",
    "entry_chain_depth_definition": "The number of leading scale-Q rows absent relative to Q_0; for a public FHElium value it equals entry_level and does not assert that the setup executed that many multiplications.",
    "levels": [
      {
        "active_q_count": 8,
        "active_q_prime_ids": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 340,
        "active_scale_prime_count": 7,
        "available_public_transitions": 6,
        "entry_chain_depth": 0,
        "entry_level": 0
      },
      {
        "active_q_count": 7,
        "active_q_prime_ids": [
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 301,
        "active_scale_prime_count": 6,
        "available_public_transitions": 5,
        "entry_chain_depth": 1,
        "entry_level": 1
      },
      {
        "active_q_count": 6,
        "active_q_prime_ids": [
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 260,
        "active_scale_prime_count": 5,
        "available_public_transitions": 4,
        "entry_chain_depth": 2,
        "entry_level": 2
      },
      {
        "active_q_count": 5,
        "active_q_prime_ids": [
          3,
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 220,
        "active_scale_prime_count": 4,
        "available_public_transitions": 3,
        "entry_chain_depth": 3,
        "entry_level": 3
      },
      {
        "active_q_count": 4,
        "active_q_prime_ids": [
          4,
          5,
          6,
          7
        ],
        "active_q_product_bits": 180,
        "active_scale_prime_count": 3,
        "available_public_transitions": 2,
        "entry_chain_depth": 4,
        "entry_level": 4
      },
      {
        "active_q_count": 3,
        "active_q_prime_ids": [
          5,
          6,
          7
        ],
        "active_q_product_bits": 140,
        "active_scale_prime_count": 2,
        "available_public_transitions": 1,
        "entry_chain_depth": 5,
        "entry_level": 5
      },
      {
        "active_q_count": 2,
        "active_q_prime_ids": [
          6,
          7
        ],
        "active_q_product_bits": 100,
        "active_scale_prime_count": 1,
        "available_public_transitions": 0,
        "entry_chain_depth": 6,
        "entry_level": 6
      }
    ],
    "multiplicative_history_definition": "Workload multiplicative depth before entry and depth added by the timed call are reported separately from public level."
  },
  "parameter_selection": {
    "complete_qp_product_bits": 400,
    "maximum_security_budget_bits": 430,
    "rationale": "The maintained slots8192-scale40-levels7-int64 preset fixes logN=14, 8,192 complex slots, seven public levels, one key-switch P prime, and an enforced 128-bit security-table budget. The indexed radix-2 backend is the one fixed implementation shared by CPU and CUDA.",
    "security_budget_status": "within_exact_builtin_budget"
  }
}

All public entry levels

Depth-aware operation matrix

Selected operation metric for the chosen CKKS entry-level range
OperationLevel 0340 bits active QLevel 1301 bits active QLevel 2260 bits active QLevel 3220 bits active QLevel 4180 bits active QLevel 5140 bits active QLevel 6100 bits active Q
Encrypt0.373371 ms0.37293 ms0.369826 ms0.383677 ms0.337497 ms0.359951 ms0.35933 ms
Decrypt0.515875 ms0.478179 ms0.488334 ms0.471138 ms0.464177 ms0.507082 ms0.464097 ms
Coefficient → NTT0.141142 ms0.136265 ms0.132269 ms0.127682 ms0.11961 ms0.119069 ms0.109234 ms
NTT → coefficient0.148403 ms0.142413 ms0.137126 ms0.130716 ms0.127722 ms0.121272 ms0.115944 ms
Add0.042925 ms0.045158 ms0.041702 ms0.041041 ms0.040961 ms0.038719 ms0.042614 ms
Add plaintext0.080521 ms0.074873 ms0.073841 ms0.08013 ms0.077917 ms0.081843 ms0.081683 ms
PT × CT multiply0.080821 ms0.078728 ms0.079279 ms0.087752 ms0.078668 ms0.076544 ms0.075773 ms
CT × CT multiply0.096214 ms0.108794 ms0.104617 ms0.098217 ms0.0995 ms0.097116 ms0.100071 ms
Relinearize0.887994 ms0.786812 ms0.696967 ms0.606401 ms0.520532 ms0.454103 ms0.400692 ms
Direct rotation0.775675 ms0.680191 ms0.622244 ms0.524828 ms0.444087 ms0.396906 ms0.342715 ms
Rescale0.088422 ms0.087441 ms0.088153 ms0.094712 ms0.087371 ms0.090276 ms
Modulus switch0.045789 ms0.044247 ms0.044056 ms0.044216 ms0.043625 ms0.045268 ms
Validation evidence164 checks passed
Correctness evidence
CheckObservedCriterionStatus
Encrypt level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 0 semantic error2.593e-6 absolute2.593e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 0 semantic error5.205e-6 absolute5.205e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 0 semantic error2.661e-8 absolute2.661e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 0 semantic error5.014e-8 absolute5.014e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 0 semantic error5.014e-8 absolute5.014e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 0 semantic error2.607e-6 absolute2.607e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 0 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 0 semantic error2.609e-6 absolute2.609e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 1 semantic error2.589e-6 absolute2.589e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 1 semantic error5.101e-6 absolute5.101e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 1 semantic error2.618e-8 absolute2.618e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 1 semantic error4.955e-8 absolute4.955e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 1 semantic error4.955e-8 absolute4.955e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 1 semantic error2.561e-6 absolute2.561e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 1 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 1 semantic error2.567e-6 absolute2.567e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 2 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 2 semantic error5.179e-6 absolute5.179e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 2 semantic error2.653e-8 absolute2.653e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 2 semantic error5.035e-8 absolute5.035e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 2 semantic error5.035e-8 absolute5.035e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 2 semantic error2.614e-6 absolute2.614e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 2 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 2 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 3 semantic error2.594e-6 absolute2.594e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 3 semantic error5.128e-6 absolute5.128e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 3 semantic error2.652e-8 absolute2.652e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 3 semantic error4.953e-8 absolute4.953e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 3 semantic error4.953e-8 absolute4.953e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 3 semantic error2.594e-6 absolute2.594e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 3 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 3 semantic error2.601e-6 absolute2.601e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 4 semantic error2.607e-6 absolute2.607e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 4 semantic error5.117e-6 absolute5.117e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 4 semantic error2.575e-8 absolute2.575e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 4 semantic error4.955e-8 absolute4.955e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 4 semantic error4.955e-8 absolute4.955e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 4 semantic error2.514e-6 absolute2.514e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 4 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 4 semantic error2.525e-6 absolute2.525e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 5 semantic error2.570e-6 absolute2.570e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 5 semantic error5.164e-6 absolute5.164e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 5 semantic error2.630e-8 absolute2.630e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 5 semantic error5.022e-8 absolute5.022e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 5 semantic error5.022e-8 absolute5.022e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 5 semantic error2.577e-6 absolute2.577e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Rescale to next level level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rescale to next level level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Mod switch to next level level 5 exit state0 fields0 fields · limit = 0 fields✓ Passed
Mod switch to next level level 5 semantic error2.579e-6 absolute2.579e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Encrypt level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Encrypt level 6 semantic error2.543e-6 absolute2.543e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Decrypt level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Decrypt level 6 semantic error2.614e-6 absolute2.614e-6 absolute · limit ≤ 1.000e-5 absolute✓ Passed
Coefficient domain to NTT domain level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Coefficient domain to NTT domain level 6 semantic error2.614e-6 absolute2.614e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
NTT domain to coefficient domain level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
NTT domain to coefficient domain level 6 semantic error2.614e-6 absolute2.614e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add level 6 semantic error5.244e-6 absolute5.244e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Add plaintext level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Add plaintext level 6 semantic error2.614e-6 absolute2.614e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Multiply plaintext level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply plaintext level 6 semantic error2.666e-8 absolute2.666e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Multiply level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Multiply level 6 semantic error5.089e-8 absolute5.089e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Relinearize level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Relinearize level 6 semantic error5.089e-8 absolute5.089e-8 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Rotate with key level 6 exit state0 fields0 fields · limit = 0 fields✓ Passed
Rotate with key level 6 semantic error2.611e-6 absolute2.611e-6 absolute · limit ≤ 2.000e-5 absolute✓ Passed
Timed work and provenance
depth-aware-single-public-ckks-callOne functional public CkksEngine call at one exact entry level, with synchronized device completion.

Synchronize the selected engine device before each sample and after the public call; CPU calls complete synchronously. Pre-sample synchronization is outside elapsed time and post-call completion is inside it.

Includes
  • one named functional public CkksEngine call
  • output allocation and every representation conversion specified by that call
Excludes
  • engine and native-table construction
  • key generation or lookup
  • cleartext input construction
  • encoding and operation-ready plaintext preparation
  • setup encryption and domain conversion
  • pending-product construction for relinearization or rescale
  • correctness decryption, decoding, and state validation
  • cleanup

Benchmark 2 · NTT operations

Indexed radix-2 NTT operations

CUDA GPU executionindexed-ntt-operations · core
measured

CKKS parameters

Ring geometry

N = 2^14

8,192 complex slots

Scale and state

Scale unspecified

Modulus budget

Q chain

Execution policy

Radix-2 indexed reference

Q, QP entry basis

Parameter-selection notes

Policyone identical CPU/CUDA indexed-radix2 plan

Exact CKKS parameters and states
{
  "ckks_plan": {
    "logN": 14,
    "ntt_backend": "radix2_indexed",
    "preset": "slots8192-scale40-levels7-int64",
    "slot_count": 8192
  },
  "entry_state": {
    "entry_levels": [
      0,
      1,
      2,
      3,
      4,
      5,
      6
    ],
    "modulus_bases": [
      "Q",
      "QP"
    ],
    "operations": [
      "forward_ntt",
      "inverse_ntt",
      "roundtrip"
    ]
  },
  "parameter_selection": {
    "hardware_adaptive": false,
    "policy": "one identical CPU/CUDA indexed-radix2 plan"
  }
}

Fixed cross-backend primitive

Indexed radix-2 NTT operations

Selected-cell latency0.058288 msRadix-2 indexed reference
Validation evidence14 checks passed
Correctness evidence
CheckObservedCriterionStatus
Indexed NTT level 0 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 0 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 1 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 1 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 2 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 2 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 3 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 3 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 4 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 4 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 5 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 5 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 6 q roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Indexed NTT level 6 QP roundtrip0 residues0 residues · limit = 0 residues✓ Passed
Timed work and provenance
indexed-radix2-ntt-callOne fixed indexed radix-2 NTT operation on a prepared active-prime tensor.

Synchronize the selected engine device before and after every sample; CPU calls complete synchronously.

Includes
  • native indexed radix-2 transform
Excludes
  • input construction
  • host-to-device transfer
  • input restoration
  • correctness roundtrip

Benchmark 3 · Matrix multiplication

Plaintext × ciphertext dense matrix multiplication

CUDA GPU executiondense-matrix-multiplication-ptct · core
measured

CKKS parameters

Ring geometry

N = 2^14

8,192 complex slots

Scale and state

Δ 1.100e+12 · level 0

Modulus budget

Q chain

Execution policy

Radix-2 indexed reference
Parameter-selection notes

Policyone identical CPU/CUDA local-device plan

Exact CKKS parameters and states
{
  "ckks_plan": {
    "logN": 14,
    "ntt_backend": "radix2_indexed",
    "preset": "slots8192-scale40-levels7-int64",
    "slot_count": 8192
  },
  "entry_state": {
    "level": 0,
    "matrix_shape": [
      16,
      16
    ],
    "scale": 1099511627776
  },
  "parameter_selection": {
    "hardware_adaptive": false,
    "policy": "one identical CPU/CUDA local-device plan"
  }
}

Plaintext × ciphertext · one local device

Fixed 16 × 16 dense matrix multiplication

End-to-end latency121.991 msMatrix size 16 · Operand mode ptct · Phase end-to-end
Logical MAC rate33,576.1 logical-macs/sMatrix size 16 · Operand mode ptct · Phase end-to-end
Validation evidence1 check passed
Correctness evidence
CheckObservedCriterionStatus
Dense matrix PT × CT cleartext oracle1.042e-7 absolute1.042e-7 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Timed work and provenance
dense-matrix-ptct-local-deviceOne complete fixed 16x16 encrypted matrix product on one local device.

Synchronize the selected engine device before and after every sample; CPU calls complete synchronously.

Includes
  • all output columns
  • rotations
  • multiplications
  • accumulation
  • relinearization when required
  • rescale
Excludes
  • engine and key construction
  • input preparation and encryption
  • decryption and correctness oracle

Benchmark 4 · Matrix multiplication

Ciphertext × ciphertext dense matrix multiplication

CUDA GPU executiondense-matrix-multiplication-ctct · core
measured

CKKS parameters

Ring geometry

N = 2^14

8,192 complex slots

Scale and state

Δ 1.100e+12 · level 0

Modulus budget

Q chain

Execution policy

Radix-2 indexed reference
Parameter-selection notes

Policyone identical CPU/CUDA local-device plan

Exact CKKS parameters and states
{
  "ckks_plan": {
    "logN": 14,
    "ntt_backend": "radix2_indexed",
    "preset": "slots8192-scale40-levels7-int64",
    "slot_count": 8192
  },
  "entry_state": {
    "level": 0,
    "matrix_shape": [
      16,
      16
    ],
    "scale": 1099511627776
  },
  "parameter_selection": {
    "hardware_adaptive": false,
    "policy": "one identical CPU/CUDA local-device plan"
  }
}

Ciphertext × ciphertext · one local device

Fixed 16 × 16 dense matrix multiplication

End-to-end latency206.248 msMatrix size 16 · Operand mode ctct · Phase end-to-end
Logical MAC rate19,859.6 logical-macs/sMatrix size 16 · Operand mode ctct · Phase end-to-end
Validation evidence1 check passed
Correctness evidence
CheckObservedCriterionStatus
Dense matrix CT × CT cleartext oracle4.327e-7 absolute4.327e-7 absolute · limit ≤ 3.000e-5 absolute✓ Passed
Timed work and provenance
dense-matrix-ctct-local-deviceOne complete fixed 16x16 encrypted matrix product on one local device.

Synchronize the selected engine device before and after every sample; CPU calls complete synchronously.

Includes
  • all output columns
  • rotations
  • multiplications
  • accumulation
  • relinearization when required
  • rescale
Excludes
  • engine and key construction
  • input preparation and encryption
  • decryption and correctness oracle

Benchmark 5 · Polynomial evaluation

Affine and degree-four polynomial methods

CUDA GPU executionpolynomial-evaluation · core
measured

CKKS parameters

Ring geometry

N = 2^14

8,192 complex slots

Scale and state

Δ 1.100e+12 · level 0

Modulus budget

Q chain

Execution policy

Radix-2 indexed reference
Parameter-selection notes

Policycommon CPU/CUDA affine-and-degree4 plan

Exact CKKS parameters and states
{
  "ckks_plan": {
    "logN": 14,
    "ntt_backend": "radix2_indexed",
    "preset": "slots8192-scale40-levels7-int64",
    "slot_count": 8192
  },
  "entry_state": {
    "level": 0,
    "scale": 1099511627776
  },
  "method_states": [
    {
      "method_id": "affine-d1-balanced",
      "observed_exit_state": {
        "active_q_count": 7,
        "component_count": 2,
        "level": 1,
        "modulus_basis": "Q",
        "polynomial_domain": "coefficient",
        "residue_representation": "standard",
        "scale": 1099511627776
      },
      "predicted_exit_level": 1
    },
    {
      "method_id": "dense-power-d4-balanced",
      "observed_exit_state": {
        "active_q_count": 5,
        "component_count": 2,
        "level": 3,
        "modulus_basis": "Q",
        "polynomial_domain": "coefficient",
        "residue_representation": "standard",
        "scale": 1099511627776
      },
      "predicted_exit_level": 3
    },
    {
      "method_id": "dense-power-d4-horner",
      "observed_exit_state": {
        "active_q_count": 4,
        "component_count": 2,
        "level": 4,
        "modulus_basis": "Q",
        "polynomial_domain": "coefficient",
        "residue_representation": "standard",
        "scale": 1099511627776
      },
      "predicted_exit_level": 4
    },
    {
      "method_id": "dense-power-d4-paterson-stockmeyer-k2",
      "observed_exit_state": {
        "active_q_count": 5,
        "component_count": 2,
        "level": 3,
        "modulus_basis": "Q",
        "polynomial_domain": "coefficient",
        "residue_representation": "standard",
        "scale": 1099511627776
      },
      "predicted_exit_level": 3
    }
  ],
  "parameter_selection": {
    "calibration_status": "controlled cross-backend evidence required before release",
    "hardware_adaptive": false,
    "policy": "common CPU/CUDA affine-and-degree4 plan"
  }
}

Affine and degree-four methods

Polynomial method matrix

Affine D1

degree 1
Polynomial methods for affine-d1
MethodRequired levelsLatency ↓
Balanced10.973367 ms

Dense power D4

degree 4
Polynomial methods for dense-power-d4
MethodRequired levelsLatency ↓
Balanced37.20733 ms
Horner46.10636 ms
Paterson stockmeyer k236.49904 ms
Validation evidence8 checks passed
Correctness evidence
CheckObservedCriterionStatus
Affine D1 balanced independent polynomial oracle1.298e-6 absolute1.298e-6 absolute · limit ≤ 8.000e-6 absolute✓ Passed
Affine D1 balanced exit level1 level1 level · limit = 1 level✓ Passed
Dense power D4 balanced independent polynomial oracle2.550e-6 absolute2.550e-6 absolute · limit ≤ 1.400e-5 absolute✓ Passed
Dense power D4 balanced exit level3 level3 level · limit = 3 level✓ Passed
Dense power D4 horner independent polynomial oracle5.319e-6 absolute5.319e-6 absolute · limit ≤ 1.200e-5 absolute✓ Passed
Dense power D4 horner exit level4 level4 level · limit = 4 level✓ Passed
Dense power D4 paterson stockmeyer k2 independent polynomial oracle4.348e-6 absolute4.348e-6 absolute · limit ≤ 1.200e-5 absolute✓ Passed
Dense power D4 paterson stockmeyer k2 exit level3 level3 level · limit = 3 level✓ Passed
Timed work and provenance
fixed-affine-degree4-polynomial-methodOne public fixed-polynomial evaluator invocation for one method row.

Synchronize the selected engine device before and after every sample; CPU calls complete synchronously.

Includes
  • coefficient preparation
  • ciphertext arithmetic
  • relinearization
  • rescale
Excludes
  • engine and key construction
  • input encryption
  • output decryption and oracle
Raw reportsha256:6ea6e626b39b38b03e6caf7d1869b2bd9c8b0ec14122807df274543c78a0b30a
Download JSON

Towards full-stack encrypted execution infrastructures