TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Conway's FPGA game of logical life with Neural Nets

3 点作者 daly将近 2 年前
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

mikewarot将近 2 年前
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>