1957年,FORTRAN编程语言问世,它改变了科学家和工程师编写计算机程序的方式。借助数组——这种便于描述数据运算的数值集合,复杂的计算 suddenly 能以简洁、类数学的符号来表达。这一简单的理念演变成了如今的“张量”,通过NumPy和PyTorch等现代框架,为世界上许多最先进的人工智能和科学计算系统提供支持。
传统的张量编程假设所有数据都存在于整数网格中——例如,存储在坐标(1,2)或(5,7)处的值。这一假设促成了硬件和软件领域数十年的优化。如今,数据位于整数网格上的张量在编程中似乎无处不在,并且是许多计算范式(如机器学习和科学计算)的基础。但许多现实世界的数据集并不完全符合这种网格模式。3D传感中的点云、计算机图形学中的几何模型或物理学中的数值模拟通常存在于连续世界中,其中坐标可以取任何实数值。为了处理这些数据,研究人员长期以来一直依赖复杂的数据结构以及与主流张量框架分开编写的冗长且难以维护的代码。
如今,麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员找到了一种方法,将这些连续数据集带入人们熟悉的张量世界。他们的新框架名为连续张量抽象(CTA),允许在实数坐标下存储和访问数据——例如,使程序员能够编写A[3.14],而不仅仅是A[3]。该框架还引入了一种名为连续爱因斯坦求和的新语言,它是爱因斯坦求和符号的推广形式。爱因斯坦求和符号在传统张量编程中被广泛使用,最初由阿尔伯特·爱因斯坦提出,这种新语言能够以简洁、类数学的形式表达连续张量之间的计算。
将连续数据表示为数组似乎是不可能的——毕竟,实数是无限的,而数组的大小是有限的。麻省理工学院的团队通过一个名为分段常数张量的巧妙概念克服了这一挑战,该概念将连续空间划分为具有相同值的可管理区域。这类似于通过从数百万张不同颜色的普通纸上剪切和粘贴矩形来制作一幅大型拼贴画(例如,横幅中描绘的皮特·蒙德里安的艺术):基本信息得以保留,但形式是硬件可以处理的。
这种方法使得以前繁琐的算法能够用单行简洁的张量代码来表达。从分析3D激光雷达扫描数据,到建模流体流动,再到模拟物理系统,这些曾经需要数千行专门逻辑的任务,现在都可以用人们熟悉的高级数学Einsum语言来编写,并在现代加速器上高效执行。
“过去需要2000行代码编写的程序,用我们的语言一行就能完成,”麻省理工学院电气工程与计算机科学教授、CSAIL首席研究员、该研究的资深作者萨曼·阿马拉辛格说。“对于任何涉及连续数据的任务,我们的研究表明,张量编程能帮助人们以比科学家们之前认为的更多样化的方式来表示这类程序。”另一位资深作者、麻省理工学院教授乔尔·埃默——同时也是CSAIL的首席研究员和英伟达的高级杰出研究科学家——补充道:“连续爱因斯坦求和在直观上与在规则网格上定义的张量上日益流行的爱因斯坦求和工作方式相同,这使得程序员很容易采用这种新的扩展。”
在一项案例研究中,麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员发现,CTA能够帮助用户搜索二维空间,例如在谷歌地图等地理信息系统(GIS)中常见的空间。该团队使用了两种不同的查询方法:框选搜索,即系统检索用户指定正方形区域内的所有点;以及半径搜索,即系统查找用户勾勒的圆形范围内的数据点。在这些地理空间测试中,CTA生成的搜索程序代码行数比帮助用户测量和处理形状的Python工具Shapely少62倍。在半径搜索方面,CSAIL的系统速度也快了约9倍。
在编程机器学习算法以分析3D点云搜索中的模式时,CTA展现出了更为惊人的改进。虽然实现“核点卷积”需要超过2300行代码,但CSAIL的方法仅需23行代码就能完成相同的任务——换句话说,简洁了101倍。
该系统还测试了在人类基因组的特定染色体区域定位特征的能力。CTA的巧妙之处帮助执行了这些搜索查询,生成的代码比三个可比较的基准短18倍,同时平均速度略快。
另一项案例研究展示了CTA在3D深度学习任务中可能具有的实用性,这些任务能帮助机器人在抓取物体前看清周围环境。特别是,他们的系统在计算神经辐射场(NeRF)内的数据点方面表现出色,神经辐射场是一种利用2D图像构建3D场景的深度学习方法。在这项任务中,该系统的速度几乎是同类PyTorch工具的两倍,同时代码量减少了约70行。
每项实验都揭示了张量如何加速我们对各种复杂应用的分析。“此前,张量领域和非张量领域在很大程度上是孤立发展的,各自独立开发算法和数据结构,”主要作者Jaeyeon Won(SM ‘23届)表示,他是麻省理工学院计算机科学与人工智能实验室(CSAIL)的博士生,由Emer和Amarasinghe共同指导。“通过我们的语言,我们发现许多几何应用都能简洁而精确地用连续爱因斯坦求和(Einsums)来表达,同时还能受益于稀疏张量编译器中使用的相同性能优化。”
“我们认为这起到了连接两个世界的桥梁作用,” Won补充道。“此外,我们旨在探索如何通过连续张量符号的视角,重新解读并应用来自非张量世界的优化——例如,光线追踪核心是否能加速张量程序。”
CTA通过将张量编程的能力扩展到连续的无限空间中,为其开辟了一条令人振奋的道路。Won、Emer和Amarasinghe的下一步可能是探索该领域中更复杂的数据结构,这些结构使用变量而非常量来表示某个区域内特定点的值。进而,他们可以在深度学习和计算机图形学中尝试更复杂的应用,从而更深入地研究复杂的世界和科学可视化。
Won、Emer和Amarasinghe与佐治亚理工学院助理教授Willow Ahrens(2019年理学硕士、2024年博士)以及计算机科学与人工智能实验室的附属人员——博士生Teodoro Fields Collin(2025年理学硕士)共同撰写了这篇论文。他们的研究工作部分得到了英特尔、美国国家科学基金会、美国国防高级研究计划局以及美国能源部预测科学学术联盟计划(PSAAP)的支持。他们于10月在新加坡举行的面向对象编程、系统、语言与应用会议(OOPSLA)上展示了自己的研究成果。
36

被折叠的 条评论
为什么被折叠?



