It becomes increasingly difficult to improve traditional digital processors' speed-energy efficiency because of transistor scaling limitations and the von Neumann architecture. Computing systems augmented with emerging devices such as resistance switches (also known as memristors) offer an attractive solution. Built into large-scale crossbar arrays, they perform in-memory computing by utilizing physical laws, such as Ohm's law for multiplication and Kirchhoff's current law for accumulation. The current readout at all columns is finished simultaneously regardless of the array size, offering massive parallelism in vector-matrix multiplication and hence high computing throughput. The ability to directly interface with analog signals from sensors without analog/digital conversion could further reduce the processing time and energy overhead. In this talk, we will first introduce a high-performance analog resistance switch that meets most requirements for in-memory computing. We will then discuss the challenges and solutions in integrating these devices into large-scale high-density arrays for machine intelligence and other emerging applications.