Agentic CUDA 核心優化器:自動化 GPU 效能調校

Agentic CUDA 核心優化器是一個自動化框架,可將高階工作負載描述轉換為最佳化的 GPU 實作。透過程式碼生成、正確性驗證和效能基準測試的閉環循環,系統會反覆調整 CUDA 核心,以在維持功能正確性的同時最大化執行速度。

自動化最佳化工作流程

此優化器採用基於 LangGraph 的工作流程,探索核心實作和啟動設定的空間。此過程遵循結構化的迭代循環:

  1. 初始化:系統載入或生成核心簽名、輸入案例、用於正確性驗證的參考實作,以及初始核心候選。
  2. 評估:執行參考核心,並對初始實作進行延遲基準測試。
  3. 迭代調整:代理會提出對核心程式碼或啟動設定的變更。這些候選會使用 NVRTC 編譯,並透過 CUDA 驅動程式 API 啟動。
  4. 驗證:每個候選都必須通過驗證,方法是將輸出與參考(使用 NumPy)進行比較,以確保正確性沒有回歸。
  5. 選擇:最快的已驗證候選會被保留為最佳實作。排名是根據效能案例中延遲的幾何平均值,排除編譯和 profiler 重播時間。

技術架構

系統將高階編排與低階 GPU 執行環境分開:

  • 編排層:由 LangGraph 和 Python 驅動,此層負責代理的邏輯、候選選擇,以及外部工具的整合。
  • 執行框架:一個獨立的 C++ 框架使用 NVRTC 編譯核心,並透過 CUDA 驅動程式 API 執行,確保 GPU 結果被擷取並儲存,供 Python 層分析。
  • 工具整合:代理可以選擇使用 Nsight Compute 檢查 GPU 效能計數器,並擷取 NVIDIA 文件以取得最佳化指引,讓模型能根據資料做出核心調整的決策。

效能測量與驗證

為確保可靠的基準測試,系統使用 CUDA events 進行計時。每個案例會執行 10 次暖機啟動,接著進行 100 次測量啟動。正確性會透過將候選核心的輸出與參考核心或基於 NumPy 的 oracle 進行比較來驗證。

雖然系統設計用於最佳化單一核心,但作者指出,通過提供的輸入案例並不能保證一般正確性,且生成的參考核心並非獨立的 oracle。

社群見解與考量

開發者之間的討論強調了在 agentic 最佳化中維持正確性的挑戰。一位貢獻者指出,此類系統的主要困難不一定在於找到更快的核心,而在於證明較快的版本沒有引入微妙的錯誤:

"how are you handling regression testing across kernel variants, feels like the hardest part of an agentic optimizer isn't finding a faster kernel, it's proving the faster one didn't quietly break something"

其他使用者質疑 agentic 循環相較於單一提示方法(例如使用 Claude Code)的價值,並建議迭代回饋循環——特別是整合真實 GPU 效能計數器和編譯錯誤——是讓代理能導航 CUDA 最佳化複雜搜尋空間的關鍵差異化因素。

Sources