TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Conway's FPGA game of logical life with Neural Nets

3 pointsby dalyalmost 2 years ago
Consider Conway&#x27;s Game of Life. Each cell can be born, live, or die. That is a 1-bit gate. The gates change based on a universal &quot;clock&quot;, i.e. once per cycle.<p>It has already been shown that Conway&#x27;s game of life is Turing complete. People have created a whole CPU in the game.<p>Now assume that each cell can be implemented as a 2-bit lookup table. Clearly one can create a game of life simulation where each 2-bit table either computes a 0 or a 1. That would be an exact simulation of Conway&#x27;s game.<p>A generalization of the game would be that each cell can accept 2 input bits and would compute a bit output bit using a lookup table. Thus a cell could output compute any possible combination of 2 bits. A cell could compute an XOR, AND, OR, NOT, 0, 1, etc. Indeed, by ganging together multiple cells any combinatorial logic function could be implemented.<p>A second generalization is to create &quot;clock domains&quot; so each cell only computes when a &quot;clock&quot; signal arrives. Assume that the clock signal is not universal but that many clocks exist that control a subset of the cells (clock domains).<p>The cells have &quot;memory&quot; as they continue to assert their output bit at every clock tick.<p>Cells can be born, live, die, or change their lookup table value based on the rules.<p>Now you have a &quot;Cellular FPGA&quot;. But this FPGA can grow and adapt dynamically rather than being pre-programmed.<p>What are the new Conway&#x27;s rules for such a simulation?<p>Now consider what happens when we try to architecture a Neural Network on this cellular FPGA. Each &quot;neuron&quot; is a combinatorial logic &quot;cell&quot; that computes a weighted function of its inputs and bias. The Neural Net can adapt because weighted logic &quot;cells&quot; that fall to 0 weights can simply &quot;die&quot; and be reborn as something else in a circuit being &quot;born&quot; later.<p>Now consider creating real, physical wafer-scale hardware that computes this way using a whole-wafer &quot;Conway chip&quot;. The whole physical chip &quot;learns&quot;. https:&#x2F;&#x2F;www.cerebras.net&#x2F;blog&#x2F;wafer-scale-processors-the-time-has-come&#x2F;

1 comment

mikewarotalmost 2 years ago
Well, you can use a bitgrid (which is an array of 4 input&#x2F;4 output bit lookup tables, clocked like the colors of a chess board) to implement the game of life. (Someone else did it for me!)[1]<p>There are several nice properties of a bitgrid, which include fault tolerance (you can route around bad cells), easy security guarantees (as you can wall off sections of &quot;code&quot;), and almost trivial routing (as opposed to the huge times that FPGAs take to route, due to heterogeneity of their hardware) If you need to rotate, invert, or even interleave designs, you can.<p>I&#x27;ve been coding up a simulator in Pascal[2]. It doesn&#x27;t do much, but it executes at 25 nSec&#x2F;cell in emulation on my machine. I can execute a 32x32 bitgrid at about 40 khz, <i>almost</i> fast enough to play with audio.<p>A real bitgrid computer (in a cluster) should be capable of sustaining Exaflop performance, but it&#x27;ll require a whole new programming paradigm.<p>[1] <a href="https:&#x2F;&#x2F;esolangs.org&#x2F;wiki&#x2F;Bitgrid#Game_of_Life" rel="nofollow noreferrer">https:&#x2F;&#x2F;esolangs.org&#x2F;wiki&#x2F;Bitgrid#Game_of_Life</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;mikewarot&#x2F;Bitgrid">https:&#x2F;&#x2F;github.com&#x2F;mikewarot&#x2F;Bitgrid</a>