Helion 預設核心變快:編譯期啟發式如何減少調校等待,哪些情況仍值得搜尋?

Helion 用編譯期分析直接選擇核心設定,也提供自動調校種子。解讀 H100 測試、設定數減少與硬體限制,分清快速起點和整體模型加速。

Share
Helion官方圖表以灰藍紫長條比較H100線性注意力的原預設、啟發式及完整調校效能
官方圖表比較 H100 上指定線性注意力核心的三種設定方式,前向與含反向結果分開呈現。圖片來源:PyTorch。 圖片來源:官方原文。

模型底層運算要跑得快,往往得先花時間找出適合硬體的設定。對會反覆改形狀或寫新核心的團隊,等待調校本身就可能拖慢工作。

PyTorch 在 2026 年 11 月 12 日介紹 Helion 的編譯期啟發式更新,讓系統先分析程式結構,直接選出一組設定,減少一開始就大量試跑的需要。

Helion 是撰寫機器學習運算核心的高階工具。核心負責在加速器上執行一小段計算,設定會影響資料怎麼分塊,以及晶片能同時處理多少工作。

官方在部分核心上得到接近完整自動調校的表現,也公開仍有退步與未涵蓋情況。這些是指定硬體與測試集的結果,無法直接改寫成整個模型服務都等比例加速。

我會建議經常開發新核心的團隊先看這條快速起點。若是固定形狀、只需付一次調校成本的正式服務,完整搜尋仍可能值得保留。

要判斷等待能省在哪裡,先分清系統是在直接選設定,還是在替後續搜尋提供起點。兩者的收益出現在不同階段。

直接選設定與自動搜尋,處理不同的等待

啟發式可以直接提供預設設定,也可以提供搜尋種子,兩條路不能用同一個數字概括。啟發式是根據程式特徵與硬體限制快速做選擇的方法,並不逐一試跑所有可能組合。

一條路徑是關閉自動調校,由分析結果直接決定設定。這適合開發期間反覆改程式,希望先得到合理效能,而不想每次都等待大量試跑的工作。它減少的是取得第一個可用設定的等待。

另一條路徑仍然啟用自動調校,只把分析得到的五到二十個候選設定放到搜尋前面。這些候選稱為種子,目的是早一點找到好設定,後面仍會繼續搜尋,並非取消調校。

兩種路徑也有不同驗收方式。直接選設定要看預設核心跑多快。搜尋種子要看試過多少設定後,效能已接近最終答案。只說「調校變快」,容易把開始得快與最後跑得快混為一談。

例如,實驗程式每次改一個張量形狀,快速預設有助於縮短等待。若核心會在正式服務中執行很多次,團隊則可能願意支付一次較長搜尋,換取持續運行的節省。

先看直接選設定讀取哪些資訊,才能理解它如何避免試跑。這項更新的主要價值,是把可等待時間變成較容易選擇的工程條件。

Helion官方圖表以灰藍紫長條比較H100線性注意力的原預設、啟發式及完整調校效能
官方圖表比較 H100 上指定線性注意力核心的三種設定方式,前向與含反向結果分開呈現。圖片來源:PyTorch。 圖片來源:官方原文。

編譯器用資料流估算資源,再決定分塊方式

分析會追蹤哪些資料同時存在,估算暫存器與記憶體需求,再選擇硬體工作安排。暫存器是晶片中靠近計算單元的小型儲存空間,容量有限,配置不合適就可能限制同時執行的工作。

Helion 先查看程式的中間表示,也就是編譯過程中用來描述運算的形式。資料流分析則追蹤數值如何產生、使用與失去用途,估算某個時間點需要同時留下多少資料。

有了這些資訊,系統會選擇資料分塊大小、執行群組與分階段安排。分塊大可能增加重用,也可能吃掉更多資源。分塊小比較輕,卻未必充分利用硬體。快速選擇需要同時考慮兩邊。

官方把核心大致分成矩陣乘法、歸約與逐元素三類。只要有矩陣乘法就先採對應路徑,否則再看是否有歸約。歸約是把多個值合成較少結果,例如加總。逐元素則是每個位置各自處理。

分類之後,再用各類的資源規則選設定。這種方法利用已知結構縮小問題,成本通常比完整搜尋小,但也意味它依賴分析能辨認的程式特徵,而非神奇地知道所有執行結果。

這些估算提供快速答案,也決定它在哪些情況會失準。當程式資訊不足,或底層編譯器採取不同安排時,預測與實際就可能拉開。

未知形狀與編譯器差異,仍限制預設判斷

資訊不足時系統會回到原本預設,資源估計也未必等於底層編譯器最後採取的配置。這次更新沒有宣稱任何程式都能取得最適設定。

例如,編譯階段不知道某個維度大小,就無法可靠推算部分分塊與儲存需求。採用原有預設,是承認資訊限制的退路,不能把未觸發新分析的案例也算成新方法改善。

底層 Triton 編譯器如何分配暫存器,仍可能與上層估算不同。Triton 會把核心轉成加速器能執行的程式。上層只用近似模型,不會完整重做它的全部決策。

查核時,這項啟發式已合併,並在 H100 與 B200 的 Triton 後端預設使用。這個範圍很重要:不能把它擴寫成所有 GPU、所有後端已同步啟用,也不能省略使用者實際使用的 Helion 與編譯器版本。

官方同時提供退步案例,例如特定 HSTU 工作的相對效能從 3.72 降到 3.27。這提醒讀者,平均改善仍可能伴隨個別損失。正式工作若恰好接近這類核心,就要留意自己的結果。

因此評測應分清核心家族、硬體與比較對象。快速預設是可測量的選擇,保留原有設定與完整搜尋的比較,才能判斷它是否合適。

指定核心接近完整調校,不等於整個服務同倍速

官方的線性注意力與 vLLM 核心結果,顯示快速預設在所測工作中的價值。但這些比較針對核心,並沒有測完一個完整語言模型服務的所有階段。

H100 線性注意力測試包含九個變體與九十六個測試組合。以 FLA 手寫實作為基準,前向計算的舊預設為 0.52 倍,新啟發式為 1.18 倍,完整自動調校為 1.26 倍。

同一組研究把前向加反向分開統計,新啟發式相對 FLA 為 1.12 倍。前向是在計算輸出,反向是在訓練時回傳梯度,兩者不是可以任意互換的數字,不能只挑較大的值代表全部工作。

另一組 H100 測試涵蓋六個 vLLM 歸約核心與一百五十三個組合。相對手寫 CUDA,舊預設為 0.58,新啟發式為 1.27,完整調校為 1.31,顯示在這組工作裡快速選擇已接近完整搜尋。

可是服務還包含模型其他層、記憶體移動、請求排程與等待。某些核心相對基準達到 1.27 倍,不等於整個 vLLM 服務就能節省同樣比例的時間。要知道端到端收益,必須把它接回實際負載量測。

矩陣乘法結果也有融合程度不同的比較條件。融合是將多個運算合在同一核心,會改變工作量與資料搬移,不能僅靠相同「矩陣乘法」名稱就視為完全同條件。

除了直接預設,種子還能改變搜尋前段取得好設定的速度。這要看另一組實驗,而不是套用上述核心效能比值。

搜尋種子的優勢集中在早期,最後答案差距很小

種子讓較好的設定提早出現,完整搜尋結束後的最佳結果卻接近。這說明它比較像協助排序搜尋,而不是保證產生原本找不到的極佳答案。

官方以三十八個核心、每個各一種形狀測試。若目標是距離最佳效能在百分之五十內,所需設定數中位數由 35.5 個降到 1 個。在百分之二十五內,則由 103.5 降到 2.5。

後者可描述為試跑設定數減少約四十一倍,卻不能直接說全部調校的實際等待都縮短四十一倍。不同設定編譯與執行需要的時間不同,分析本身也要成本,設定數只是其中一個量度。

要求更接近最佳答案時,優勢縮小。距離最佳百分之五內的設定數中位數由 255.5 降到 175,完整搜尋則由 521.5 降到 420.5。這些數字保留了「夠用」與「幾乎最佳」不同的時間代價。

完整搜尋後再重播最佳設定,最後效能差距只有很小比例。因此,若流程本來就會跑完整搜尋,主要收穫是較早得到好候選。若工作允許提早停止,收益才會更直接地轉成較少等待。

官方指出分析額外成本約數十毫秒,落在 Triton 編譯時間的變動範圍內。這是所測條件下的觀察,仍不能改成所有核心都完全零成本。採用時便要按可等待時間與工作穩定程度選擇。

常改形狀先用快速預設,固定工作再量完整調校

團隊可以先比較開發等待與執行效率,再決定哪些核心值得保留完整搜尋。不需要一開始就替所有工作採同一套策略。

常修改程式、改批次或序列長度的開發流程,可以先記錄每次改動後多久拿到第一個結果,再看執行效能是否落在可接受範圍。若試跑時間本來就比正式執行長,快速起點可能更有價值。

固定形狀且長期重複執行的工作,則應比較完整搜尋多花的準備時間,是否能被後續運行節省抵銷。這需要知道核心實際執行次數,不能只用一次測試快慢決定。

保留退步案例與對應硬體,才能避免只憑平均值擴大使用。新預設若讓某項關鍵工作變慢,應留下模型形狀、版本與重現方式,再判斷要保留舊設定或單獨調校。

比較方法要固定,才能看見等待轉移到哪裡

實際比較可以保存三種結果:原有預設、新啟發式直接選擇,以及完整調校。每一種都使用相同輸入形狀與硬體,並分開記錄準備時間與核心執行時間,避免把已有編譯快取的一組拿來對比全新啟動的另一組。

對會變動的工作,也要列出形狀分布。只挑一個最常見批次,可能忽略偶爾出現的長序列與小批次。這些案例雖然次數少,卻可能決定開發者等待最久的一次。

觀察結果時可以同時保留中位數與個別退步,不只報整體平均。若某個核心是正式流程瓶頸,小範圍退步也可能比其他大量非關鍵核心的改善更有影響。反過來,開發期間的編譯等待下降,也未必會出現在正式吞吐量指標裡。

這種分開記錄,才看得出新方法究竟省掉搜尋、提早找到好設定,或改善了持續執行。不同收益都可能有價值,但需要對應同一項工作需求。

Helion 編譯期啟發式常見問題

這是新的語言模型嗎?

不是。Helion 處理機器學習運算核心的撰寫與執行設定,這次更新改善取得設定的流程,沒有發布新的聊天模型權重,也就是訓練後保存模型數值的資料。

使用新預設後就不需要自動調校嗎?

不一定。快速預設提供便於開發的起點,固定且大量重複的工作仍可能值得支付完整搜尋成本,兩者應以實際時間與效能比較。

四十一倍代表服務會快四十一倍嗎?

不是。這是特定搜尋目標所需設定數的中位數比值,既非完整搜尋的總時間,也非模型服務的端到端速度。

所有加速器都會套用同樣分析嗎?

查核時預設範圍是 H100 與 B200 的 Triton 後端。其他硬體與後端應查看對應支援,不宜直接沿用這組結論。

先在自己的核心量出準備時間與執行結果,再把快速預設接進開發流程。當等待成本與持續運行收益都有紀錄,選擇才不會只剩下追逐最大的加速數字。

延伸閱讀:MaxText 支援 1,400 萬 token 長序列訓練:TPU 怎麼分攤上下文與記憶體?

延伸閱讀:Google TPU 8i Max 與 8tx 發表:雙晶片長脈絡、機密推論為何是兩種系統設計?

原始資料來源