impossible to exploit. The resulting high computation density drives the performance gains we see from stochastic digital circuits, narrowing the efficiency gap with neural computation by multiple orders of magnitude.

Our approach is fundamentally different from existing approaches for reliable computation with unreliable components[@neumanncomputer; @akgulprobabilistic; @gaines1969stochastic], which view randomness as either a source of error whose impact needs to be mitigated or as a mechanism for approximating arithmetic calculations. Our combinational circuits are intentionally stochastic, and we depend on them to produce exact samples from the probability distributions they represent. Our approach is also different from and complementary to classic analog[@mead1990neuromorphic] and modern mixed-signal[@choudhary2012silicon] neuromorphic computing approaches: stochastic digital primitives and architectures could potentially be implemented using neuromorphic techniques, providing a means of applying these designs to problems of Bayesian inference.

In theory, stochastic digital circuits could be used to solve any computable Bayesian inference problem with a computable likelihood[@afrcomputable] by implementing a Markov chain for inference in a Turing-complete probabilistic programming language[@mansinghka2009natively; @Goodman:2008tb]. Stochastic ciruits can thus implement inference and learning techniques for diverse intelligent computing architectures, including both probabilistic models defined over structured, symbolic representations[@tenenbaumgrow] as well as sparse, distributed, connectionist representations[@SalHinton07]. In contrast, hardware accelerators for belief 