0 torch._dynamo.optimize(backend, *, nopython, guard_export_fn, guard_fail_fn, disable, dynamic)
,TorchDynamo 的主入口點
1 參數說明
- backend,一般有兩種情況:
- 一個包含 torch.fx.GraphModule 和 example_inputs,返回一個能夠更快執行 graph 的函數或者可調用的對象。也可以通過設置backend_ctx_ctor 屬性,來給后端提供額外的上下文。具體用法可以查看
AOTAutogradMemoryEfficientFusionWithContext
。 - 或者是一個
torch._dynamo.list_backends()
里面的字符串后端名稱。
- 一個包含 torch.fx.GraphModule 和 example_inputs,返回一個能夠更快執行 graph 的函數或者可調用的對象。也可以通過設置backend_ctx_ctor 屬性,來給后端提供額外的上下文。具體用法可以查看
- nopython: 如果時 True,graph breaks 將會報錯,并且只有一個完整的 graph
- disable:如果為 True,設置當前裝飾器為 no-op
- dynamic:(bool or None): 使用動態 shape 進行 tracing
- True:嘗試生成盡可能動態的 kernel,但這個也不總是有效的,因為某些特化優化會使動態 kernel 失效
- False:將不生成任何動態的 kernel,只進行特化優化
- None:默認值,會自動檢測是否發生了動態變化,并在重新編譯時編譯一個更動態的動態內核。
2 額外說明
這個函數時 TorchDynamo 的主入口點。 進行 graph 提取并調用 backend() 來優化提取到的 graph。