# GCP instance: 176 vCPU (88 Cores - AVX512) y 1.4TB de RAM... ~4.64$/hour (spot) ## Mainnet code | Size | Pre-processing [s] | Batch proof [s] | memory [Gb] | $proof | |:--------:| :------------------: | :---------------: | :-----------: |:-----------: | | $$2^{23}$$ | 61 | 104 | 490 |0.134 | Version being executed in mainet ## Optimized code with new intermediate polynomials | Size | Pre-proc [s] | Batch proof [s] | Mem [Gb] | $proof | #cells | MCells/segon/core | $ cell | |:--------: |:------------------: |:---------------:|:-----------:|:-------:|:------:|:----------------------:|:------:| | $$2^{23}$$ | **26** | **81.5** | **295** | **0.105** | $$ 984 \cdot 2^{23}$$ | 1.15 | $1.27 \cdot 10^{-11}$ | | $$2^{24}$$ | **41** | **151** | **580** | **0.195** | $$ 984 \cdot 2^{24}$$ | 1.24 | $1.18 \cdot 10^{-11}$ | | $$2^{25}$$ | **69.5** | **299** | **1130** | **0.385** | $$984 \cdot 2^{25}$$ | 1.26 | $1.17 \cdot 10^{-11}$ | **Note:** #cells = (#constPols + #commitPols)*N **Hardware used**: 176 vCPU (88 Cores - AVX512) y 1.4TB de RAM… ~4.64$/hour (spot) ------------------------------------- # GCP production instance n2d-standard-224 - 224 vCPU y 896GB de RAM… ~2.78$/hour (spot) ## Mainnet code | Size | Pre-processing [s] | Batch proof [s] | memory [Gb] | $proof | |:--------:| :------------------: | :---------------: | :-----------: |:-----------: | | $$2^{23}$$ | **90** | **122** | **507** |**0.094** | ## New prover without reduced memory | Size | Pre-processing [s] | Batch proof [s] | memory [Gb] | $proof | |:--------:| :------------------: | :---------------: | :-----------: | :-----------: | | $$2^{23}$$ | **28** | **100** | **295** | **0.077** | | $$2^{24}$$ | **43.5** | **200** | **580** | **0.154**| | $$2^{25}$$ | **-** | **-** | **-** | **-** | ## New prover with reduced memory | Size | Pre-proc [s] | Batch proof [s] | Mem [Gb] | $proof | #cells |Mcells/second/core | $ cell | |:--------: |:------------------: |:---------------:|:-----------:|:-------:|:------:|:----------------------:|:------:| | $$2^{23}$$ | **28** | **122** | **221**| **0.094**| $$984 \cdot 2^{23}$$ | 0.60 | $1.14 \cdot 10^{-11}$ | | $$2^{24}$$ | **43.5** | **240** | **430**| **0.185**| $$984 \cdot 2^{24}$$ | 0.61 | $1.12 \cdot 10^{-11}$ | | $$2^{25}$$ | **82** | **515** | **850**| **0.398**| $$984 \cdot 2^{25}$$ | 0.57 | $1.21 \cdot 10^{-11}$ | **Note:** #cells = (#constPols + #commitPols)*N **latency 1M cells per core** is: core seconds used (=batch prof time $\times$ #cores) divided by #cells/1M **Hardware used**: n2d-standard-224 - 224 vCPU y 896GB de RAM… ~2.78$/hour (spot) ## Improvements * **57% pre-processing latency:** * Load data from files in parallel * Mekelization of constants done at runtime instead of loading from file. This is slower than using the optimized files load, however ends up saving a lot of data-tranfer times * **22% batch-proof latency:** * Activation of AVX512 * Optimized intermediate polynomials * **26% memory requirements:** * Optimize utilization of memory buffer along the proof, avoid data transpositions for temporal polynomials * **400% increase of steps capacity** ($N=2^{25}$)