December 02, 2019
Deep learning frameworks have often focused on either usability or speed, but not both. PyTorch is a machine learning library that shows that these two goals are in fact compatible: it provides an imperative and Pythonic programming style that supports code as a model, makes debugging easy and is consistent with other popular scientific computing libraries, while remaining efficient and supporting hardware accelerators such as GPUs. In this paper, we detail the principles that drove the implementation of PyTorch and how they are reflected in its architecture. We emphasize that every aspect of PyTorch is a regular Python program under the full control of its user. We also explain how the careful and pragmatic implementation of the key components of its runtime enables them to work together to achieve compelling performance. We demonstrate the efficiency of individual subsystems, as well as the overall speed of PyTorch on several common benchmarks.
Written by
Soumith Chintala
Adam Lerer
Benoit Steiner
Edward Yang
Francisco Massa
Gregory Chanan
Junjie Bai
Lu Fang
Sam Gross
Zachary DeVito
Zeming Lin
Adam Paszke
Alban Desmaison
Alykhan Tejani
Andreas Köpf
James Bradbury
Luca Antiga
Martin Raison
Natalia Gimelshein
Sasank Chilamkurthy
Trevor Killeen
Publisher
NeurIPS
Research Topics
August 04, 2026
Krunoslav Lehman Pavasovic, Theophane Vallaeys, Stéphane Mallat, Giulio Biroli, Luke Zettlemoyer, Brian Karrer, Jakob Verbeek
August 04, 2026
July 17, 2026
Zilin Xiao, Qi Ma, Jason Chen, Xintao Chen, Avinash Atreya, Hanjie Chen, Vicente Ordonez
July 17, 2026
July 13, 2026
Xiaodong Wang, Xuanyi Zhao, Pedro Rodriguez, Devendra Singh Sachan, Barlas Oguz, Seungwhan Moon, Shang-Wen Li, Gargi Ghosh, Xin Dong, Wen-Tau Yih
July 13, 2026
July 03, 2026
Sonia Joseph, Quentin Garrido, Randall Balestriero, Matthew Kowal, Thomas Fel, Shahab Bakhtiari, Blake Richards, Mike Rabbat
July 03, 2026
