The memory wall
Reverse-mode automatic differentiation, the backpropagation used to train every neural network, works by recording operations on a tape during the forward pass, then walking it backwards.
That is a fine trade for a neural network. A forward pass performs a bounded number of operations, and storing intermediate activations costs memory proportional to the network's size.
Apply the same recipe to a path tracer and the arithmetic becomes alarming. Consider a modest render: one million pixels, 128 samples per pixel, up to 10 bounces per path. That is on the order of a billion ray-surface interactions, each involving intersection tests, BSDF evaluations, and sampling.
Recording all of it produces a tape far larger than any GPU's memory.
The options that work for neural networks do not rescue this. Checkpointing, recomputing segments instead of storing them, helps in proportion to how much you are willing to recompute, and here you would need to discard nearly everything. Reducing samples trades directly against gradient noise, which is already the binding constraint.
So differentiable rendering needed something structurally different, and finding it required using what is known about light transport rather than treating the renderer as an arbitrary program.

