mbrookhart opened a new pull request #7374: URL: https://github.com/apache/tvm/pull/7374
On very large models, we can have ASTs that stack overflow because we recursively traverse tens of thousands of chained Let nodes. In A-normal form, we can simply iterate over that chain instead. These changes find every pass that segfaults with a stack overflow in ONNX SSD-Mobilenet (~20k nodes) and hijacks the visitor to do iterative traversals over chains of lets. This lets me run that model without setting by significantly reducing the stack size. I also needed to convert FuseOps to mixed mode. This is still WIP, there's a lot of code copy in here I'd like to clean up and I need to figure out how to test the issues, but I'd like to kick of CI to make sure I didnt' break any edge cases not covered in the pass tests. Thanks! cc @jroesch @tqchen @tristan-arm @altanh @zhiics @masahi @kevinthesun ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
