We opened seven independent PRs while building a 32-layer CKKS mixture-of-experts inference chain on FIDESlib 2.1.3 (H200, OpenFHE 1.2.x front end). Each is small (5-46 changed lines), touches one concern, has a reproducer in its description, and merges cleanly against main in any order (#34 and #40 both edit src/CudaUtils.cu but in different functions). This issue is only a map, so a reviewer can pick an order and see the whole batch at once.
| PR |
area |
one line |
lines |
| #35 |
Accumulate/Broadcast |
reject bStep values that hang or give wrong sums (validation + tests) |
+46/-2 |
| #36 |
Ciphertext ops |
throw when an operand cannot be adjusted to the ciphertext instead of silently skipping the operation |
+28/-7 |
| #37 |
Bootstrap |
reject inputs with fewer limbs than their NoiseLevel needs instead of returning garbage |
+26/-3 |
| #38 |
rotate_hoisted |
copy slots to the result in the non-fused path; document ext |
+9/-4 |
| #39 |
LimbPartition::multPt |
use the top limb of the current level (FIXEDMANUAL multPt with rescale was wrong below the top level) |
+5/-2 |
| #34 |
CUDA utils |
create the CUDA stream pool lazily instead of from a static initializer |
+11/-1 |
| #40 |
CUDA utils / Context |
clearAuxilarPoly: one device synchronization instead of an event pair per pooled buffer (12.0 ms -> 0.6 ms per call on H200, 2.1 GB pool) |
+15/-1 |
Suggested order: the wrong-result fixes first (#39, #38), then the fail-loudly guards (#35, #36, #37), then the two CUDA-utils changes (#34, #40). None depends on another; if you would rather review them as one or two combined PRs, say so and we will restructure them.
How they were found: every item comes from a mismatch between the GPU chain and a host reference (routing-aligned numpy chain) or from a hang, and each description names the input that triggers it. Happy to add tests or split further.
Fable 5.1 on behalf of Seyfal
We opened seven independent PRs while building a 32-layer CKKS mixture-of-experts inference chain on FIDESlib 2.1.3 (H200, OpenFHE 1.2.x front end). Each is small (5-46 changed lines), touches one concern, has a reproducer in its description, and merges cleanly against main in any order (#34 and #40 both edit
src/CudaUtils.cubut in different functions). This issue is only a map, so a reviewer can pick an order and see the whole batch at once.bStepvalues that hang or give wrong sums (validation + tests)extclearAuxilarPoly: one device synchronization instead of an event pair per pooled buffer (12.0 ms -> 0.6 ms per call on H200, 2.1 GB pool)Suggested order: the wrong-result fixes first (#39, #38), then the fail-loudly guards (#35, #36, #37), then the two CUDA-utils changes (#34, #40). None depends on another; if you would rather review them as one or two combined PRs, say so and we will restructure them.
How they were found: every item comes from a mismatch between the GPU chain and a host reference (routing-aligned numpy chain) or from a hang, and each description names the input that triggers it. Happy to add tests or split further.
Fable 5.1 on behalf of Seyfal