最近在学习 PyTorch 的源码,记录一下。
PyTorch 官方
源码解读
-
PyTorch – Internal Architecture Tour → 翻译 → PyTorch为何如此高效好用?来探寻深度学习框架的内部架构(张量存储)
- 想读读PyTorch底层代码?这份内核机制简介送给你(CPU/GPU 内存分配)
-
小飞 - 知乎
- PyTorch源码学习系列 - 2. Tensor(对 Tensor 进行了详细的介绍,包括概念、存储、创建等)
- PyTorch源码学习系列 - 4. Autograd(介绍了自动求导的原理、计算图、实现和引擎)
-
小白学习pytorch源码(一):torch包函数如何实现?揭秘__init__.py(介绍了 torch 包函数实现、使用 C++ 和 cuda 编程改变 pytorch 默认训练函数的方法)
- 小白学习pytorch源码(二):setup.py最详细解读(详细介绍了 setup.py 文件)
- 小白学习pytorch源码(三):理解torch.tensor模块(详细介绍了 torch.tensor 模块)
-
PyTorch源码浅析:简介(展示了 PyTorch 源码目录结构,分享了自己的源码阅读方法和一篇关于C++的笔记)(这个系列对应的版本比较老了)
- PyTorch源码浅析(1):THTensor(THTensor & THStorage)
- PyTorch源码浅析(2):THC(这篇价值比较高,讲了 THCState、THCAllocator 和 THCApply,THCAllocator 部分涉及到内存和显存分配)
- PyTorch源码浅析(3):NN(主要讲了 Tanh 的实现和 2D Convolution 前向和反向传播的实现)
- PyTorch源码浅析(4):Autograd(介绍了自动微分引擎的实现,计算图的原理,相关数据结构和 backward() 函数的实现,动态建立计算图的实现)
- PyTorch源码浅析(5):Python扩展(介绍了 C++ 代码怎么与 Python 交互,里面扩展了 2 个帖子,熟悉 C++ 后可以再看看)
-
如何有效地阅读PyTorch的源代码? - 罗秀哲的回答 - 知乎(重点读懂张量运算库TH)
- PyTorch源码浅析(目录)
- PyTorch源码浅析(一)(THTensor 和 THStorage,文章里介绍了很多 C 语言的部分,有些过时了)
- PyTorch源码浅析(二)(THC 中重新对存储在 GPU 上的张量进行了定义,分别为 THCStorage 和 THCTensor)
- PyTorch源码浅析(三)(CUDA C++ 中大部分语法和 C++ 是一样的;在 GPU 上提供 BLAS 和线性代数算法支持的库是 cuBLAS 和 Magma)
- PyTorch源码浅析(四)(静态图和动态图)
- PyTorch源码浅析(五)(多重派发机制)
-
pytorch 源码解读进阶版 - 当你 import torch 的时候,你都干了些什么?(施工中)(作者还没写完,提到了 python 代码的组织规范)
- 扩展阅读:各类Python项目的项目结构及代码组织最佳实践 (优秀的程序员都使用规范的项目代码结构,了解这些好的习惯方式,有助于快速读懂代码)
-
v2.0.1:Pytorch底层源码解读(一)概览(主要讲了 torch__init__.py;附带讲了 pytorch 源码的所有目录)
- Pytorch底层源码解读(二)libtorch源码浅析(pytorch - python 前端 = libtorch;Tensor 的源码实现机理,以及 Storage 和 Tensor 的关系)
-
v1.10.0:PyTorch项目源码学习(1)(提到了很多参考资料,基本上都读过了)
- PyTorch项目源码学习(2)——Tensor代码结构初步学习(Tensor 的代码结构)
- PyTorch项目源码学习(3)——Module类初步学习(torch.nn.Module 的源代码分析)
-
Pytorch源代码分析(Tensor、数据读入、前向反向计算)
- pytorch之empty源代码(empty() 的源码实现)
- PyTorch Autograd(构建 autograd 图的过程、反向传播的过程)
- PyTorch Dispatch(dispatch 解决了一个问题:该调用哪个 kernel)
- PyTorch DispatchStub(声明,定义,注册,调用四个阶段)
编译相关
关于 setup.py:Python项目打包及发布
关于 build 和 install:简述python setup.py install的过程
- PyTorch Internals Part II - The Build System → 翻译 → PyTorch内部2-The Build System(从最终用户的角度解释构建过程;通过只构建修改的那部分代码来提升迭代开发的速度)
- A Tour of PyTorch Internals (Part I) → 翻译 → 教程 | PyTorch内部机制解析:如何通过PyTorch实现Tensor(内容没怎么看懂,先存一下)
- Pytorch源码编译简明指南(介绍了 PyTorch 源码的目录结构、核心文件夹等)
- 如何对Pytorch进行“深入”的DEBUG(在 vs code 进行 debug 的方法)
- 一个Tensor的生命历程(Pytorch版)(没太看懂,先存一下)
- how-to-debg_pytorch_sourcecode_into_cpp_part