PyTorch \texttt{2.x} introduces a compiler designed to accelerate deep learning programs. However, for machine learning researchers, adapting to the PyTorch compiler to full potential can be challenging. The compiler operates at the Python bytecode level, making it appear as an opaque box. To address this, we introduce \texttt{depyf}, a tool designed to demystify the inner workings of the PyTorch compiler. \texttt{depyf} decompiles bytecode generated by PyTorch back into equivalent source code, and establishes connections between in-memory code objects and their on-disk source code counterparts. This feature enables users to step through the source code line by line using debuggers, thus enhancing their understanding of the underlying processes. Notably, \texttt{depyf} is non-intrusive and user-friendly, primarily relying on two convenient context managers for its core functionality. The project is \href{https://github.com/thuml/depyf}{ openly available} and is recognized as a \href{https://pytorch.org/ecosystem/}{PyTorch ecosystem project}.
翻译:PyTorch \texttt{2.x}引入了一个旨在加速深度学习程序的编译器。然而,对于机器学习研究者而言,充分发挥PyTorch编译器的潜力颇具挑战。该编译器在Python字节码层面运行,使其表现为一个不透明的黑箱。为解决此问题,我们提出了\texttt{depyf}——一款用于揭示PyTorch编译器内部工作机制的工具。\texttt{depyf}可将PyTorch生成的字节码反编译为等价的源代码,并建立内存中代码对象与磁盘上对应源代码之间的关联。这一特性使用户能够借助调试器逐行跟踪源代码,从而加深对底层流程的理解。值得注意的是,\texttt{depyf}具有非侵入性和易用性,其核心功能主要依赖两个便捷的上下文管理器实现。该项目已\href{https://github.com/thuml/depyf}{开源发布},并被认定为\href{https://pytorch.org/ecosystem/}{PyTorch生态系统项目}。