Owners, 🟒**@Daniel Sanchez Quiros**

Reviewers: 🟒@Álvaro Castro-Castilla

Benchmarks for data reconstruction

RS decoding

Decoding of a single polynomial of size N with 50% of extended data

https://github.com/logos-co/nomos-node/blob/3ca1d9531b688c00055af897973522fee8e8f86e/nomos-da/kzgrs/benches/rs.rs#L32

Run on:

It takes an average of 28.03ns to decode 1Mb

rs             fastest       β”‚ slowest       β”‚ median        β”‚ mean          β”‚ samples β”‚ iters
╰─ rs_decode                 β”‚               β”‚               β”‚               β”‚         β”‚
   β”œβ”€ 16399    11.58 ns      β”‚ 46.28 ns      β”‚ 21.63 ns      β”‚ 23.2 ns       β”‚ 100     β”‚ 1000
   β”‚           43.89 TB/s    β”‚ 10.98 TB/s    β”‚ 23.5 TB/s     β”‚ 21.9 TB/s     β”‚         β”‚
   β”œβ”€ 32798    13.98 ns      β”‚ 74.88 ns      β”‚ 27.08 ns      β”‚ 28.01 ns      β”‚ 100     β”‚ 1000
   β”‚           72.71 TB/s    β”‚ 13.57 TB/s    β”‚ 37.54 TB/s    β”‚ 36.28 TB/s    β”‚         β”‚
   β”œβ”€ 65565    21.18 ns      β”‚ 90.28 ns      β”‚ 33.68 ns      β”‚ 35.5 ns       β”‚ 100     β”‚ 1000
   β”‚           95.95 TB/s    β”‚ 22.51 TB/s    β”‚ 60.34 TB/s    β”‚ 57.24 TB/s    β”‚         β”‚
   β”œβ”€ 131099   21.08 ns      β”‚ 96.48 ns      β”‚ 34.23 ns      β”‚ 36.29 ns      β”‚ 100     β”‚ 1000
   β”‚           192.7 TB/s    β”‚ 42.12 TB/s    β”‚ 118.7 TB/s    β”‚ 111.9 TB/s    β”‚         β”‚
   β”œβ”€ 262167   21.98 ns      β”‚ 98.18 ns      β”‚ 29.58 ns      β”‚ 33.14 ns      β”‚ 100     β”‚ 1000
   β”‚           369.7 TB/s    β”‚ 82.77 TB/s    β”‚ 274.7 TB/s    β”‚ 245.2 TB/s    β”‚         β”‚
   β”œβ”€ 524241   22.68 ns      β”‚ 106.2 ns      β”‚ 28.83 ns      β”‚ 33.82 ns      β”‚ 100     β”‚ 1000
   β”‚           716.4 TB/s    β”‚ 152.9 TB/s    β”‚ 563.6 TB/s    β”‚ 480.5 TB/s    β”‚         β”‚
   ╰─ 1048606  21.58 ns      β”‚ 47.38 ns      β”‚ 26.23 ns      β”‚ 28.03 ns      β”‚ 100     β”‚ 1000
               1.506 PB/s    β”‚ 686 TB/s      β”‚ 1.239 PB/s    β”‚ 1.159 PB/s    β”‚         β”‚

Full decode from random columns

Decoding of all encoded rows from the full encoding protocol using 50% random columns.

https://github.com/logos-co/nomos-node/blob/master/nomos-da/kzgrs-backend/benches/reconstruct.rs

Bench #1

Run on:

It takes an average of 1.285ms to reconstruct 1Mb

Timer precision: 23 ns
reconstruct     fastest       β”‚ slowest       β”‚ median        β”‚ mean          β”‚ samples β”‚ iters
╰─ reconstruct                β”‚               β”‚               β”‚               β”‚         β”‚
   β”œβ”€ 32                      β”‚               β”‚               β”‚               β”‚         β”‚
   β”‚  β”œβ”€ 128.   44.25 Β΅s      β”‚ 44.25 Β΅s      β”‚ 44.25 Β΅s      β”‚ 44.25 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         740.4 MB/s    β”‚ 740.4 MB/s    β”‚ 740.4 MB/s    β”‚ 740.4 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 256    38.74 Β΅s      β”‚ 38.74 Β΅s      β”‚ 38.74 Β΅s      β”‚ 38.74 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         845.7 MB/s    β”‚ 845.7 MB/s    β”‚ 845.7 MB/s    β”‚ 845.7 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 512    48.83 Β΅s      β”‚ 48.83 Β΅s      β”‚ 48.83 Β΅s      β”‚ 48.83 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         670.9 MB/s    β”‚ 670.9 MB/s    β”‚ 670.9 MB/s    β”‚ 670.9 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 1024   45.66 Β΅s      β”‚ 45.66 Β΅s      β”‚ 45.66 Β΅s      β”‚ 45.66 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         717.4 MB/s    β”‚ 717.4 MB/s    β”‚ 717.4 MB/s    β”‚ 717.4 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 2048   77.48 Β΅s      β”‚ 77.48 Β΅s      β”‚ 77.48 Β΅s      β”‚ 77.48 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         422.8 MB/s    β”‚ 422.8 MB/s    β”‚ 422.8 MB/s    β”‚ 422.8 MB/s    β”‚         β”‚
   β”‚  ╰─ 4096   347.2 Β΅s      β”‚ 347.2 Β΅s      β”‚ 347.2 Β΅s      β”‚ 347.2 Β΅s      β”‚ 1       β”‚ 1
   β”‚            94.36 MB/s    β”‚ 94.36 MB/s    β”‚ 94.36 MB/s    β”‚ 94.36 MB/s    β”‚         β”‚
   β”œβ”€ 64                      β”‚               β”‚               β”‚               β”‚         β”‚
   β”‚  β”œβ”€ 128    76.09 Β΅s      β”‚ 76.09 Β΅s      β”‚ 76.09 Β΅s      β”‚ 76.09 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         861.2 MB/s    β”‚ 861.2 MB/s    β”‚ 861.2 MB/s    β”‚ 861.2 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 256    60.87 Β΅s      β”‚ 60.87 Β΅s      β”‚ 60.87 Β΅s      β”‚ 60.87 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.076 GB/s    β”‚ 1.076 GB/s    β”‚ 1.076 GB/s    β”‚ 1.076 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 512    107.2 Β΅s      β”‚ 107.2 Β΅s      β”‚ 107.2 Β΅s      β”‚ 107.2 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         611 MB/s      β”‚ 611 MB/s      β”‚ 611 MB/s      β”‚ 611 MB/s      β”‚         β”‚
   β”‚  β”œβ”€ 1024   67.72 Β΅s      β”‚ 67.72 Β΅s      β”‚ 67.72 Β΅s      β”‚ 67.72 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         967.7 MB/s    β”‚ 967.7 MB/s    β”‚ 967.7 MB/s    β”‚ 967.7 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 2048   99.55 Β΅s      β”‚ 99.55 Β΅s      β”‚ 99.55 Β΅s      β”‚ 99.55 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         658.2 MB/s    β”‚ 658.2 MB/s    β”‚ 658.2 MB/s    β”‚ 658.2 MB/s    β”‚         β”‚
   β”‚  ╰─ 4096   435.9 Β΅s      β”‚ 435.9 Β΅s      β”‚ 435.9 Β΅s      β”‚ 435.9 Β΅s      β”‚ 1       β”‚ 1
   β”‚            150.3 MB/s    β”‚ 150.3 MB/s    β”‚ 150.3 MB/s    β”‚ 150.3 MB/s    β”‚         β”‚
   β”œβ”€ 128                     β”‚               β”‚               β”‚               β”‚         β”‚
   β”‚  β”œβ”€ 128    133 Β΅s        β”‚ 133 Β΅s        β”‚ 133 Β΅s        β”‚ 133 Β΅s        β”‚ 1       β”‚ 1
   β”‚  β”‚         984.8 MB/s    β”‚ 984.8 MB/s    β”‚ 984.8 MB/s    β”‚ 984.8 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 256    158.8 Β΅s      β”‚ 158.8 Β΅s      β”‚ 158.8 Β΅s      β”‚ 158.8 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         824.9 MB/s    β”‚ 824.9 MB/s    β”‚ 824.9 MB/s    β”‚ 824.9 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 512    113 Β΅s        β”‚ 113 Β΅s        β”‚ 113 Β΅s        β”‚ 113 Β΅s        β”‚ 1       β”‚ 1
   β”‚  β”‚         1.159 GB/s    β”‚ 1.159 GB/s    β”‚ 1.159 GB/s    β”‚ 1.159 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 1024   138.2 Β΅s      β”‚ 138.2 Β΅s      β”‚ 138.2 Β΅s      β”‚ 138.2 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         948.2 MB/s    β”‚ 948.2 MB/s    β”‚ 948.2 MB/s    β”‚ 948.2 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 2048   137 Β΅s        β”‚ 137 Β΅s        β”‚ 137 Β΅s        β”‚ 137 Β΅s        β”‚ 1       β”‚ 1
   β”‚  β”‚         956.1 MB/s    β”‚ 956.1 MB/s    β”‚ 956.1 MB/s    β”‚ 956.1 MB/s    β”‚         β”‚
   β”‚  ╰─ 4096   467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 1       β”‚ 1
   β”‚            280.2 MB/s    β”‚ 280.2 MB/s    β”‚ 280.2 MB/s    β”‚ 280.2 MB/s    β”‚         β”‚
   β”œβ”€ 256                     β”‚               β”‚               β”‚               β”‚         β”‚
   β”‚  β”œβ”€ 128    263.6 Β΅s      β”‚ 263.6 Β΅s      β”‚ 263.6 Β΅s      β”‚ 263.6 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         994.1 MB/s    β”‚ 994.1 MB/s    β”‚ 994.1 MB/s    β”‚ 994.1 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 256    242.9 Β΅s      β”‚ 242.9 Β΅s      β”‚ 242.9 Β΅s      β”‚ 242.9 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.078 GB/s    β”‚ 1.078 GB/s    β”‚ 1.078 GB/s    β”‚ 1.078 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 512    238.6 Β΅s      β”‚ 238.6 Β΅s      β”‚ 238.6 Β΅s      β”‚ 238.6 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.098 GB/s    β”‚ 1.098 GB/s    β”‚ 1.098 GB/s    β”‚ 1.098 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 1024   220.6 Β΅s      β”‚ 220.6 Β΅s      β”‚ 220.6 Β΅s      β”‚ 220.6 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.188 GB/s    β”‚ 1.188 GB/s    β”‚ 1.188 GB/s    β”‚ 1.188 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 2048   261.5 Β΅s      β”‚ 261.5 Β΅s      β”‚ 261.5 Β΅s      β”‚ 261.5 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.002 GB/s    β”‚ 1.002 GB/s    β”‚ 1.002 GB/s    β”‚ 1.002 GB/s    β”‚         β”‚
   β”‚  ╰─ 4096   679.7 Β΅s      β”‚ 679.7 Β΅s      β”‚ 679.7 Β΅s      β”‚ 679.7 Β΅s      β”‚ 1       β”‚ 1
   β”‚            385.6 MB/s    β”‚ 385.6 MB/s    β”‚ 385.6 MB/s    β”‚ 385.6 MB/s    β”‚         β”‚
   β”œβ”€ 512                     β”‚               β”‚               β”‚               β”‚         β”‚
   β”‚  β”œβ”€ 128    556.2 Β΅s      β”‚ 556.2 Β΅s      β”‚ 556.2 Β΅s      β”‚ 556.2 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         942.4 MB/s    β”‚ 942.4 MB/s    β”‚ 942.4 MB/s    β”‚ 942.4 MB/s    β”‚         β”‚
   β”‚  β”œβ”€ 256    495 Β΅s        β”‚ 495 Β΅s        β”‚ 495 Β΅s        β”‚ 495 Β΅s        β”‚ 1       β”‚ 1
   β”‚  β”‚         1.058 GB/s    β”‚ 1.058 GB/s    β”‚ 1.058 GB/s    β”‚ 1.058 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 512    467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 467.6 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.121 GB/s    β”‚ 1.121 GB/s    β”‚ 1.121 GB/s    β”‚ 1.121 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 1024   491.5 Β΅s      β”‚ 491.5 Β΅s      β”‚ 491.5 Β΅s      β”‚ 491.5 Β΅s      β”‚ 1       β”‚ 1
   β”‚  β”‚         1.066 GB/s    β”‚ 1.066 GB/s    β”‚ 1.066 GB/s    β”‚ 1.066 GB/s    β”‚         β”‚
   β”‚  β”œβ”€ 2048   460 Β΅s        β”‚ 460 Β΅s        β”‚ 460 Β΅s        β”‚ 460 Β΅s        β”‚ 1       β”‚ 1
   β”‚  β”‚         1.139 GB/s    β”‚ 1.139 GB/s    β”‚ 1.139 GB/s    β”‚ 1.139 GB/s    β”‚         β”‚
   β”‚  ╰─ 4096   542.5 Β΅s      β”‚ 542.5 Β΅s      β”‚ 542.5 Β΅s      β”‚ 542.5 Β΅s      β”‚ 1       β”‚ 1
   β”‚            966.2 MB/s    β”‚ 966.2 MB/s    β”‚ 966.2 MB/s    β”‚ 966.2 MB/s    β”‚         β”‚
   ╰─ 1024                    β”‚               β”‚               β”‚               β”‚         β”‚
      β”œβ”€ 128    925 Β΅s        β”‚ 925 Β΅s        β”‚ 925 Β΅s        β”‚ 925 Β΅s        β”‚ 1       β”‚ 1
      β”‚         1.133 GB/s    β”‚ 1.133 GB/s    β”‚ 1.133 GB/s    β”‚ 1.133 GB/s    β”‚         β”‚
      β”œβ”€ 256    967.2 Β΅s      β”‚ 967.2 Β΅s      β”‚ 967.2 Β΅s      β”‚ 967.2 Β΅s      β”‚ 1       β”‚ 1
      β”‚         1.084 GB/s    β”‚ 1.084 GB/s    β”‚ 1.084 GB/s    β”‚ 1.084 GB/s    β”‚         β”‚
      β”œβ”€ 512    1.488 ms      β”‚ 1.488 ms      β”‚ 1.488 ms      β”‚ 1.488 ms      β”‚ 1       β”‚ 1
      β”‚         704.2 MB/s    β”‚ 704.2 MB/s    β”‚ 704.2 MB/s    β”‚ 704.2 MB/s    β”‚         β”‚
      β”œβ”€ 1024   1.285 ms      β”‚ 1.285 ms      β”‚ 1.285 ms      β”‚ 1.285 ms      β”‚ 1       β”‚ 1
      β”‚         815.5 MB/s    β”‚ 815.5 MB/s    β”‚ 815.5 MB/s    β”‚ 815.5 MB/s    β”‚         β”‚
      β”œβ”€ 2048   900.3 Β΅s      β”‚ 900.3 Β΅s      β”‚ 900.3 Β΅s      β”‚ 900.3 Β΅s      β”‚ 1       β”‚ 1
      β”‚         1.164 GB/s    β”‚ 1.164 GB/s    β”‚ 1.164 GB/s    β”‚ 1.164 GB/s    β”‚         β”‚
      ╰─ 4096   883.2 Β΅s      β”‚ 883.2 Β΅s      β”‚ 883.2 Β΅s      β”‚ 883.2 Β΅s      β”‚ 1       β”‚ 1
                1.187 GB/s    β”‚ 1.187 GB/s    β”‚ 1.187 GB/s    β”‚ 1.187 GB/s    β”‚         β”‚