1.tvm的主線感覺更新太慢,文檔太落后,在自動駕駛領域不支持Blackwell平臺,跨平臺其實吹牛的更多。我覺得自動駕駛用不起來。
2.性能最快的還是tensorrt/tensorrt_llm這條路,純cuda路線面臨大量cuda算子開發,比如vllm llama.cpp
3.nvidia平臺,簡單的推理算子如果沒有直接cuda寫就行,如果對于比較新還復雜的算子,得用cutlass來寫呢。如果要快速驗證,用triton來快速寫新算子實現,然后導出為cubin文件,然后plugin加載這個triton導出算子也是沒有問題的。目前triton最新版本不支持thor,感覺明年能支持。"Triton for Prototyping, CUTLASS for Production"
3.tvm的relay/relax的定位類似triton。但是支持力度天壤之別。Triton 是“寫算子的 DSL/工具鏈。Relax 是“圖級別 IR。如果relax只寫算子那么兩個功能類似。
4.感覺基于mlir的路線已經打敗tvm了。pytorch->torch-mlir->各種mlir->llvm ir。
pytorch->triton->各種mlir->llvm ir
感覺已經完成占領了生態位。
5.triton不是和和tensorrt對標的,對標的是cublas cunlaslt。所以triton導出的ptx和cubin能被tensorrt plugin加載。
6.最新的cutlass也支持了基于mlir的python dsl。
7.tvm 目前看最有價值的是計算圖自動調優的能力,等于把部分復雜和通用算子可以用tvm來作。但是tvm很難支持最新的硬件,需要使用者來適配,這個不容易。 TVM MetaSchedule 有一個問題是對新硬件支持慢,還得自己的公司投入人來開發適配,還不能合入主線,因為主線不受控制,主線api瘋狂變更。所以有價值的點在于這個公司需要在非常多的平臺上部署模型,然后拉出一個分支來進行自己產品的迭代,定期從主線撈想法看看是否能借鑒。
8.tvm 主線的量化支持INT8,不支持INT4.
9.在動態形狀支持上,TVM和MLIR正在殊途同歸。雙方都認識到,將形狀計算從數據計算中解耦,并將其作為圖中的顯式操作,是正確的技術路線。
- MLIR 在這條路上起步更早,基礎更扎實,其設計從一開始就體現了這種清晰性。
- TVM 則是通過痛苦的實踐(Relay)認識到了這一點,并通過Relax IR進行了徹底的革新,試圖追趕并超越。