Could someone please point me to the developer docs for dynamo, inductor?
Please DO NOT give me the user doc links currently available on the official PyTorch docs page. I need to understand the complete flow of dynamo so as to extend it for my own purpose.
Specifically, I need to understand how does dynamo capture the forward and backward graphs when training any random model - how it captures conditional branches, loops and dynamic tensor shapes.
support with @anubane’s suggestion. I want to know if there are any good ways to learn torch.compile. It’s not easy to analyze and debug after encountering problems with compilation.
I understand the sentiment of torch.compile is complicated but then again compilers are generally complicated but torch.compile has going for it that it’s mostly written in python. If there’s concrete parts of the stack you find hard to parse and would like more tutorials written about please let me know
I believe I have been unable to explain my question:
I am NOT looking for developer docs from the perspective of model developers who USE PyTorch.
I am looking for developer docs, design docs from the perspective of PyTorch core developers - the logic and working of the source code - that is what I need to understand and modify.
Most of the links here explain things from the pespective of PyTorch users.
(Further, I prefer docs/videos over podcasts since podcasts make it hard to follow the actual source code)
Currently, the only method to understand this seems to build PyTorch in debug mode and step through the inductor module to understand the flow. This can be done but is tedious, that is why I was looking for some documentation.
The videos and podcasts we shared were indeed targeted to new PyTorch developer. Honestly I only started to learn how PT2 worked after filing and fixing some random easy bugs Issues · pytorch/pytorch · GitHub otherwise a debugger sounds great, that’s how I ramp up on new projects
I understand that for a beginner like me, there will always be a learning curve. However, since PT2.x is new, and the components in question are different from PT1.x, I was hoping to catch up sooner. The resources shared here are great and give a holistic overview, but, since they move on to performance comparisons and benefits to end-users of PT, the purpose to me is lost.
I am trying to extend PT to a custom backend; while a public API is available for Dynamo, similar API is not publicly available for Inductor. Therefore I needed to understand the module itself.
For example, in the video:
The logic of inductor is explained, but, that is not enough for me to understand the actual source code, it’s structure - what goes in the codegen module, what goes in the scheduler module, how to extend that, etc.