TVM 調優後的運算元如何繼承到TensorFlow,PyTorch等框架中使用?

時間 2021-05-12 13:50:11

1樓:Dounm

我理解題主應該是想把 TVM 整合到 TensorFlow 或 Pytorch 中,類似 XLA 在 TensorFlow 中的角色。

如果是這樣的話,那在可以參考下 https://

這個專案,就是把 TVM 整合到 Pytorch 中當做乙個子圖優化器。

雖然這個專案好像已經不再維護了,但其實思路都是差不多的。就是把 TVM 編譯成 .so 然後整合到特定框架中,然後框架把部分計算圖 offload 給 TVM。

對與框架來說,這部分計算子圖就變換成了乙個 customized op,而該 op 的 kernel 中會啟動 TVM 的 runtime 然後用 JIT 的方式執行整個優化後的子圖的計算邏輯。

當然前面所說的都是理想狀態。理論上來說框架僅依賴 libtvm.so 就行,但實際上 TVM 有部分的必要邏輯是寫在 Python 中的,所以還需要通過 import tvm 來把這部分邏輯也整合到框架中去,這部分的坑還是不少的。

2樓:

如果需要用到backward,用PyTorch和Tensorflow的custom operator機制來註冊外部運算元:

tensorflow.org/api_docs/python/tf/custom_gradient資料互動使用dlpack格式:

3樓:Lanking

一般沒啥人會轉回來,TVM為了最後部署進行加速的。可以還是現在tf和pt訓練,訓練完到tvm調優加速。主要是tvm直接幫你把模型內部實現都換了一遍...

@葉子豪 同學的方案,題主可以試試:

一般情況下是forward運算元和backward運算元各用tvm寫乙份,現在tvm有了部分的tensor level ad功能也可以省去部分寫backward運算元的代價。對於PyTorch/MXNet/Tensorflow而言介面都是相容的,使用他們相應的autograd函式,並且在呼叫tvm運算元之前把tensor格式轉成dlpack就行。缺點在於不能hybridize,但是使用者不見得在乎hybridization帶來的好處。

當感覺到彷彿被全世界拋棄的時候,如何才能調整心態讓自己不那麼悲觀?

風吹過水面 出去運動運動,哪怕散散步 去人多的地方,特別是有孩子和小動物的地方,和他們搭搭話 或者隨便約個人結伴出遊.不要乙個人呆在家裡,不要聽慢歌。運動好像效果比較好.或者註冊乙個Tandem賬號,隨便找個聊聊.挨過去,慢慢會好起來 落魄書生 經常給自己心理暗示,讓自己變得更加自信 有時候我會想假...

ACG 是如何滲透到 95 後群體的?

小時候有個電視台叫星空衛視,每天傍晚六點到七點放日本動畫,我在上面看過火影忍者,犬夜叉,七龍珠,海賊王,那時候每天追著看 直到我上了大學,有了電腦,口味也從民工漫轉到了各種奇怪的口味 小宇宇ALICE 應該是網路資源的普及吧 雖然自己不是95的 但聽到侄女提到 鬼畜眼鏡 我被嚇到了 未成年不要玩18...

如何調節進入大學後見識到比自己優秀得多的人而產生的自卑心理?

happy 那我只說說我的觀點。僅供參考。我覺得這事兒被你說成自卑,好像不恰當。我理解的 自卑 這個詞形容的程度應該比這個要嚴重得多。這件事頂多算是不習慣。你的原話 上大學之前,在自己的小圈子裡時還覺得自己挺厲害,一直是自己的那方小天地裡的優秀者,從來沒感受過失敗。所以我認為是你已經習慣了那種狀態,...