Algorithm Hardware Codesign for High Performance Neuromorphic Computing