add-uint-support
更新 PyTorch AT_DISPATCH_V2 巨集,為運算子和核心啟用 uint16、uint32 與 uint64 支援。
簡介
此技能旨在自動化擴展 PyTorch 運算子型別支援的過程,透過修改 AT_DISPATCH_V2 巨集以納入無號整數型別。它專為處理 PyTorch 核心程式碼庫的軟體工程師設計,協助將 uint16、uint32 與 uint64 支援整合至現有核心 (kernels) 中。透過確保 AT_DISPATCH_V2 定義中的型別一致性,此技能有助於預防調度錯誤,並確保無號資料型別在調度程式框架內能被正確處理。
此技能提供了一套系統化的方法,用以辨識運算子是否使用了現代的 V2 調度巨集,或者是否需要進行遷移。它處理多種情境,包括添加基礎的無號型別、替換整數型別群組,以及更新結合了浮點數與整數型別的複雜調度站點。當您遇到與缺少型別支援相關的建置錯誤,或是需要擴展函式庫以更好地支援張量運算中的無號整數輸入時,此技能特別有用。
-
啟用對 C++ PyTorch 核心中 kUInt16、kUInt32 與 kUInt64 的支援。
-
自動將傳統的 AT_DISPATCH 巨集遷移至現代的 AT_DISPATCH_V2 標準。
-
將 AT_BAREBONES_UNSIGNED_TYPES 或 AT_INTEGRAL_TYPES_V2 整合至調度邏輯以確保型別安全。
-
更新檔案中的所有調度站點,以確保 CPU 與 CUDA 實作的型別支援一致性。
-
與既有的 AT_ALL_TYPES、AT_INTEGRAL_TYPES 及浮點數型別群組保持相容。
-
修改前務必驗證目前的調度設定;若可行,建議使用方法 2 (以 AT_INTEGRAL_TYPES_V2 替換) 以獲得更簡潔的程式碼。
-
確保檔案中所有調度程式的出現位置均已一致更新,以避免執行時發生不匹配的情況。
-
輸入通常涉及包含 C++ 調度巨集的原始程式碼檔案;輸出則是符合 PyTorch V2 型別調度標準的轉換後程式碼區塊。
-
需要熟悉 AT_EXPAND 巨集以及整數與浮點數型別群組定義之間的差異。
-
若運算子使用較舊的 AT_DISPATCH 格式,在套用無號型別增強功能之前,必須先將其重構為 AT_DISPATCH_V2。
倉庫統計
- Star 數
- 99,514
- Fork 數
- 27,619
- Open Issue 數
- 18,535
- 主要語言
- Python
- 預設分支
- main
- 同步狀態
- 同步中
- 最近同步時間
- 2026年4月29日 上午07:01