{"href":"https://api.simplecast.com/oembed?url=https%3A%2F%2Fpytorch-dev-podcast.simplecast.com%2Fepisodes%2Funbacked-symints-oyqu0_P6","width":444,"version":"1.0","type":"rich","title":"Unbacked SymInts","thumbnail_width":300,"thumbnail_url":"https://image.simplecastcdn.com/images/8cefde76-fb46-406a-8d87-ab0df67f3423/92f11400-2dad-49b4-8b14-cce35f5ab765/pytorch-symbol-02-orangeondark.jpg","thumbnail_height":300,"provider_url":"https://simplecast.com","provider_name":"Simplecast","html":"<iframe src=\"https://player.simplecast.com/48fa564f-76b4-4aa9-825f-ecf4a3611339\" height=\"200\" width=\"100%\" title=\"Unbacked SymInts\" frameborder=\"0\" scrolling=\"no\"></iframe>","height":200,"description":"This podcast goes over the basics of unbacked SymInts. You might want to listen to this one before listening to https://pytorch-dev-podcast.simplecast.com/episodes/zero-one-specialization Some questions we answer (h/t from Gregory Chanan):\n\n- Are unbacked symints only for export?  Because otherwise I could just break / wait for the actual size.  But maybe I can save some retracing / graph breaks perf if I have them too?  So the correct statement is \"primarily\" for export?\n- Why am I looking into the broadcasting code at all?  Naively, I would expect the export graph to be just a list of ATen ops strung together.  Why do I recurse that far down?  Why can't I annotate DONT_TRACE_ME_BRO?\n- How does 0/1 specialization fit into this?  I understand we may want to 0/1 specialize in a dynamic shape regime in \"eager\" mode (is there a better term?), but that doesn't seem to matter for export?\n- So far we've mainly been talking about how to handle our own library code.  There is a worry about pushing complicated constraints downstream, similar to torchscript.  What constraints does this actually push?"}