记一个 PyTorch JIT bug 的解决过程
量仔导读
最近,咱们M星程序员小哥熊怀东,在使用Facebook推出的开源项目PyTorch 1.7的过程中,“顺手”修复了一个bug,还被PyTorch官方收录。小熊同学特意为大家准备了一份手记,详细记录了团队是如何解决bug的,在此分享给大家。
固定布局
工具条上设置固定宽高
背景可以设置被包含
可以完美对齐背景图和文字
以及制作自己的模板
背景
调试过程
1. 在线调试,排除人为误操作因素
2. GDB 调试,确定排查范围
https://github.com/python/cpython/blob/master/Python/ceval.c#L1477。
3. 排除多种猜测,最终定位 bug 根源
https://github.com/pytorch/pytorch/blob/v1.7.0-rc1/torch/csrc/jit/runtime/register_special_ops.cpp#L436,可以看到其中的
https://github.com/pytorch/pytorch/blob/v1.7.0-rc1/torch/csrc/jit/runtime/register_special_ops.cpp#L436这一行代码。
后续
https://github.com/pytorch/pytorch/issues/45558,并提交了相应的 pull request
https://github.com/pytorch/pytorch/pull/45559,该 pull request 于 10月12日合并到了 release/1.7 分支,这样当 PyTorch 1.7 正式发布时,我们的生产代码可以使用 torch.no_grad 而不会再遇到该断言失败。
技术进阶之旅
END