“…One such approach is processing-in-memory (PIM) [74][75][76][77][78][79][80][81][82][83][84][85], where computation is (1) placed near 2D [69, or 3D [45,63,64,67, memory arrays (processing-nearmemory, PNM) or (2) performed using the memory arrays themselves (processingusing-memory, PUM) [65, 70-72, 135, 167-203]. 1 PNM and PUM can be implemented using different memory technologies [75], including SRAM [71,99,107,110,177,178], DRAM [45, 64, 87, 100, 111, 123, 125, 128, 131-135, 142, 143, 146, 152, 157, 193, 195, 196], and resistive RAM (ReRAM) [65,70,121,174,175,183,188,189,199,200,202]. Independent of the memory technology, PIM allows NNs to enjoy higher memory bandwidth, shorter memory access latency, and lower energy per bit [75].…”