尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。
Computations in physical simulation, computer graphics, and probabilistic inference often require the differentiation of discontinuous processes due to contact, occlusion, and changes at a point in time. Popular differentiable programming languages, such as PyTorch and JAX, ignore discontinuities during differentiation. This is incorrect for parametric discontinuities —conditionals containing at least one real-valued parameter and at least one variable of integration. We introduce Potto, the first differentiable first-order programming language to soundly differentiate parametric discontinuities. We present a denotational semantics for programs and program derivatives and show the two accord. We describe the implementation of Potto, which enables separate compilation of programs. Our prototype implementation overcomes previous compile-time bottlenecks achieving an 88.1x and 441.2x speed up in compile time and a 2.5x and 7.9x speed up in runtime, respectively, on two increasingly large image stylization benchmarks. We showcase Potto by implementing a prototype differentiable renderer with separately compiled shaders.
DOI 原文 ·
@article{paperbot2560,
title = {Distributions for Compositionally Differentiating Parametric Discontinuities},
author = {Jesse Michel and Kevin Mu and Xuanda Yang and Sai Praveen Bangaru and Elias Rojas Collins and Gilbert Bernstein and Jonathan Ragan-Kelley and Michael Carbin and Tzu-Mao Li},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {OOPSLA1},
year = {2024},
doi = {10.1145/3649843}
}