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/sframe size\texttt{Gen/s}\cdot\texttt{frame size}.

#128 × 128

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

#Baseline

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

#Recording

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

#256 × 256

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

#Baseline

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

#Recording

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

#512 × 512

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

#Baseline

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

#Recording

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

#1024 × 1024

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

#Baseline

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

#Recording

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

#2048 × 2048

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

#Baseline

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

#Recording

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

#4096 × 4096

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

#Baseline

Bit packing Gen/s Cell updates/s
11 4.02k\sim4.02\,\text{k} 67.4B\sim67.4\,\text{B}
22 3.3k\sim3.3\,\text{k} 55.4B\sim55.4\,\text{B}
44 3.22k\sim3.22\,\text{k} 54B\sim54\,\text{B}
88 3.21k\sim3.21\,\text{k} 53.9B\sim53.9\,\text{B}
1616 3.01k\sim3.01\,\text{k} 50.5B\sim50.5\,\text{B}
3232 3.02k\sim3.02\,\text{k} 50.7B\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.58B\sim5.58\,\text{B}
22 4 MiB4\text{ MiB} 134\sim134 538 MiB/s\sim538\text{ MiB/s} 2.25B\sim2.25\,\text{B}
44 8 MiB8\text{ MiB} 73.6\sim73.6 589 MiB/s\sim589\text{ MiB/s} 1.23B\sim1.23\,\text{B}
88 16 MiB16\text{ MiB} 38.4\sim38.4 614 MiB/s\sim614\text{ MiB/s} 644M\sim644\,\text{M}
1616 32 MiB32\text{ MiB} 20.8\sim20.8 666 MiB/s\sim666\text{ MiB/s} 349M\sim349\,\text{M}
3232 64 MiB64\text{ MiB} 10.4\sim10.4 666 MiB/s\sim666\text{ MiB/s} 174M\sim174\,\text{M}

#8192 × 8192

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

#Baseline

Bit packing Gen/s Cell updates/s
11 995\sim995 66.7B\sim66.7\,\text{B}
22 821\sim821 55.1B\sim55.1\,\text{B}
44 799\sim799 53.6B\sim53.6\,\text{B}
88 790\sim790 53B\sim53\,\text{B}
1616 746\sim746 50.1B\sim50.1\,\text{B}
3232 744\sim744 49.9B\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.58B\sim5.58\,\text{B}
22 16 MiB16\text{ MiB} 33.6\sim33.6 538 MiB/s\sim538\text{ MiB/s} 2.25B\sim2.25\,\text{B}
44 32 MiB32\text{ MiB} 18.4\sim18.4 589 MiB/s\sim589\text{ MiB/s} 1.23B\sim1.23\,\text{B}
88 64 MiB64\text{ MiB} 9.6\sim9.6 614 MiB/s\sim614\text{ MiB/s} 644M\sim644\,\text{M}
1616 128 MiB128\text{ MiB} 5\sim5 640 MiB/s\sim640\text{ MiB/s} 336M\sim336\,\text{M}
3232 256 MiB256\text{ MiB} 2.6\sim2.6 666 MiB/s\sim666\text{ MiB/s} 174M\sim174\,\text{M}

#16384 × 16384

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

#Baseline

Bit packing Gen/s Cell updates/s
11 256\sim256 68.7B\sim68.7\,\text{B}
22 206\sim206 55.4B\sim55.4\,\text{B}
44 199\sim199 53.3B\sim53.3\,\text{B}
88 199\sim199 53.4B\sim53.4\,\text{B}
1616 187\sim187 50.1B\sim50.1\,\text{B}
3232 186\sim186 50B\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.37B\sim5.37\,\text{B}
22 64 MiB64\text{ MiB} 8.4\sim8.4 538 MiB/s\sim538\text{ MiB/s} 2.25B\sim2.25\,\text{B}
44 128 MiB128\text{ MiB} 4.4\sim4.4 563 MiB/s\sim563\text{ MiB/s} 1.18B\sim1.18\,\text{B}
88 256 MiB256\text{ MiB} 2.4\sim2.4 614 MiB/s\sim614\text{ MiB/s} 644M\sim644\,\text{M}
1616 512 MiB512\text{ MiB} 1\sim1 512 MiB/s\sim512\text{ MiB/s} 268M\sim268\,\text{M}
3232 1 GiB1\text{ GiB} 0.6\sim0.6 614 MiB/s\sim614\text{ MiB/s} 161M\sim161\,\text{M}

#32768 × 32768

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

#Baseline

Bit packing Gen/s Cell updates/s
11 63.3\sim63.3 68B\sim68\,\text{B}
22 51.5\sim51.5 55.3B\sim55.3\,\text{B}
44 49.3\sim49.3 52.9B\sim52.9\,\text{B}
88 49.3\sim49.3 52.9B\sim52.9\,\text{B}
1616 45.2\sim45.2 48.5B\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.58B\sim5.58\,\text{B}
22 256 MiB256\text{ MiB} 2.3\sim2.3 589 MiB/s\sim589\text{ MiB/s} 2.47B\sim2.47\,\text{B}
44 512 MiB512\text{ MiB} 1\sim1 512 MiB/s\sim512\text{ MiB/s} 1.07B\sim1.07\,\text{B}
88 1 GiB1\text{ GiB} 0.6\sim0.6 614 MiB/s\sim614\text{ MiB/s} 644M\sim644\,\text{M}

#65536 × 65536

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

#Baseline

Bit packing Gen/s Cell updates/s
11 15.8\sim15.8 67.9B\sim67.9\,\text{B}
22 13.2\sim13.2 56.7B\sim56.7\,\text{B}
44 13\sim13 55.8B\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.29B\sim4.29\,\text{B}
22 1 GiB1\text{ GiB} 0.6\sim0.6 614 MiB/s\sim614\text{ MiB/s} 2.58B\sim2.58\,\text{B}

#131072 × 131072

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

#Baseline

Bit packing Gen/s Cell updates/s
11 4.8\sim4.8 82.5B\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