Game of Life: Tribes

#Benchmark Results

The normalized source data for these tables is stored in benchmark/benchmark-results.csv, where the full benchmark values can be checked directly.

The tables report the best observed run out of 33 repeats. For this kind of benchmark, the best run is often the most useful estimate of how fast the device can execute the workload when background interference is lowest. Slower repeats can still be useful to inspect, but they often include unrelated scheduling, browser, or system activity rather than a slower simulation engine. Since this table reports throughput, the selected value is the highest Gen/s\texttt{Gen/s} observed for that row.

Columns:

  • Bit packing: bits used to store each cell in the simulation frame.
  • Frame size: recording-only raw size of 11 simulation frame at that grid size and packing.
  • Gen/s: best observed generations per second during the post-warm-up max-speed window.
  • Cell updates/s: Gen/s\texttt{Gen/s} multiplied by the number of cells in the actual measured grid.
  • Data volume/s: recording-only raw frame volume, computed as Gen/s⋅frame size\texttt{Gen/s}\cdot\texttt{frame size}.

#128 × 128

The full grid contains 16 384\mathbf{16\,384} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼176 k\sim176\,\text{k} ∼2.88 B\sim2.88\,\text{B}
22 ∼307 k\sim307\,\text{k} ∼5.04 B\sim5.04\,\text{B}
44 ∼313 k\sim313\,\text{k} ∼5.13 B\sim5.13\,\text{B}
88 ∼523 k\sim523\,\text{k} ∼8.56 B\sim8.56\,\text{B}
1616 ∼523 k\sim523\,\text{k} ∼8.56 B\sim8.56\,\text{B}
3232 ∼523 k\sim523\,\text{k} ∼8.56 B\sim8.56\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 2 KiB2\text{ KiB} ∼155 k\sim155\,\text{k} ∼302 MiB/s\sim302\text{ MiB/s} ∼2.53 B\sim2.53\,\text{B}
22 4 KiB4\text{ KiB} ∼123 k\sim123\,\text{k} ∼480 MiB/s\sim480\text{ MiB/s} ∼2.01 B\sim2.01\,\text{B}
44 8 KiB8\text{ KiB} ∼70.1 k\sim70.1\,\text{k} ∼548 MiB/s\sim548\text{ MiB/s} ∼1.15 B\sim1.15\,\text{B}
88 16 KiB16\text{ KiB} ∼38.9 k\sim38.9\,\text{k} ∼607 MiB/s\sim607\text{ MiB/s} ∼637 M\sim637\,\text{M}
1616 32 KiB32\text{ KiB} ∼22.1 k\sim22.1\,\text{k} ∼691 MiB/s\sim691\text{ MiB/s} ∼362 M\sim362\,\text{M}
3232 64 KiB64\text{ KiB} ∼11.5 k\sim11.5\,\text{k} ∼717 MiB/s\sim717\text{ MiB/s} ∼188 M\sim188\,\text{M}

#256 × 256

The full grid contains 65 536\mathbf{65\,536} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼174 k\sim174\,\text{k} ∼11.4 B\sim11.4\,\text{B}
22 ∼305 k\sim305\,\text{k} ∼20 B\sim20\,\text{B}
44 ∼313 k\sim313\,\text{k} ∼20.5 B\sim20.5\,\text{B}
88 ∼313 k\sim313\,\text{k} ∼20.5 B\sim20.5\,\text{B}
1616 ∼418 k\sim418\,\text{k} ∼27.4 B\sim27.4\,\text{B}
3232 ∼523 k\sim523\,\text{k} ∼34.3 B\sim34.3\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 8 KiB8\text{ KiB} ∼75.4 k\sim75.4\,\text{k} ∼589 MiB/s\sim589\text{ MiB/s} ∼4.94 B\sim4.94\,\text{B}
22 16 KiB16\text{ KiB} ∼36.4 k\sim36.4\,\text{k} ∼569 MiB/s\sim569\text{ MiB/s} ∼2.39 B\sim2.39\,\text{B}
44 32 KiB32\text{ KiB} ∼19.7 k\sim19.7\,\text{k} ∼614 MiB/s\sim614\text{ MiB/s} ∼1.29 B\sim1.29\,\text{B}
88 64 KiB64\text{ KiB} ∼10.2 k\sim10.2\,\text{k} ∼640 MiB/s\sim640\text{ MiB/s} ∼671 M\sim671\,\text{M}
1616 128 KiB128\text{ KiB} ∼5.53 k\sim5.53\,\text{k} ∼691 MiB/s\sim691\text{ MiB/s} ∼362 M\sim362\,\text{M}
3232 256 KiB256\text{ KiB} ∼2.76 k\sim2.76\,\text{k} ∼691 MiB/s\sim691\text{ MiB/s} ∼181 M\sim181\,\text{M}

#512 × 512

The full grid contains 262 144\mathbf{262\,144} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼138 k\sim138\,\text{k} ∼36.2 B\sim36.2\,\text{B}
22 ∼146 k\sim146\,\text{k} ∼38.3 B\sim38.3\,\text{B}
44 ∼156 k\sim156\,\text{k} ∼41 B\sim41\,\text{B}
88 ∼165 k\sim165\,\text{k} ∼43.3 B\sim43.3\,\text{B}
1616 ∼167 k\sim167\,\text{k} ∼43.8 B\sim43.8\,\text{B}
3232 ∼185 k\sim185\,\text{k} ∼48.6 B\sim48.6\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 32 KiB32\text{ KiB} ∼20.5 k\sim20.5\,\text{k} ∼640 MiB/s\sim640\text{ MiB/s} ∼5.37 B\sim5.37\,\text{B}
22 64 KiB64\text{ KiB} ∼9.01 k\sim9.01\,\text{k} ∼563 MiB/s\sim563\text{ MiB/s} ∼2.36 B\sim2.36\,\text{B}
44 128 KiB128\text{ KiB} ∼4.71 k\sim4.71\,\text{k} ∼589 MiB/s\sim589\text{ MiB/s} ∼1.23 B\sim1.23\,\text{B}
88 256 KiB256\text{ KiB} ∼2.56 k\sim2.56\,\text{k} ∼640 MiB/s\sim640\text{ MiB/s} ∼671 M\sim671\,\text{M}
1616 512 KiB512\text{ KiB} ∼1.28 k\sim1.28\,\text{k} ∼640 MiB/s\sim640\text{ MiB/s} ∼336 M\sim336\,\text{M}
3232 1 MiB1\text{ MiB} ∼666\sim666 ∼666 MiB/s\sim666\text{ MiB/s} ∼174 M\sim174\,\text{M}

#1024 × 1024

The full grid contains 1 048 576\mathbf{1\,048\,576} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼53.8 k\sim53.8\,\text{k} ∼56.4 B\sim56.4\,\text{B}
22 ∼44.8 k\sim44.8\,\text{k} ∼46.9 B\sim46.9\,\text{B}
44 ∼45.4 k\sim45.4\,\text{k} ∼47.6 B\sim47.6\,\text{B}
88 ∼48.2 k\sim48.2\,\text{k} ∼50.5 B\sim50.5\,\text{B}
1616 ∼45.9 k\sim45.9\,\text{k} ∼48.1 B\sim48.1\,\text{B}
3232 ∼43.3 k\sim43.3\,\text{k} ∼45.4 B\sim45.4\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 128 KiB128\text{ KiB} ∼5.32 k\sim5.32\,\text{k} ∼666 MiB/s\sim666\text{ MiB/s} ∼5.58 B\sim5.58\,\text{B}
22 256 KiB256\text{ KiB} ∼2.36 k\sim2.36\,\text{k} ∼589 MiB/s\sim589\text{ MiB/s} ∼2.47 B\sim2.47\,\text{B}
44 512 KiB512\text{ KiB} ∼1.23 k\sim1.23\,\text{k} ∼614 MiB/s\sim614\text{ MiB/s} ∼1.29 B\sim1.29\,\text{B}
88 1 MiB1\text{ MiB} ∼614\sim614 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}
1616 2 MiB2\text{ MiB} ∼320\sim320 ∼640 MiB/s\sim640\text{ MiB/s} ∼336 M\sim336\,\text{M}
3232 4 MiB4\text{ MiB} ∼166\sim166 ∼666 MiB/s\sim666\text{ MiB/s} ∼174 M\sim174\,\text{M}

#2048 × 2048

The full grid contains 4 194 304\mathbf{4\,194\,304} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼14.9 k\sim14.9\,\text{k} ∼62.6 B\sim62.6\,\text{B}
22 ∼13.1 k\sim13.1\,\text{k} ∼54.9 B\sim54.9\,\text{B}
44 ∼13 k\sim13\,\text{k} ∼54.4 B\sim54.4\,\text{B}
88 ∼12.7 k\sim12.7\,\text{k} ∼53.4 B\sim53.4\,\text{B}
1616 ∼12 k\sim12\,\text{k} ∼50.4 B\sim50.4\,\text{B}
3232 ∼12 k\sim12\,\text{k} ∼50.4 B\sim50.4\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 512 KiB512\text{ KiB} ∼1.28 k\sim1.28\,\text{k} ∼640 MiB/s\sim640\text{ MiB/s} ∼5.37 B\sim5.37\,\text{B}
22 1 MiB1\text{ MiB} ∼563\sim563 ∼563 MiB/s\sim563\text{ MiB/s} ∼2.36 B\sim2.36\,\text{B}
44 2 MiB2\text{ MiB} ∼307\sim307 ∼614 MiB/s\sim614\text{ MiB/s} ∼1.29 B\sim1.29\,\text{B}
88 4 MiB4\text{ MiB} ∼154\sim154 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}
1616 8 MiB8\text{ MiB} ∼80\sim80 ∼640 MiB/s\sim640\text{ MiB/s} ∼336 M\sim336\,\text{M}
3232 16 MiB16\text{ MiB} ∼41.6\sim41.6 ∼666 MiB/s\sim666\text{ MiB/s} ∼174 M\sim174\,\text{M}

#4096 × 4096

The full grid contains 16 777 216\mathbf{16\,777\,216} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼4.02 k\sim4.02\,\text{k} ∼67.4 B\sim67.4\,\text{B}
22 ∼3.3 k\sim3.3\,\text{k} ∼55.4 B\sim55.4\,\text{B}
44 ∼3.22 k\sim3.22\,\text{k} ∼54 B\sim54\,\text{B}
88 ∼3.21 k\sim3.21\,\text{k} ∼53.9 B\sim53.9\,\text{B}
1616 ∼3.01 k\sim3.01\,\text{k} ∼50.5 B\sim50.5\,\text{B}
3232 ∼3.02 k\sim3.02\,\text{k} ∼50.7 B\sim50.7\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 2 MiB2\text{ MiB} ∼333\sim333 ∼666 MiB/s\sim666\text{ MiB/s} ∼5.58 B\sim5.58\,\text{B}
22 4 MiB4\text{ MiB} ∼134\sim134 ∼538 MiB/s\sim538\text{ MiB/s} ∼2.25 B\sim2.25\,\text{B}
44 8 MiB8\text{ MiB} ∼73.6\sim73.6 ∼589 MiB/s\sim589\text{ MiB/s} ∼1.23 B\sim1.23\,\text{B}
88 16 MiB16\text{ MiB} ∼38.4\sim38.4 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}
1616 32 MiB32\text{ MiB} ∼20.8\sim20.8 ∼666 MiB/s\sim666\text{ MiB/s} ∼349 M\sim349\,\text{M}
3232 64 MiB64\text{ MiB} ∼10.4\sim10.4 ∼666 MiB/s\sim666\text{ MiB/s} ∼174 M\sim174\,\text{M}

#8192 × 8192

The full grid contains 67 108 864\mathbf{67\,108\,864} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼995\sim995 ∼66.7 B\sim66.7\,\text{B}
22 ∼821\sim821 ∼55.1 B\sim55.1\,\text{B}
44 ∼799\sim799 ∼53.6 B\sim53.6\,\text{B}
88 ∼790\sim790 ∼53 B\sim53\,\text{B}
1616 ∼746\sim746 ∼50.1 B\sim50.1\,\text{B}
3232 ∼744\sim744 ∼49.9 B\sim49.9\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 8 MiB8\text{ MiB} ∼83.2\sim83.2 ∼666 MiB/s\sim666\text{ MiB/s} ∼5.58 B\sim5.58\,\text{B}
22 16 MiB16\text{ MiB} ∼33.6\sim33.6 ∼538 MiB/s\sim538\text{ MiB/s} ∼2.25 B\sim2.25\,\text{B}
44 32 MiB32\text{ MiB} ∼18.4\sim18.4 ∼589 MiB/s\sim589\text{ MiB/s} ∼1.23 B\sim1.23\,\text{B}
88 64 MiB64\text{ MiB} ∼9.6\sim9.6 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}
1616 128 MiB128\text{ MiB} ∼5\sim5 ∼640 MiB/s\sim640\text{ MiB/s} ∼336 M\sim336\,\text{M}
3232 256 MiB256\text{ MiB} ∼2.6\sim2.6 ∼666 MiB/s\sim666\text{ MiB/s} ∼174 M\sim174\,\text{M}

#16384 × 16384

The full grid contains 268 435 456\mathbf{268\,435\,456} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼256\sim256 ∼68.7 B\sim68.7\,\text{B}
22 ∼206\sim206 ∼55.4 B\sim55.4\,\text{B}
44 ∼199\sim199 ∼53.3 B\sim53.3\,\text{B}
88 ∼199\sim199 ∼53.4 B\sim53.4\,\text{B}
1616 ∼187\sim187 ∼50.1 B\sim50.1\,\text{B}
3232 ∼186\sim186 ∼50 B\sim50\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 32 MiB32\text{ MiB} ∼20\sim20 ∼640 MiB/s\sim640\text{ MiB/s} ∼5.37 B\sim5.37\,\text{B}
22 64 MiB64\text{ MiB} ∼8.4\sim8.4 ∼538 MiB/s\sim538\text{ MiB/s} ∼2.25 B\sim2.25\,\text{B}
44 128 MiB128\text{ MiB} ∼4.4\sim4.4 ∼563 MiB/s\sim563\text{ MiB/s} ∼1.18 B\sim1.18\,\text{B}
88 256 MiB256\text{ MiB} ∼2.4\sim2.4 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}
1616 512 MiB512\text{ MiB} ∼1\sim1 ∼512 MiB/s\sim512\text{ MiB/s} ∼268 M\sim268\,\text{M}
3232 1 GiB1\text{ GiB} ∼0.6\sim0.6 ∼614 MiB/s\sim614\text{ MiB/s} ∼161 M\sim161\,\text{M}

#32768 × 32768

The full grid contains 1 073 741 824\mathbf{1\,073\,741\,824} cells.
1616-bit packing uses 32 768×32 767\mathbf{32\,768\times32\,767} instead, for 1 073 709 056\mathbf{1\,073\,709\,056} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼63.3\sim63.3 ∼68 B\sim68\,\text{B}
22 ∼51.5\sim51.5 ∼55.3 B\sim55.3\,\text{B}
44 ∼49.3\sim49.3 ∼52.9 B\sim52.9\,\text{B}
88 ∼49.3\sim49.3 ∼52.9 B\sim52.9\,\text{B}
1616 ∼45.2\sim45.2 ∼48.5 B\sim48.5\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 128 MiB128\text{ MiB} ∼5.2\sim5.2 ∼666 MiB/s\sim666\text{ MiB/s} ∼5.58 B\sim5.58\,\text{B}
22 256 MiB256\text{ MiB} ∼2.3\sim2.3 ∼589 MiB/s\sim589\text{ MiB/s} ∼2.47 B\sim2.47\,\text{B}
44 512 MiB512\text{ MiB} ∼1\sim1 ∼512 MiB/s\sim512\text{ MiB/s} ∼1.07 B\sim1.07\,\text{B}
88 1 GiB1\text{ GiB} ∼0.6\sim0.6 ∼614 MiB/s\sim614\text{ MiB/s} ∼644 M\sim644\,\text{M}

#65536 × 65536

The full grid contains 4 294 967 296\mathbf{4\,294\,967\,296} cells.
44-bit packing uses 65 536×65 535\mathbf{65\,536\times65\,535} instead, for 4 294 901 760\mathbf{4\,294\,901\,760} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼15.8\sim15.8 ∼67.9 B\sim67.9\,\text{B}
22 ∼13.2\sim13.2 ∼56.7 B\sim56.7\,\text{B}
44 ∼13\sim13 ∼55.8 B\sim55.8\,\text{B}

#Recording

Bit packing Frame size Gen/s Data volume/s Cell updates/s
11 512 MiB512\text{ MiB} ∼1\sim1 ∼512 MiB/s\sim512\text{ MiB/s} ∼4.29 B\sim4.29\,\text{B}
22 1 GiB1\text{ GiB} ∼0.6\sim0.6 ∼614 MiB/s\sim614\text{ MiB/s} ∼2.58 B\sim2.58\,\text{B}

#131072 × 131072

The full grid contains 17 179 869 184\mathbf{17\,179\,869\,184} cells.
11-bit packing uses 131 072×131 071\mathbf{131\,072\times131\,071} instead, for 17 179 738 112\mathbf{17\,179\,738\,112} cells.

#Baseline

Bit packing Gen/s Cell updates/s
11 ∼4.8\sim4.8 ∼82.5 B\sim82.5\,\text{B}

#Recording

No recording run could be recorded for this grid size because it is too large to enable recording.

Game of Life: Tribes · Simulation v1.0.0 · Open source