AI程式設計里程碑!谷歌AI自己寫程式碼驚呆工程師,GPU核心演算法反超人類21%


新智元報道  

編輯:Aeneas 好睏
【新智元導讀】剛剛,AlphaEvolve又上大分了!基於它的開源實現OpenEvolve,靠自學成才、自己寫程式碼,直接在蘋果晶片上進化出了比人類還快21%的GPU核函式!這一刻,是自動化程式設計史上真正里程碑時刻,「AI為AI程式設計」的新時代正式開啟,自動化奇點真要來了。
谷歌的AlphaEvolve,還在不斷創造新的奇蹟。
而就在剛剛,patched.codes的聯合創始人兼CTO Asankhaya Sharma,用基於AlphaEvolve論文的開源實現OpenEvolve,成功自動發現了高效能的GPU核心演算法。
具體來說,透過自我進化程式碼,它自動發現了一套在Apple Silicon上遠超手動最佳化的GPU Metal核函式。
在真實的Transformer推理任務中,它帶來了平均12.5%的效能提升,峰值甚至飆升了106%
這種提升,直接超越了人類工程師21%!
這個系統沒有提供人類的GPU程式設計專業知識,就發現了以下最佳化——
· 完美的SIMD最佳化 
· 兩階段線上Softmax 
· 針對GQA的特定記憶體佈局最佳化
這不是一次簡單的效能躍遷,而是自動化程式設計歷史上真正的里程碑時刻——一套系統無需人類干預,就能在複雜的硬體架構中,挖掘出連專家都難以察覺的最佳化路徑。
更重要的是,這一成就並非停留在實驗室或論文中,而是在真實世界中、在蘋果晶片上、在當今最主流的AI模型任務中,紮實地跑了出來。
由此,就證明了自動化程式碼最佳化技術在真實世界系統中的實際可用性。
它標誌著一個新的時代正在開啟:不再是人類為機器手寫最佳化,而是機器開始為自己寫更好的程式碼。
而在之後,隨著硬體架構持續高速迭代,OpenEvolve這種工具的價值還會愈加凸顯——它們將發掘出那些僅憑人力極難找到的深度最佳化機會。

挑戰:GPU核函式最佳化
為什麼說,OpenEvolve攻克的這個「GPU核函式最佳化」,這麼有挑戰性呢?
這是因為,現代Transformer模型嚴重依賴於高度最佳化的注意力核函式,但編寫高效能的GPU程式碼卻需要具備以下領域的深厚專業知識。
· 特定硬體架構的細節(如Apple Silicon的統一記憶體、SIMD單元) 
· 底層程式語言(如Metal Shading Language) 
· 數值演算法設計(如注意力機制、數值穩定性) 
· 記憶體訪問模式的最佳化
所以,是否有可能不用人寫程式碼,完全交給OpenEvolve,讓它自動進化,看是否能生成效能更強的GPU核函式程式碼?
為此,Sharma決定以Qwen3-0.6B模型的分組查詢注意力(GQA)實現為目標,來檢驗OpenEvolve的能力,看它是否能自動生成超越MLX生產級的「scaled_dot_product_attention」核函式的程式碼。
具體來說,專案的目標配置如下。
· 模型:Qwen3-0.6B(40個查詢頭 : 8個鍵值頭) 
· 硬體:配備統一記憶體的蘋果M系列GPU 
· 基線:MLX的高度最佳化的注意力實現方案 
· 挑戰:全自動發現Metal核函式的最佳化方法

進化方法
Sharma將OpenEvolve配置為直接進化Metal核函式的原始碼,同時保留其與MLX框架的整合方式。
整個系統從一個基礎的三階段注意力實現方案開始,歷經超過25代的進化。

進化設定

max_iterations: 25                      # 最大迭代次數population_size: 25                     # 種群大小llm:  primary_model: "gemini-2.5-flash"# 主模型:用於快速探索 (60%)  secondary_model: "gemini-2.5-pro"# 輔助模型:用於深度最佳化 (40%)database:  num_islands: 5                        # 島嶼數量:用於並行進化多個種群evaluator:  bulletproof_mode: true                # 啟用高強度GPU錯誤防護模式

評估策略
每一個透過進化生成的核函式都經過了以下維度的全面測試:
  • 正確性驗證:與MLX基線進行數值精度對比,確保計算結果無誤。
  • 效能測試:在20個多樣化的推理場景(包括短/長上下文、生成任務)中進行基準測試。
  • 安全性檢查:包含GPU錯誤檢測和Metal記憶體訪問驗證。
  • 魯棒性分析:透過多次重複執行進行統計分析,確保效能穩定。

關鍵最佳化
沒想到,OpenEvolve在進化過程中,自主發現了以下幾項體現出演算法創新的最佳化策略!
1. 針對Apple Silicon的SIMD最佳化

// 進化前:逐元素標量運算for (uint d = 0; d < HEAD_DIM; d++) {    score += query_vec[d] * keys[k_base + d];}// 進化後:完美利用SIMD指令vec<T, 8> query_vec_v[HEAD_DIM / 8];  // 對於128維的頭,使用16個8元向量for (uint d_vec = 0; d_vec < HEAD_DIM / 8; d_vec++) {    score += dot(query_vec_v[d_vec], ((device vec<T, 8>*)(keys + k_base))[d_vec]);}

仔細看就會發現,OpenEvolve的一個亮點,就是自己發現了一個非常巧妙的最佳化——
對於128維的注意力頭,如果把資料按8個一組來處理,剛好就能完美匹配Apple Silicon硬體的SIMD寬度。
這就相當於自動踩中了硬體的「甜點區」,完全不需要任何人工調優,就能把效能直接拉滿,讓硬體利用率最大化!
2. 兩階段線上Softmax(Two-Pass Online Softmax)

// Pass 1:線上計算最大值,用於數值穩定Tmax_score= T(-INFINITY);for (uintkey_pos=0; key_pos < SEQ_LEN; key_pos++) {Tscore= compute_attention_score(query_vec, key_vec) * scale_val;    max_score = max(max_score, score);}// Pass 2:融合Softmax計算與後續的值累加Tsum_exp= T(0.0);vec<T, 8> output_acc_v[HEAD_DIM / 8];for (uintkey_pos=0; key_pos < SEQ_LEN; key_pos++) {Texp_score= exp(current_score - max_score);    sum_exp += exp_score;// 關鍵創新:將權重與value向量相乘並累加的過程相融合    output_acc_v[d_vec] += exp_score * ((device vec<T, 8>*)(values + v_base))[d_vec];}

在這個過程中,OpenEvolve做了一個很聰明的創新:把原來分開的兩個步驟——Softmax歸一化和值累加,融合到了一個計算迴圈中。
原本,傳統演算法要三個階段才能跑完:先算注意力得分,再歸一化,再加權求和。
現在直接兩步搞定,流程更簡潔,還大大降低了對記憶體頻寬的佔用,自然就跑得更快、更省資源了。
3. 針對GQA的特定記憶體佈局最佳化

// 針對GQA的5:1查詢頭/鍵值頭比例,進行直接對映constuint kv_head_idx = head_idx / HEADS_PER_KV;  // 精巧的頭對映邏輯// 實現合併記憶體訪問模式constuint q_base = batch_idx * (NUM_HEADS * SEQ_LEN * HEAD_DIM) +                     head_idx * (SEQ_LEN * HEAD_DIM) +                     query_pos * HEAD_DIM;

在此處,OpenEvolve的創新點在於,專門針對Qwen3模型的特殊結構做了最佳化。
這個模型的查詢頭與鍵值頭的比例是特有的40:8(即5:1),系統充分利用了這個特性,設計出一種獨特的合併記憶體訪問(Coalesced Memory Access)的模式。
這種模式,特別適合Apple Silicon的統一記憶體架構,堪稱是量身定製,效率極高,效能拉滿。

評測結果
果然,最終進化生成的核函式在各項綜合基準測試中,都展現出了顯著的效能提升:

核心效能指標增益
  • 解碼速度(Decode Speed):平均提升+12.5%(標準差σ = 38.3%)
  • 預填充速度(Prefill Speed):平均提升+14.4%(標準差σ = 17.6%)
  • 總吞吐量(Total Throughput):平均提升+10.4%(標準差σ = 30.7%)
  • 記憶體使用量(Memory Usage):均降低+0.99%(標準差σ = 1.7%)
  • 正確性(Correctness):保持100%的數值精度
  • 可靠性(Reliability):零GPU錯誤或核函式崩潰

詳細基準測試結果

而且其中最為矚目的是,在處理重複性模式生成任務時,OpenEvolve進化生成的核函式直接把解碼速度提升了足足106%!

如此一來也就充分證明了,這個核函式在應對特定型別的工作負載時,真的效能爆棚。

統計分析
總之,從統計結果來看,OpenEvolve在某些特定型別的工作負載上,確實有很強的最佳化能力,能挖掘出原先的手寫程式碼難以觸及的效能潛力。
在20個不同測試任務中,它在其中7個任務上提升非常明顯,效能增長超過了25%,體現出了「質的飛躍」。
  • 顯著增益(>25%):7/20個基準
  • 中等增益(5-25%):3/20個基準
  • 效能持平(±5%):4/20個基準
  • 效能回退(<-5%):6/20個基準

背後功臣:高魯棒性評估系統
注意,這一專案之所以能成功,有一個關鍵功臣就是OpenEvolve背後的評估系統。
它不是普通的跑分工具,而是專門為GPU核函式這種「硬核」程式碼而設計的,專為應對GPU核函式開發過程中的各種挑戰。

GPU安全特性
  • 命令緩衝區保護:自動檢測Metal命令緩衝區的錯誤並從中恢復。
  • 記憶體訪問違規處理:安全地處理GPU記憶體訪問違規。
  • 重試邏輯:為瞬時GPU錯誤提供指數退避重試機制。
  • 回退機制:當核函式徹底失敗時,能夠優雅地降級到備用方案。

全面的錯誤統計

# 評估結果示例{"metal_safety_statistics": {"metal_command_buffer_errors": 0,"metal_memory_violations": 0,"total_metal_errors": 0,"safety_score": 100.0    }}
正是因為這套評估系統特別穩、魯棒性極高,OpenEvolve才敢放開手腳去嘗試各種激進的最佳化方案,而不用擔心「越改越崩」。
要知道,GPU核函式這種實驗性程式碼本來就很容易出錯,一點小問題就可能導致整個程式掛掉。
所以,有這麼一套高魯棒性的機制兜底,才讓系統能放心大膽地「卷」出新花樣,把效能一步步推上去。

技術深度剖析

面向GPU核函式的進化架構
此外,專案的成功也離不開OpenEvolve中多個元件的協同工作:
  • 智慧程式碼標記:透過特定標記,確保進化過程僅針對Metal核函式原始碼,同時完整保留與MLX框架的整合程式碼。

# EVOLVE-BLOCK-STARTkernel_source = """// 僅此塊內的Metal核函式程式碼會被進化"""# EVOLVE-BLOCK-END

  • 富含上下文資訊的提示詞:為進化提供的提示詞包含了效能資料、硬體規格和最佳化方向指南。
  • 多目標評分機制:在效能、正確性和安全性等多個目標之間進行權衡評分。
  • 特定硬體驗證:所有測試和最佳化都針對Apple Silicon硬體進行。

面向GPU最佳化的提示詞工程
與此同時,為進化過程提供的提示詞,也給OpenEvolve提供了至關重要的上下文資訊:

## 硬體上下文資訊- Apple Silicon M-series GPU with unified memory(GPU為Apple Silicon M系列,採用統一記憶體架構)- SIMD width: 8 elements optimal for vec<T, 8>(最佳SIMD寬度為8個元素,適用於vec<T, 8>型別)- Thread group size: 32 threads for optimal occupancy(最佳執行緒組大小為32執行緒,以達到最高硬體佔用率)## 最佳化目標- Minimize memory bandwidth usage(最小化記憶體頻寬佔用)- Maximize SIMD utilization(最大化SIMD指令利用率)- Exploit GQA 40:8 head structure(充分利用GQA模型的40:8頭結構特性)- Maintain numerical stability(保持數值計算的穩定性)## 效能基線Current decode speed: 140.6 tokens/sec(當前解碼速度:140.6 token/秒)Target improvement: >5% speedup required(目標:需要>5%的速度提升)

更深遠的影響
總之,本次對GPU核函式的成功最佳化,揭示了以下幾點重要原則:
1. 專業知識的自動化探索與發現
OpenEvolve發現的最佳化策略,涵蓋了眾多需要深厚專業知識的領域:
  • Apple Silicon的架構細節
  • Metal程式語言的精妙之處
  • 注意力演算法的各種變體
  • 記憶體訪問模式的最佳化
這些領域知識並非由人類工程師直接提供,而是在進化探索的過程中自主湧現的。
2. 面向特定硬體的自適應最佳化
最終的最佳化方案是為Apple Silicon硬體量身定製的,這就表明,OpenEvolve具備自動發掘、利用特定硬體特性的能力。
3. 演算法層面的創新
進化過程發現的「兩階段線上Softmax(two-pass online softmax)」演算法,本身就是一項新穎的技術貢獻,應用潛力已經遠遠超出了本次實驗的特定場景。
4. 具備投產應用的價值
這些最佳化並非「紙上談兵」,而是在真實的Transformer推理負載中能帶來顯著效能提升的實用技術,完全具備在生產環境中部署的價值。

核心技術架構升級
並且,自專案啟動以來,Sharma已對OpenEvolve的核心能力進行了顯著增強:
  • 可復現性(Reproducibility)
透過完全確定性的進化過程,保證科研級別的可復現性。

random_seed42  # 確保每次執行結果完全一致

  • 視覺化(Visualization)
提供可互動的進化樹檢視,支援即時效能追蹤。

python scripts/visualizer.py

  • 島嶼進化(Island Evolution)
透過種群遷移實現並行進化,以增強解空間的探索能力。

database:num_islands5migration_interval25

  • 穩健的檢查點機制(Robust Checkpointing)
支援自動儲存進度,並能從中斷處恢復進化會話。

快速開始
所以,你準備好親自上手,挑戰GPU核函式最佳化或其他複雜難題了嗎?
輸入以下程式碼,就可以快速開始了:

# 克隆倉庫git clone https://github.com/codelion/openevolve.gitcd openevolve# 安裝依賴pip install -e .# 執行MLX核函式最佳化示例cd examples/mlx_metal_kernel_optpython openevolve-run.py initial_program.py evaluator.py --iterations 25

如果想進一步瞭解更深入的資訊,建議仔細閱讀一下這幾個文件。
GPU核心最佳化指南:https://github.com/codelion/openevolve/tree/main/examples/mlx_metal_kernel_opt
通用教程:https://github.com/codelion/openevolve#getting-started
配置參考:https://github.com/codelion/openevolve/tree/main/configs
參考資料:
https://huggingface.co/blog/codelion/openevolve-gpu-kernel-discovery


相關文章