Segment 30
This sub-session finalized the Phase 12 split GPU proving API for the cuzk SNARK proving engine by fixing compilation errors, resolving a use-after-free bug in C++ CUDA code, and achieving a 2.4% throughput improvement (37.1s/proof). Subsequent investigation of OOM errors at higher parallelism led to building a global buffer tracker, which revealed that synthesized partitions were piling up due to premature semaphore release. After iterating through several mitigation strategies—including holding the semaphore until GPU delivery and increasing channel capacity—the optimal balance was found by expanding the GPU channel from 1 to partition_workers, eliminating OOM while preserving throughput.
Phase 12's Split GPU Proving API: From Compilation to Memory Backpressure