返回
ParDiff: Efficiently Parallelizing Reverse-Mode Automatic Differentiation with Direct Indexing
DOI:10.1145/3774934.3786418.png)
摘要
En 中文
自动微分(AD)是一种通过系统应用链式法则计算数值程序导数的技术,在机器学习、仿真和控制系统中发挥着关键作用。然而,由于胶带(用于存储中间变量的数据结构)与求和之间的冲突,并行化微分程序仍然是一个重大挑战:微分过程固有地引入了跨线程的求和模式,这需要昂贵得令人望而却步的原子操作;而传统的胶带设计将数据检索与程序的控制流紧密耦合,阻碍了消除这些昂贵依赖关系所需的代码重构。为解决这些挑战,我们提出了一种新型AD系统ParDiff,采用直接索引胶带设计,能够实现感知求和的循环转换以及微分程序的多种并行方案。这带来了更高的并行度、更少的同步和减少的线程间数据移动。我们在多核CPU和GPU上进行了全面的实验。结果表明,ParDiff比当前最先进的完全AD系统Enzyme实现了最高483.21倍(几何平均:30.88倍)的加速。它还分别比PyTorch在CPU和GPU上实现了2.05倍和2.06倍的加速。源代码可在https://github.com/roastduck/FreeTensor公开获取。
Keyword:
AD
Tape
Parallel Computing
Direct Indexing

