diff --git a/tfhe/docs/_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg b/tfhe/docs/_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg index 32eca94168..fc63431810 100644 --- a/tfhe/docs/_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg +++ b/tfhe/docs/_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg @@ -1,100 +1,66 @@ - - - - Operation \ Size - CPU - GPU - - - - Negation (`-`) - - 106 ms - - 25.2 ms - - Add / Sub (`+`,`-`) - - 105 ms - - 25.2 ms - - Mul (`x`) - - 401 ms - - 237 ms - - Equal / Not Equal (`eq`, `ne`) - - 81.2 ms - - 17.7 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 102 ms - - 26.2 ms - - Max / Min (`max`,`min`) - - 145 ms - - 43.6 ms - - Bitwise operations (`&`, `|`, `^`) - - 20.7 ms - - 5.97 ms - - Div / Rem (`/`, `%`) - - 8.22 s - - 2.05 s - - Left / Right Shifts (`<<`, `>>`) - - 134 ms - - 86.7 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 133 ms - - 86.8 ms - - Leading / Trailing zeros/ones - - 247 ms - - 62.3 ms - - Log2 - - 267 ms - - 73.9 ms - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + CPU + GPU + + + Negation (-) + 106 ms + 25.2 ms + Add / Sub (+,-) + 105 ms + 25.2 ms + Mul (x) + 401 ms + 237 ms + Equal / Not Equal (eq, ne) + 81.2 ms + 17.7 ms + Comparisons (ge, gt, le, lt) + 102 ms + 26.2 ms + Max / Min (max, min) + 145 ms + 43.6 ms + Bitwise operations (&, |, ^) + 20.7 ms + 5.97 ms + Div / Rem (/, %) + 8.22 s + 2.05 s + Left / Right Shifts (<<, >>) + 134 ms + 86.7 ms + Left / Right Rotations (left_rotate, right_rotate) + 133 ms + 86.8 ms + Leading / Trailing zeros/ones + 247 ms + 62.3 ms + Log2 + 267 ms + 73.9 ms + Select + 32.6 ms + 17.5 ms + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg index e1e50b2304..bc772dee04 100644 --- a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg +++ b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg @@ -1,247 +1,116 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Negation (`-`) - - 33.4 ms - - 48.9 ms - - 57.4 ms - - 79.7 ms - - 105 ms - - 159 ms - - 183 ms - - Add / Sub (`+`,`-`) - - 33.5 ms - - 53.5 ms - - 59.8 ms - - 82.1 ms - - 109 ms - - 165 ms - - 187 ms - - Mul (`x`) - - 39.7 ms - - 97.5 ms - - 141 ms - - 213 ms - - 400 ms - - 1.14 s - - 3.79 s - - Equal / Not Equal (`eq`, `ne`) - - 34.3 ms - - 36.1 ms - - 56.3 ms - - 56.9 ms - - 81.4 ms - - 82.0 ms - - 104 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 37.4 ms - - 37.1 ms - - 54.8 ms - - 76.7 ms - - 99.0 ms - - 145 ms - - 175 ms - - Max / Min (`max`,`min`) - - 75.6 ms - - 76.9 ms - - 97.6 ms - - 121 ms - - 148 ms - - 194 ms - - 244 ms - - Bitwise operations (`&`, `|`, `^`) - - 20.2 ms - - 18.7 ms - - 19.7 ms - - 20.6 ms - - 22.9 ms - - 23.8 ms - - 26.3 ms - - Div / Rem (`/`, `%`) - - 295 ms - - 644 ms - - 1.49 s - - 3.44 s - - 8.49 s - - 20.9 s - - 54.6 s - - Left / Right Shifts (`<<`, `>>`) - - 34.7 ms - - 58.8 ms - - 81.9 ms - - 107 ms - - 142 ms - - 178 ms - - 248 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 39.7 ms - - 59.7 ms - - 81.4 ms - - 107 ms - - 142 ms - - 186 ms - - 249 ms - - Leading / Trailing zeros/ones - - 77.1 ms - - 95.7 ms - - 159 ms - - 182 ms - - 255 ms - - 304 ms - - 345 ms - - Log2 - - 90.4 ms - - 114 ms - - 173 ms - - 199 ms - - 280 ms - - 327 ms - - 369 ms - - Select - - 27.8 ms - - 29.7 ms - - 32.0 ms - - 33.0 ms - - 36.1 ms - - 37.2 ms - - 49.6 ms - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Negation (-) + 48.9 ms + 57.4 ms + 79.7 ms + 105 ms + 159 ms + Add / Sub (+,-) + 53.5 ms + 59.8 ms + 82.1 ms + 109 ms + 165 ms + Mul (x) + 97.5 ms + 141 ms + 213 ms + 400 ms + 1.14 s + Equal / Not Equal (eq, ne) + 36.1 ms + 56.3 ms + 56.9 ms + 81.4 ms + 82.0 ms + Comparisons (ge, gt, le, lt) + 37.1 ms + 54.8 ms + 76.7 ms + 99.0 ms + 145 ms + Max / Min (max, min) + 76.9 ms + 97.6 ms + 121 ms + 148 ms + 194 ms + Bitwise operations (&, |, ^) + 18.7 ms + 19.7 ms + 20.6 ms + 22.9 ms + 23.8 ms + Div / Rem (/, %) + 644 ms + 1.49 s + 3.44 s + 8.49 s + 20.9 s + Left / Right Shifts (<<, >>) + 58.8 ms + 81.9 ms + 107 ms + 142 ms + 178 ms + Left / Right Rotations (left_rotate, right_rotate) + 59.7 ms + 81.4 ms + 107 ms + 142 ms + 186 ms + Leading / Trailing zeros/ones + 95.7 ms + 159 ms + 182 ms + 255 ms + 304 ms + Log2 + 114 ms + 173 ms + 199 ms + 280 ms + 327 ms + Select + 29.7 ms + 32.0 ms + 33.0 ms + 36.1 ms + 37.2 ms + + + + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg index c9df5a9267..0a33fb0ffb 100644 --- a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg +++ b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg @@ -1,196 +1,95 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Add / Sub (`+`,`-`) - - 33.5 ms - - 52.5 ms - - 60.6 ms - - 64.2 ms - - 89.3 ms - - 111 ms - - 181 ms - - Mul (`x`) - - 36.2 ms - - 74.8 ms - - 125 ms - - 175 ms - - 242 ms - - 453 ms - - 1.11 s - - Equal / Not Equal (`eq`, `ne`) - - 18.8 ms - - 32.2 ms - - 35.2 ms - - 55.2 ms - - 58.2 ms - - 79.0 ms - - 81.2 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 15.1 ms - - 37.2 ms - - 36.6 ms - - 56.0 ms - - 78.9 ms - - 101 ms - - 145 ms - - Max / Min (`max`,`min`) - - 32.9 ms - - 52.6 ms - - 57.0 ms - - 78.1 ms - - 103 ms - - 123 ms - - 171 ms - - Bitwise operations (`&`, `|`, `^`) - - 18.0 ms - - 18.9 ms - - 19.6 ms - - 21.4 ms - - 23.1 ms - - 24.1 ms - - 26.7 ms - - Div (`/`) - - 81.1 ms - - 139 ms - - 202 ms - - 280 ms - - 456 ms - - 912 ms - - 2.33 s - - Rem (`%`) - - 154 ms - - 275 ms - - 366 ms - - 536 ms - - 778 ms - - 1.37 s - - 3.13 s - - Left / Right Shifts (`<<`, `>>`) - - 22.3 ms - - 20.0 ms - - 20.3 ms - - 21.2 ms - - 23.2 ms - - 24.2 ms - - 26.5 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 20.2 ms - - 19.5 ms - - 20.6 ms - - 21.1 ms - - 23.6 ms - - 24.1 ms - - 26.2 ms - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Add / Sub (+,-) + 52.5 ms + 60.6 ms + 64.2 ms + 89.3 ms + 111 ms + Mul (x) + 74.8 ms + 125 ms + 175 ms + 242 ms + 453 ms + Equal / Not Equal (eq, ne) + 32.2 ms + 35.2 ms + 55.2 ms + 58.2 ms + 79.0 ms + Comparisons (ge, gt, le, lt) + 37.2 ms + 36.6 ms + 56.0 ms + 78.9 ms + 101 ms + Max / Min (max, min) + 52.6 ms + 57.0 ms + 78.1 ms + 103 ms + 123 ms + Bitwise operations (&, |, ^) + 18.9 ms + 19.6 ms + 21.4 ms + 23.1 ms + 24.1 ms + Div (/) + 139 ms + 202 ms + 280 ms + 456 ms + 912 ms + Rem (%) + 275 ms + 366 ms + 536 ms + 778 ms + 1.37 s + Left / Right Shifts (<<, >>) + 20.0 ms + 20.3 ms + 21.2 ms + 23.2 ms + 24.2 ms + Left / Right Rotations (left_rotate, right_rotate) + 19.5 ms + 20.6 ms + 21.1 ms + 23.6 ms + 24.1 ms + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg index 4adbff901c..b2a2481bd3 100644 --- a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg +++ b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg @@ -1,247 +1,116 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Negation (`-`) - - 33.1 ms - - 48.7 ms - - 57.6 ms - - 81.2 ms - - 106 ms - - 168 ms - - 189 ms - - Add / Sub (`+`,`-`) - - 38.1 ms - - 59.9 ms - - 60.2 ms - - 82.2 ms - - 105 ms - - 168 ms - - 182 ms - - Mul (`x`) - - 40.6 ms - - 103 ms - - 143 ms - - 219 ms - - 401 ms - - 1.15 s - - 3.84 s - - Equal / Not Equal (`eq`, `ne`) - - 36.5 ms - - 37.1 ms - - 58.3 ms - - 59.0 ms - - 81.2 ms - - 82.3 ms - - 106 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 36.3 ms - - 37.4 ms - - 57.2 ms - - 80.1 ms - - 102 ms - - 145 ms - - 175 ms - - Max / Min (`max`,`min`) - - 79.4 ms - - 79.8 ms - - 99.8 ms - - 122 ms - - 145 ms - - 192 ms - - 246 ms - - Bitwise operations (`&`, `|`, `^`) - - 19.8 ms - - 19.4 ms - - 19.6 ms - - 20.5 ms - - 20.7 ms - - 23.3 ms - - 26.0 ms - - Div / Rem (`/`, `%`) - - 291 ms - - 693 ms - - 1.56 s - - 3.52 s - - 8.22 s - - 21.1 s - - 55.2 s - - Left / Right Shifts (`<<`, `>>`) - - 38.5 ms - - 61.2 ms - - 84.3 ms - - 109 ms - - 134 ms - - 174 ms - - 250 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 40.4 ms - - 61.4 ms - - 82.6 ms - - 105 ms - - 133 ms - - 184 ms - - 259 ms - - Leading / Trailing zeros/ones - - 80.5 ms - - 100 ms - - 156 ms - - 183 ms - - 247 ms - - 298 ms - - 347 ms - - Log2 - - 100 ms - - 121 ms - - 182 ms - - 205 ms - - 267 ms - - 323 ms - - 369 ms - - Select - - 27.6 ms - - 30.9 ms - - 32.2 ms - - 33.3 ms - - 32.6 ms - - 37.2 ms - - 51.0 ms - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Negation (-) + 48.7 ms + 57.0 ms + 78.0 ms + 103 ms + 162 ms + Add / Sub (+,-) + 52.5 ms + 58.1 ms + 79.9 ms + 101 ms + 161 ms + Mul (x) + 94.4 ms + 136 ms + 210 ms + 381 ms + 1.1 s + Equal / Not Equal (eq, ne) + 36.3 ms + 55.6 ms + 55.0 ms + 76.3 ms + 77.6 ms + Comparisons (ge, gt, le, lt) + 36.1 ms + 54.2 ms + 73.8 ms + 94.8 ms + 136 ms + Max / Min (max, min) + 74.9 ms + 94.2 ms + 115 ms + 138 ms + 183 ms + Bitwise operations (&, |, ^) + 18.6 ms + 19.0 ms + 19.4 ms + 20.3 ms + 22.0 ms + Div / Rem (/, %) + 667 ms + 1.49 s + 3.39 s + 7.87 s + 19.6 s + Left / Right Shifts (<<, >>) + 59.9 ms + 79.2 ms + 100 ms + 128 ms + 169 ms + Left / Right Rotations (left_rotate, right_rotate) + 57.4 ms + 77.1 ms + 98.9 ms + 128 ms + 178 ms + Leading / Trailing zeros/ones + 96.5 ms + 153 ms + 172 ms + 234 ms + 291 ms + Log2 + 114 ms + 170 ms + 195 ms + 256 ms + 312 ms + Select + 28.9 ms + 29.4 ms + 31.0 ms + 31.9 ms + 34.3 ms + + + + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg index 3c9098d25a..2b4ff8f6fa 100644 --- a/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg +++ b/tfhe/docs/_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg @@ -1,196 +1,95 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Add / Sub (`+`,`-`) - - 39.8 ms - - 56.3 ms - - 61.5 ms - - 63.8 ms - - 88.4 ms - - 111 ms - - 178 ms - - Mul (`x`) - - 40.9 ms - - 80.3 ms - - 128 ms - - 173 ms - - 231 ms - - 452 ms - - 1.11 s - - Equal / Not Equal (`eq`, `ne`) - - 19.0 ms - - 38.6 ms - - 37.8 ms - - 58.5 ms - - 58.8 ms - - 81.7 ms - - 84.2 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 15.3 ms - - 40.9 ms - - 39.9 ms - - 57.6 ms - - 81.0 ms - - 103 ms - - 149 ms - - Max / Min (`max`,`min`) - - 32.9 ms - - 59.1 ms - - 60.0 ms - - 81.6 ms - - 103 ms - - 127 ms - - 175 ms - - Bitwise operations (`&`, `|`, `^`) - - 19.0 ms - - 19.5 ms - - 20.5 ms - - 21.0 ms - - 22.4 ms - - 23.9 ms - - 26.3 ms - - Div (`/`) - - 81.7 ms - - 149 ms - - 188 ms - - 281 ms - - 453 ms - - 844 ms - - 2.45 s - - Rem (`%`) - - 165 ms - - 278 ms - - 360 ms - - 503 ms - - 806 ms - - 1.32 s - - 2.98 s - - Left / Right Shifts (`<<`, `>>`) - - 18.8 ms - - 20.4 ms - - 20.4 ms - - 20.9 ms - - 21.8 ms - - 23.1 ms - - 26.2 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 21.0 ms - - 20.2 ms - - 20.5 ms - - 21.0 ms - - 21.7 ms - - 23.0 ms - - 26.0 ms - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Add / Sub (+,-) + 51.7 ms + 56.2 ms + 57.0 ms + 78.6 ms + 104 ms + Mul (x) + 75.6 ms + 118 ms + 161 ms + 222 ms + 419 ms + Equal / Not Equal (eq, ne) + 34.6 ms + 35.4 ms + 56.0 ms + 54.4 ms + 75.8 ms + Comparisons (ge, gt, le, lt) + 36.4 ms + 35.2 ms + 53.7 ms + 73.4 ms + 94.5 ms + Max / Min (max, min) + 55.0 ms + 55.7 ms + 74.6 ms + 95.0 ms + 117 ms + Bitwise operations (&, |, ^) + 19.0 ms + 19.1 ms + 19.7 ms + 21.3 ms + 22.7 ms + Div (/) + 137 ms + 189 ms + 269 ms + 451 ms + 833 ms + Rem (%) + 268 ms + 344 ms + 492 ms + 719 ms + 1.27 s + Left / Right Shifts (<<, >>) + 18.9 ms + 19.3 ms + 19.6 ms + 20.1 ms + 21.9 ms + Left / Right Rotations (left_rotate, right_rotate) + 19.3 ms + 19.4 ms + 19.9 ms + 21.4 ms + 22.7 ms + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg b/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg index 8c6b9c9879..3dab225056 100644 --- a/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg +++ b/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg @@ -1,247 +1,116 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Negation (`-`) - - 10.9 ms - - 11.2 ms - - 12.5 ms - - 17.7 ms - - 25.2 ms - - 51.1 ms - - 82.8 ms - - Add / Sub (`+`,`-`) - - 11.0 ms - - 11.3 ms - - 12.5 ms - - 17.7 ms - - 25.2 ms - - 51.2 ms - - 82.8 ms - - Mul (`x`) - - 18.0 ms - - 23.1 ms - - 37.2 ms - - 76.4 ms - - 237 ms - - 830 ms - - 3.24 s - - Equal / Not Equal (`eq`, `ne`) - - 7.53 ms - - 7.65 ms - - 11.5 ms - - 12.4 ms - - 17.7 ms - - 24.1 ms - - 37.7 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 11.1 ms - - 11.4 ms - - 15.3 ms - - 20.1 ms - - 26.2 ms - - 38.0 ms - - 58.3 ms - - Max / Min (`max`,`min`) - - 18.3 ms - - 18.9 ms - - 24.0 ms - - 30.6 ms - - 43.6 ms - - 68.5 ms - - 107 ms - - Bitwise operations (`&`, `|`, `^`) - - 3.45 ms - - 3.6 ms - - 4.01 ms - - 4.58 ms - - 5.97 ms - - 11.2 ms - - 18.9 ms - - Div / Rem (`/`, `%`) - - 78.1 ms - - 154 ms - - 318 ms - - 763 ms - - 2.05 s - - 6.35 s - - 22.8 s - - Left / Right Shifts (`<<`, `>>`) - - 17.7 ms - - 22.9 ms - - 30.4 ms - - 43.4 ms - - 86.7 ms - - 162 ms - - 280 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 17.7 ms - - 22.9 ms - - 30.3 ms - - 43.4 ms - - 86.8 ms - - 162 ms - - 280 ms - - Leading / Trailing zeros/ones - - 29.0 ms - - 25.1 ms - - 33.8 ms - - 44.4 ms - - 62.3 ms - - 105 ms - - 195 ms - - Log2 - - 31.9 ms - - 35.5 ms - - 48.2 ms - - 55.2 ms - - 73.9 ms - - 113 ms - - 210 ms - - Select - - 7.16 ms - - 7.76 ms - - 8.72 ms - - 10.7 ms - - 17.5 ms - - 30.5 ms - - 48.8 ms - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Negation (-) + 11.2 ms + 12.5 ms + 17.7 ms + 25.2 ms + 51.1 ms + Add / Sub (+,-) + 11.3 ms + 12.5 ms + 17.7 ms + 25.2 ms + 51.2 ms + Mul (x) + 23.1 ms + 37.2 ms + 76.4 ms + 237 ms + 830 ms + Equal / Not Equal (eq, ne) + 7.65 ms + 11.5 ms + 12.4 ms + 17.7 ms + 24.1 ms + Comparisons (ge, gt, le, lt) + 11.4 ms + 15.3 ms + 20.1 ms + 26.2 ms + 38.0 ms + Max / Min (max, min) + 18.9 ms + 24.0 ms + 30.6 ms + 43.6 ms + 68.5 ms + Bitwise operations (&, |, ^) + 3.6 ms + 4.01 ms + 4.58 ms + 5.97 ms + 11.2 ms + Div / Rem (/, %) + 154 ms + 318 ms + 763 ms + 2.05 s + 6.35 s + Left / Right Shifts (<<, >>) + 22.9 ms + 30.4 ms + 43.4 ms + 86.7 ms + 162 ms + Left / Right Rotations (left_rotate, right_rotate) + 22.9 ms + 30.3 ms + 43.4 ms + 86.8 ms + 162 ms + Leading / Trailing zeros/ones + 25.1 ms + 33.8 ms + 44.4 ms + 62.3 ms + 105 ms + Log2 + 35.5 ms + 48.2 ms + 55.2 ms + 73.9 ms + 113 ms + Select + 7.76 ms + 8.72 ms + 10.7 ms + 17.5 ms + 30.5 ms + + + + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg b/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg index ca0624c521..293509055f 100644 --- a/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg +++ b/tfhe/docs/_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg @@ -1,196 +1,95 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Add / Sub (`+`,`-`) - - 11.1 ms - - 11.4 ms - - 12.6 ms - - 17.8 ms - - 25.4 ms - - 51.4 ms - - 83.1 ms - - Mul (`x`) - - 11.4 ms - - 18.1 ms - - 26.1 ms - - 46.6 ms - - 109 ms - - 330 ms - - 1.17 s - - Equal / Not Equal (`eq`, `ne`) - - 7.82 ms - - 7.81 ms - - 8.08 ms - - 12.0 ms - - 13.0 ms - - 18.8 ms - - 25.8 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 9.31 ms - - 9.61 ms - - 13.3 ms - - 17.4 ms - - 22.3 ms - - 29.0 ms - - 41.8 ms - - Max / Min (`max`,`min`) - - 16.5 ms - - 17.3 ms - - 21.9 ms - - 28.1 ms - - 39.7 ms - - 59.4 ms - - 90.7 ms - - Bitwise operations (`&`, `|`, `^`) - - 3.3 ms - - 3.63 ms - - 4.11 ms - - 4.65 ms - - 6.03 ms - - 11.2 ms - - 19.0 ms - - Div (`/`) - - 16.3 ms - - 28.4 ms - - 41.6 ms - - 83.7 ms - - 214 ms - - 664 ms - - 2.34 s - - Rem (`%`) - - 35.5 ms - - 56.5 ms - - 80.6 ms - - 149 ms - - 351 ms - - 1.04 s - - 3.68 s - - Left / Right Shifts (`<<`, `>>`) - - 3.49 ms - - 3.63 ms - - 4.1 ms - - 4.63 ms - - 6.03 ms - - 11.2 ms - - 19.0 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 3.5 ms - - 3.63 ms - - 4.11 ms - - 4.64 ms - - 6.03 ms - - 11.3 ms - - 19.0 ms - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Add / Sub (+,-) + 11.4 ms + 12.6 ms + 17.8 ms + 25.4 ms + 51.4 ms + Mul (x) + 18.1 ms + 26.1 ms + 46.6 ms + 109 ms + 330 ms + Equal / Not Equal (eq, ne) + 7.81 ms + 8.08 ms + 12.0 ms + 13.0 ms + 18.8 ms + Comparisons (ge, gt, le, lt) + 9.61 ms + 13.3 ms + 17.4 ms + 22.3 ms + 29.0 ms + Max / Min (max, min) + 17.3 ms + 21.9 ms + 28.1 ms + 39.7 ms + 59.4 ms + Bitwise operations (&, |, ^) + 3.63 ms + 4.11 ms + 4.65 ms + 6.03 ms + 11.2 ms + Div (/) + 28.4 ms + 41.6 ms + 83.7 ms + 214 ms + 664 ms + Rem (%) + 56.5 ms + 80.6 ms + 149 ms + 351 ms + 1.04 s + Left / Right Shifts (<<, >>) + 3.63 ms + 4.1 ms + 4.63 ms + 6.03 ms + 11.2 ms + Left / Right Rotations (left_rotate, right_rotate) + 3.63 ms + 4.11 ms + 4.64 ms + 6.03 ms + 11.3 ms + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg b/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg index c1c7625019..d617ecacf1 100644 --- a/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg +++ b/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg @@ -1,247 +1,116 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Negation (`-`) - - 11.2 ms - - 11.4 ms - - 11.6 ms - - 16.4 ms - - 21.9 ms - - 36.7 ms - - 57.6 ms - - Add / Sub (`+`,`-`) - - 11.2 ms - - 11.4 ms - - 11.7 ms - - 16.4 ms - - 21.9 ms - - 36.7 ms - - 57.6 ms - - Mul (`x`) - - 18.4 ms - - 22.7 ms - - 31.3 ms - - 63.4 ms - - 164 ms - - 545 ms - - 2.11 s - - Equal / Not Equal (`eq`, `ne`) - - 7.81 ms - - 7.95 ms - - 11.6 ms - - 12.3 ms - - 16.8 ms - - 19.2 ms - - 30.2 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 11.6 ms - - 11.7 ms - - 15.3 ms - - 19.7 ms - - 24.6 ms - - 31.6 ms - - 45.8 ms - - Max / Min (`max`,`min`) - - 18.7 ms - - 18.9 ms - - 23.3 ms - - 28.7 ms - - 35.9 ms - - 50.0 ms - - 77.4 ms - - Bitwise operations (`&`, `|`, `^`) - - 3.52 ms - - 3.54 ms - - 3.66 ms - - 4.24 ms - - 4.82 ms - - 6.43 ms - - 12.0 ms - - Div / Rem (`/`, `%`) - - 122 ms - - 273 ms - - 580 ms - - 1.28 s - - 2.97 s - - 7.41 s - - 20.4 s - - Left / Right Shifts (`<<`, `>>`) - - 17.9 ms - - 21.8 ms - - 27.9 ms - - 36.5 ms - - 53.1 ms - - 106 ms - - 197 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 17.9 ms - - 21.8 ms - - 27.9 ms - - 36.5 ms - - 53.2 ms - - 106 ms - - 197 ms - - Leading / Trailing zeros/ones - - 29.5 ms - - 25.5 ms - - 32.9 ms - - 42.9 ms - - 56.5 ms - - 78.5 ms - - 136 ms - - Log2 - - 32.6 ms - - 43.8 ms - - 57.7 ms - - 99.5 ms - - 280 ms - - 962 ms - - 4.78 s - - Select - - 7.08 ms - - 7.38 ms - - 7.98 ms - - 9.02 ms - - 11.3 ms - - 18.6 ms - - 32.8 ms - - - - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Negation (-) + 11.4 ms + 11.6 ms + 16.4 ms + 21.9 ms + 36.7 ms + Add / Sub (+,-) + 11.4 ms + 11.7 ms + 16.4 ms + 21.9 ms + 36.7 ms + Mul (x) + 22.7 ms + 31.3 ms + 63.4 ms + 164 ms + 545 ms + Equal / Not Equal (eq, ne) + 7.95 ms + 11.6 ms + 12.3 ms + 16.8 ms + 19.2 ms + Comparisons (ge, gt, le, lt) + 11.7 ms + 15.3 ms + 19.7 ms + 24.6 ms + 31.6 ms + Max / Min (max, min) + 18.9 ms + 23.3 ms + 28.7 ms + 35.9 ms + 50.0 ms + Bitwise operations (&, |, ^) + 3.54 ms + 3.66 ms + 4.24 ms + 4.82 ms + 6.43 ms + Div / Rem (/, %) + 273 ms + 580 ms + 1.28 s + 2.97 s + 7.41 s + Left / Right Shifts (<<, >>) + 21.8 ms + 27.9 ms + 36.5 ms + 53.1 ms + 106 ms + Left / Right Rotations (left_rotate, right_rotate) + 21.8 ms + 27.9 ms + 36.5 ms + 53.2 ms + 106 ms + Leading / Trailing zeros/ones + 25.5 ms + 32.9 ms + 42.9 ms + 56.5 ms + 78.5 ms + Log2 + 43.8 ms + 57.7 ms + 99.5 ms + 280 ms + 962 ms + Select + 7.38 ms + 7.98 ms + 9.02 ms + 11.3 ms + 18.6 ms + + + + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg b/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg index 8e17088d70..0232db549f 100644 --- a/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg +++ b/tfhe/docs/_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg @@ -1,196 +1,95 @@ - - - - Operation \ Size - FheUint4 - FheUint8 - FheUint16 - FheUint32 - FheUint64 - FheUint128 - FheUint256 - - - - Add / Sub (`+`,`-`) - - 11.2 ms - - 11.4 ms - - 11.7 ms - - 16.5 ms - - 22.0 ms - - 36.8 ms - - 57.8 ms - - Mul (`x`) - - 11.5 ms - - 18.1 ms - - 24.9 ms - - 41.7 ms - - 93.5 ms - - 271 ms - - 991 ms - - Equal / Not Equal (`eq`, `ne`) - - 8.04 ms - - 8.26 ms - - 8.53 ms - - 12.4 ms - - 13.2 ms - - 18.0 ms - - 21.3 ms - - Comparisons (`ge`, `gt`, `le`, `lt`) - - 9.6 ms - - 9.95 ms - - 13.7 ms - - 17.4 ms - - 21.7 ms - - 27.4 ms - - 35.3 ms - - Max / Min (`max`,`min`) - - 16.8 ms - - 17.0 ms - - 21.6 ms - - 26.4 ms - - 33.4 ms - - 46.2 ms - - 68.1 ms - - Bitwise operations (`&`, `|`, `^`) - - 3.41 ms - - 3.64 ms - - 3.79 ms - - 4.36 ms - - 4.91 ms - - 6.54 ms - - 12.1 ms - - Div (`/`) - - 15.7 ms - - 26.7 ms - - 39.4 ms - - 71.8 ms - - 176 ms - - 544 ms - - 1.99 s - - Rem (`%`) - - 36.4 ms - - 56.9 ms - - 77.4 ms - - 131 ms - - 292 ms - - 839 ms - - 2.97 s - - Left / Right Shifts (`<<`, `>>`) - - 3.54 ms - - 3.55 ms - - 3.7 ms - - 4.28 ms - - 4.82 ms - - 6.45 ms - - 11.9 ms - - Left / Right Rotations (`left_rotate`, `right_rotate`) - - 3.54 ms - - 3.55 ms - - 3.71 ms - - 4.28 ms - - 4.82 ms - - 6.46 ms - - 12.0 ms - - - - - - - - - - - - - - - - - - - - - - + + + + Operation \ Size + FheUint + 8 + FheUint + 16 + FheUint + 32 + FheUint + 64 + FheUint + 128 + + + Add / Sub (+,-) + 11.4 ms + 11.7 ms + 16.5 ms + 22.0 ms + 36.8 ms + Mul (x) + 18.1 ms + 24.9 ms + 41.7 ms + 93.5 ms + 271 ms + Equal / Not Equal (eq, ne) + 8.26 ms + 8.53 ms + 12.4 ms + 13.2 ms + 18.0 ms + Comparisons (ge, gt, le, lt) + 9.95 ms + 13.7 ms + 17.4 ms + 21.7 ms + 27.4 ms + Max / Min (max, min) + 17.0 ms + 21.6 ms + 26.4 ms + 33.4 ms + 46.2 ms + Bitwise operations (&, |, ^) + 3.64 ms + 3.79 ms + 4.36 ms + 4.91 ms + 6.54 ms + Div (/) + 26.7 ms + 39.4 ms + 71.8 ms + 176 ms + 544 ms + Rem (%) + 56.9 ms + 77.4 ms + 131 ms + 292 ms + 839 ms + Left / Right Shifts (<<, >>) + 3.55 ms + 3.7 ms + 4.28 ms + 4.82 ms + 6.45 ms + Left / Right Rotations (left_rotate, right_rotate) + 3.55 ms + 3.71 ms + 4.28 ms + 4.82 ms + 6.46 ms + + + + + + + + + + + + + + + + + + diff --git a/tfhe/docs/getting_started/benchmarks/README.md b/tfhe/docs/getting_started/benchmarks/README.md index dfa02a36a4..c8763f034f 100644 --- a/tfhe/docs/getting_started/benchmarks/README.md +++ b/tfhe/docs/getting_started/benchmarks/README.md @@ -12,4 +12,4 @@ make print_doc_bench_parameters ### Operation time over FheUint 64 -![Click to enlarge](../../_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg) +![](../../_static/cpu_gpu_integer_benchmark_fheuint64_tuniform_2m64_ciphertext.svg) diff --git a/tfhe/docs/getting_started/benchmarks/cpu/cpu_integer_operations.md b/tfhe/docs/getting_started/benchmarks/cpu/cpu_integer_operations.md index 838da2813c..13ba8e272c 100644 --- a/tfhe/docs/getting_started/benchmarks/cpu/cpu_integer_operations.md +++ b/tfhe/docs/getting_started/benchmarks/cpu/cpu_integer_operations.md @@ -14,21 +14,21 @@ The following tables benchmark the execution time of some operation sets using ` The next table shows the operation timings on CPU when all inputs are encrypted: -![Click to enlarge](../../../_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg) +![](../../../_static/cpu_integer_benchmark_tuniform_2m64_ciphertext.svg) The next table shows the operation timings on CPU when the left input is encrypted and the right is a clear scalar of the same size: -![Click to enlarge](../../../_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg) +![](../../../_static/cpu_integer_benchmark_tuniform_2m64_plaintext.svg) ## Pfail: $$2^{-128}$$ The next table shows the operation timings on CPU when all inputs are encrypted: -![Click to enlarge](../../../_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg) +![](../../../_static/cpu_integer_benchmark_tuniform_2m128_ciphertext.svg) The next table shows the operation timings on CPU when the left input is encrypted and the right is a clear scalar of the same size: -![Click to enlarge](../../../_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg) +![](../../../_static/cpu_integer_benchmark_tuniform_2m128_plaintext.svg) All timings are based on parallelized Radix-based integer operations where each block is encrypted using the default parameters `PARAM_MESSAGE_2_CARRY_2_KS_PBS`. To ensure predictable timings, we perform operations in the `default` mode, which ensures that the input and output encoding are similar (i.e., the carries are always emptied). diff --git a/tfhe/docs/getting_started/benchmarks/cpu/cpu_programmable_bootstrapping.md b/tfhe/docs/getting_started/benchmarks/cpu/cpu_programmable_bootstrapping.md index 08fb51f9d0..423e2fe6af 100644 --- a/tfhe/docs/getting_started/benchmarks/cpu/cpu_programmable_bootstrapping.md +++ b/tfhe/docs/getting_started/benchmarks/cpu/cpu_programmable_bootstrapping.md @@ -13,15 +13,15 @@ Note that these benchmarks use Gaussian parameters. `MB-PBS` stands for multi-bi ## P-fail: $$2^{-40}$$ -![Click to enlarge](../../../_static/cpu_pbs_benchmark_tuniform_2m40.svg) +![](../../../_static/cpu_pbs_benchmark_tuniform_2m40.svg) ## P-fail: $$2^{-64}$$ -![Click to enlarge](../../../_static/cpu_pbs_benchmark_tuniform_2m64.svg) +![](../../../_static/cpu_pbs_benchmark_tuniform_2m64.svg) ## P-fail: $$2^{-128}$$ -![Click to enlarge](../../../_static/cpu_pbs_benchmark_tuniform_2m128.svg) +![](../../../_static/cpu_pbs_benchmark_tuniform_2m128.svg) ## Reproducing TFHE-rs benchmarks diff --git a/tfhe/docs/getting_started/benchmarks/gpu/gpu_integer_operations.md b/tfhe/docs/getting_started/benchmarks/gpu/gpu_integer_operations.md index c7746075cf..88fd4b7040 100644 --- a/tfhe/docs/getting_started/benchmarks/gpu/gpu_integer_operations.md +++ b/tfhe/docs/getting_started/benchmarks/gpu/gpu_integer_operations.md @@ -12,22 +12,22 @@ The cryptographic parameters `PARAM_GPU_MULTI_BIT_MESSAGE_2_CARRY_2_GROUP_3_KS_P Below come the results for the execution on a single H100. The following table shows the performance when the inputs of the benchmarked operation are encrypted: -![Click to enlarge](../../../_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg) +![](../../../_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_ciphertext.svg) The following table shows the performance when the left input of the benchmarked operation is encrypted and the other is a clear scalar of the same size: -![Click to enlarge](../../../_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg) +![](../../../_static/gpu_integer_benchmark_h100x1_multi_bit_tuniform_2m64_plaintext.svg) ## 2xH100 Below come the results for the execution on two H100's. The following table shows the performance when the inputs of the benchmarked operation are encrypted: -![Click to enlarge](../../../_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg) +![](../../../_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_ciphertext.svg) The following table shows the performance when the left input of the benchmarked operation is encrypted and the other is a clear scalar of the same size: -![Click to enlarge](../../../_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg) +![](../../../_static/gpu_integer_benchmark_h100x2_multi_bit_tuniform_2m64_plaintext.svg) ## Reproducing TFHE-rs benchmarks diff --git a/tfhe/docs/getting_started/benchmarks/gpu/gpu_programmable_bootstrapping.md b/tfhe/docs/getting_started/benchmarks/gpu/gpu_programmable_bootstrapping.md index 5348a209cc..bd65eddd73 100644 --- a/tfhe/docs/getting_started/benchmarks/gpu/gpu_programmable_bootstrapping.md +++ b/tfhe/docs/getting_started/benchmarks/gpu/gpu_programmable_bootstrapping.md @@ -8,11 +8,11 @@ All GPU benchmarks were launched on H100 GPUs, and rely on the multithreaded PBS ## P-fail: $$2^{-40}$$ -![Click to enlarge](../../../_static/gpu_pbs_benchmark_tuniform_2m40.svg) +![](../../../_static/gpu_pbs_benchmark_tuniform_2m40.svg) ## P-fail: $$2^{-64}$$ -![Click to enlarge](../../../_static/gpu_pbs_benchmark_tuniform_2m64.svg) +![](../../../_static/gpu_pbs_benchmark_tuniform_2m64.svg) ## Reproducing TFHE-rs benchmarks