Abstract:
In recent years, emerging applications such as artificial intelligence, big data, and the Internet of Things have placed high demands on both the performance and energy efficiency of computing systems. Traditional von Neumann architectures face limitations due to the “memory wall” and “power wall,” making it increasingly difficult to meet the rapidly growing computational requirements. Computing-in-memory (CIM), as a novel computing paradigm, embeds computation within memory units, effectively reducing data movement overhead. This study provides a systematic survey of programming models for CIM. First, it introduces the fundamental principles and representative architectures of near-memory computing (NMC) and in-memory computing (IMC), and reviews notable works from both academia and industry. Based on this, the study analyzes the challenges faced by CIM programming models from the perspectives of task partitioning, data management, and parallel scheduling. At the same time, it compares NMC and IMC in terms of abstraction levels, interface design, and applicable scenarios. Finally, the study summarizes current shortcomings in programming models, including limitations in abstraction, cross-platform portability, automated mapping, and debugging tools, and discusses future directions. The goal is to provide a reference for further research and support the practical adoption of CIM technologies in artificial intelligence and high-performance computing.