  Neuromorphic computing uses brain-inspired principles to design circuits that
can perform computational tasks with superior power efficiency to conventional
computers. Approaches that use traditional electronic devices to create
artificial neurons and synapses are, however, currently limited by the energy
and area requirements of these components. Spintronic nanodevices, which
exploit both the magnetic and electrical properties of electrons, can increase
the energy efficiency and decrease the area of these circuits, and magnetic
tunnel junctions are of particular interest as neuromorphic computing elements
because they are compatible with standard integrated circuits and can support
multiple functionalities. Here we review the development of spintronic devices
for neuromorphic computing. We examine how magnetic tunnel junctions can serve
as synapses and neurons, and how magnetic textures, such as domain walls and
skyrmions, can function as neurons. We also explore spintronics-based
implementations of neuromorphic computing tasks, such as pattern recognition in
an associative memory, and discuss the challenges that exist in scaling up
these systems.
