# Crossbar Arrays Parent: [[Analog In-Memory Computing]] A grid of memory cells arranged at the intersections of horizontal and vertical wires. Each cell can be programmed to a specific conductance. To multiply a vector by the matrix stored in the grid, you apply voltages to the rows (the input vector), and read currents off the columns (the output vector). Ohm's Law turns each cell into a scalar multiply. Kirchhoff's Current Law sums all the multiplies along a column for free, in a single physical step. This is matrix multiplication performed at the speed of electricity, with no data movement between a memory and a compute unit. It is the single reason analog in-memory computing exists as a serious architectural alternative. A conventional GPU spends most of its energy and time moving weights between DRAM and compute; a crossbar dissolves that problem by making the memory the compute. The practical constraints are severe. The cells are analog, which means they are noisy, drift with temperature and time, and have limited write endurance. The bit-precision achievable per cell is typically 4-8 bits, which is fine for inference if you accept some accuracy loss but not enough for training. Large matrices must be tiled across multiple arrays, reintroducing some data movement. And the digital-to-analog and analog-to-digital converters at the periphery eat a significant fraction of the energy advantage — often the difference between a paper claim and a production number. ## Related - [[Analog-Aware Training]] - [[Conductance Noise and Drift]] - [[von Neumann Bottleneck]] --- Tags: #hardware #analog #compute #kp