Un nuevo solver de PyTorch recorta el pico de RAM 20 veces al planificar memoria

0/1 Knapsack Problem in PyTorch

Un nuevo solver de PyTorch recorta el pico de RAM 20 veces al planificar memoria

El autor propone dp_knapsack_sliding_hirschberg, un solver para el presupuesto de memoria de activaciones en PyTorch que combina la técnica de ventana deslizante con el truco de Hirschberg para evitar la tabla DP completa y el backtracking. El resultado: el pico de RAM baja de una tabla de tamaño (nº de ítems, peso máximo) a una de (2, peso máximo), unas 20 veces menos. En su máquina con 64 GB, dp_knapsack se cae con 100 ítems y el nuevo solver aguanta 2000. Aun así, si se puede usar SciPy, ilp_knapsack sigue siendo mucho más rápido.

Con estas dos optimizaciones combinadas, podemos reducir el tamaño de la tabla DP de shape=(número de ítems, peso máximo) a shape=(2, peso máximo), reduciendo efectivamente la memoria pico en un factor de 20x.

Más de este día

2026-10-17