AI編程里程碑!谷歌AI自己寫代碼驚呆工程師,GPU內(nèi)核算法反超人類21%
谷歌的AlphaEvolve,還在不斷創(chuàng)造新的奇跡。
在5月中旬,谷歌扔出的這個(gè)炸彈(號(hào)稱是數(shù)學(xué)界AlphaGo的「第37步」時(shí)刻),就在不斷沖擊人們的認(rèn)知——AI,已經(jīng)擁有了自我進(jìn)化能力!
隨后,不斷有開發(fā)者用代碼證實(shí),AlphaEvolve的矩陣乘法突破為真!一個(gè)開發(fā)者成功證明,它僅用了48次乘法,就正確完成了4×4矩陣的乘法運(yùn)算。
而就在剛剛,patched.codes的聯(lián)合創(chuàng)始人兼CTO Asankhaya Sharma,用基于AlphaEvolve論文的開源實(shí)現(xiàn)OpenEvolve,成功自動(dòng)發(fā)現(xiàn)了高性能的GPU內(nèi)核算法。
具體來(lái)說(shuō),通過(guò)自我進(jìn)化代碼,它自動(dòng)發(fā)現(xiàn)了一套在Apple Silicon上遠(yuǎn)超手動(dòng)優(yōu)化的GPU Metal核函數(shù)。
在真實(shí)的Transformer推理任務(wù)中,它帶來(lái)了平均12.5%的性能提升,峰值甚至飆升了106%。
這種提升,直接超越了人類工程師21%!
這個(gè)系統(tǒng)沒(méi)有提供人類的GPU編程專業(yè)知識(shí),就發(fā)現(xiàn)了以下優(yōu)化——
- 完美的SIMD優(yōu)化
- 兩階段在線Softmax
- 針對(duì)GQA的特定內(nèi)存布局優(yōu)化
這不是一次簡(jiǎn)單的性能躍遷,而是自動(dòng)化編程歷史上真正的里程碑時(shí)刻——一套系統(tǒng)無(wú)需人類干預(yù),就能在復(fù)雜的硬件架構(gòu)中,挖掘出連專家都難以察覺(jué)的優(yōu)化路徑。
更重要的是,這一成就并非停留在實(shí)驗(yàn)室或論文中,而是在真實(shí)世界中、在蘋果芯片上、在當(dāng)今最主流的AI模型任務(wù)中,扎實(shí)地跑了出來(lái)。
由此,就證明了自動(dòng)化代碼優(yōu)化技術(shù)在真實(shí)世界系統(tǒng)中的實(shí)際可用性。
它標(biāo)志著一個(gè)新的時(shí)代正在開啟:不再是人類為機(jī)器手寫優(yōu)化,而是機(jī)器開始為自己寫更好的代碼。
而在之后,隨著硬件架構(gòu)持續(xù)高速迭代,OpenEvolve這種工具的價(jià)值還會(huì)愈加凸顯——它們將發(fā)掘出那些僅憑人力極難找到的深度優(yōu)化機(jī)會(huì)。
挑戰(zhàn):GPU核函數(shù)優(yōu)化
為什么說(shuō),OpenEvolve攻克的這個(gè)「GPU核函數(shù)優(yōu)化」,這么有挑戰(zhàn)性呢?
這是因?yàn)?,現(xiàn)代Transformer模型嚴(yán)重依賴于高度優(yōu)化的注意力核函數(shù),但編寫高性能的GPU代碼卻需要具備以下領(lǐng)域的深厚專業(yè)知識(shí)。
- 特定硬件架構(gòu)的細(xì)節(jié)(如Apple Silicon的統(tǒng)一內(nèi)存、SIMD單元)
- 底層編程語(yǔ)言(如Metal Shading Language)
- 數(shù)值算法設(shè)計(jì)(如注意力機(jī)制、數(shù)值穩(wěn)定性)
- 內(nèi)存訪問(wèn)模式的優(yōu)化
所以,是否有可能不用人寫代碼,完全交給OpenEvolve,讓它自動(dòng)進(jìn)化,看是否能生成性能更強(qiáng)的GPU核函數(shù)代碼?
為此,Sharma決定以Qwen3-0.6B模型的分組查詢注意力(GQA)實(shí)現(xiàn)為目標(biāo),來(lái)檢驗(yàn)OpenEvolve的能力,看它是否能自動(dòng)生成超越MLX生產(chǎn)級(jí)的「scaled_dot_product_attention」核函數(shù)的代碼。
具體來(lái)說(shuō),項(xiàng)目的目標(biāo)配置如下。
- 模型:Qwen3-0.6B(40個(gè)查詢頭 : 8個(gè)鍵值頭)
- 硬件:配備統(tǒng)一內(nèi)存的蘋果M系列GPU
- 基線:MLX的高度優(yōu)化的注意力實(shí)現(xiàn)方案
- 挑戰(zhàn):全自動(dòng)發(fā)現(xiàn)Metal核函數(shù)的優(yōu)化方法
進(jìn)化方法
Sharma將OpenEvolve配置為直接進(jìn)化Metal核函數(shù)的源代碼,同時(shí)保留其與MLX框架的集成方式。
整個(gè)系統(tǒng)從一個(gè)基礎(chǔ)的三階段注意力實(shí)現(xiàn)方案開始,歷經(jīng)超過(guò)25代的進(jìn)化。
進(jìn)化設(shè)置
max_iterations: 25 # 最大迭代次數(shù)population_size: 25 # 種群大小llm: primary_model: "gemini-2.5-flash" # 主模型:用于快速探索 (60%) secondary_model: "gemini-2.5-pro" # 輔助模型:用于深度優(yōu)化 (40%)database: num_islands: 5 # 島嶼數(shù)量:用于并行進(jìn)化多個(gè)種群evaluator: bulletproof_mode: true # 啟用高強(qiáng)度GPU錯(cuò)誤防護(hù)模式
max_iterations: 25 # 最大迭代次數(shù)
population_size: 25 # 種群大小
llm:
primary_model: "gemini-2.5-flash" # 主模型:用于快速探索 (60%)
secondary_model: "gemini-2.5-pro" # 輔助模型:用于深度優(yōu)化 (40%)
database:
num_islands: 5 # 島嶼數(shù)量:用于并行進(jìn)化多個(gè)種群
evaluator:
bulletproof_mode: true # 啟用高強(qiáng)度GPU錯(cuò)誤防護(hù)模式
評(píng)估策略
每一個(gè)通過(guò)進(jìn)化生成的核函數(shù)都經(jīng)過(guò)了以下維度的全面測(cè)試:
- 正確性驗(yàn)證:與MLX基線進(jìn)行數(shù)值精度對(duì)比,確保計(jì)算結(jié)果無(wú)誤。
- 性能測(cè)試:在20個(gè)多樣化的推理場(chǎng)景(包括短/長(zhǎng)上下文、生成任務(wù))中進(jìn)行基準(zhǔn)測(cè)試。
- 安全性檢查:包含GPU錯(cuò)誤檢測(cè)和Metal內(nèi)存訪問(wèn)驗(yàn)證。
- 魯棒性分析:通過(guò)多次重復(fù)運(yùn)行進(jìn)行統(tǒng)計(jì)分析,確保性能穩(wěn)定。
關(guān)鍵優(yōu)化
沒(méi)想到,OpenEvolve在進(jìn)化過(guò)程中,自主發(fā)現(xiàn)了以下幾項(xiàng)體現(xiàn)出算法創(chuàng)新的優(yōu)化策略!
1. 針對(duì)Apple Silicon的SIMD優(yōu)化
// 進(jìn)化前:逐元素標(biāo)量運(yùn)算for (uint d = 0; d < HEAD_DIM; d++) { score += query_vec[d] * keys[k_base + d];}// 進(jìn)化后:完美利用SIMD指令vec<T, 8> query_vec_v[HEAD_DIM / 8]; // 對(duì)于128維的頭,使用16個(gè)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]);}
// 進(jìn)化前:逐元素標(biāo)量運(yùn)算
for (uint d = 0; d < HEAD_DIM; d++) {
score += query_vec[d] * keys[k_base + d];
}
// 進(jìn)化后:完美利用SIMD指令
vec<T, 8> query_vec_v[HEAD_DIM / 8]; // 對(duì)于128維的頭,使用16個(gè)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]);
}
仔細(xì)看就會(huì)發(fā)現(xiàn),OpenEvolve的一個(gè)亮點(diǎn),就是自己發(fā)現(xiàn)了一個(gè)非常巧妙的優(yōu)化——
對(duì)于128維的注意力頭,如果把數(shù)據(jù)按8個(gè)一組來(lái)處理,剛好就能完美匹配Apple Silicon硬件的SIMD寬度。
這就相當(dāng)于自動(dòng)踩中了硬件的「甜點(diǎn)區(qū)」,完全不需要任何人工調(diào)優(yōu),就能把性能直接拉滿,讓硬件利用率最大化!
2. 兩階段在線Softmax(Two-Pass Online Softmax)
// Pass 1:在線計(jì)算最大值,用于數(shù)值穩(wěn)定T max_score = T(-INFINITY);for (uint key_pos = 0; key_pos < SEQ_LEN; key_pos++) { T score = compute_attention_score(query_vec, key_vec) * scale_val; max_score = max(max_score, score);}// Pass 2:融合Softmax計(jì)算與后續(xù)的值累加T sum_exp = T(0.0);vec<T, 8> output_acc_v[HEAD_DIM / 8];for (uint key_pos = 0; key_pos < SEQ_LEN; key_pos++) { T exp_score = exp(current_score - max_score); sum_exp += exp_score; // 關(guān)鍵創(chuàng)新:將權(quán)重與value向量相乘并累加的過(guò)程相融合 output_acc_v[d_vec] += exp_score * ((device vec<T, 8>*)(values + v_base))[d_vec];}
// Pass 1:在線計(jì)算最大值,用于數(shù)值穩(wěn)定
T max_score = T(-INFINITY);
for (uint key_pos = 0; key_pos < SEQ_LEN; key_pos++) {
T score = compute_attention_score(query_vec, key_vec) * scale_val;
max_score = max(max_score, score);
}
// Pass 2:融合Softmax計(jì)算與后續(xù)的值累加
T sum_exp = T(0.0);
vec<T, 8> output_acc_v[HEAD_DIM / 8];
for (uint key_pos = 0; key_pos < SEQ_LEN; key_pos++) {
T exp_score = exp(current_score - max_score);
sum_exp += exp_score;
// 關(guān)鍵創(chuàng)新:將權(quán)重與value向量相乘并累加的過(guò)程相融合
output_acc_v[d_vec] += exp_score * ((device vec<T, 8>*)(values + v_base))[d_vec];
}
在這個(gè)過(guò)程中,OpenEvolve做了一個(gè)很聰明的創(chuàng)新:把原來(lái)分開的兩個(gè)步驟——Softmax歸一化和值累加,融合到了一個(gè)計(jì)算循環(huán)中。
原本,傳統(tǒng)算法要三個(gè)階段才能跑完:先算注意力得分,再歸一化,再加權(quán)求和。
現(xiàn)在直接兩步搞定,流程更簡(jiǎn)潔,還大大降低了對(duì)內(nèi)存帶寬的占用,自然就跑得更快、更省資源了。
3. 針對(duì)GQA的特定內(nèi)存布局優(yōu)化
// 針對(duì)GQA的5:1查詢頭/鍵值頭比例,進(jìn)行直接映射const uint kv_head_idx = head_idx / HEADS_PER_KV; // 精巧的頭映射邏輯// 實(shí)現(xiàn)合并內(nèi)存訪問(wèn)模式const uint q_base = batch_idx * (NUM_HEADS * SEQ_LEN * HEAD_DIM) + head_idx * (SEQ_LEN * HEAD_DIM) + query_pos * HEAD_DIM;
// 針對(duì)GQA的5:1查詢頭/鍵值頭比例,進(jìn)行直接映射
const uint kv_head_idx = head_idx / HEADS_PER_KV; // 精巧的頭映射邏輯
// 實(shí)現(xiàn)合并內(nèi)存訪問(wèn)模式
const uint q_base = batch_idx * (NUM_HEADS * SEQ_LEN * HEAD_DIM) +
head_idx * (SEQ_LEN * HEAD_DIM) +
query_pos * HEAD_DIM;
在此處,OpenEvolve的創(chuàng)新點(diǎn)在于,專門針對(duì)Qwen3模型的特殊結(jié)構(gòu)做了優(yōu)化。
這個(gè)模型的查詢頭與鍵值頭的比例是特有的40:8(即5:1),系統(tǒng)充分利用了這個(gè)特性,設(shè)計(jì)出一種獨(dú)特的合并內(nèi)存訪問(wèn)(Coalesced Memory Access)的模式。
這種模式,特別適合Apple Silicon的統(tǒng)一內(nèi)存架構(gòu),堪稱是量身定制,效率極高,性能拉滿。
評(píng)測(cè)結(jié)果
果然,最終進(jìn)化生成的核函數(shù)在各項(xiàng)綜合基準(zhǔn)測(cè)試中,都展現(xiàn)出了顯著的性能提升:
核心性能指標(biāo)增益
- 解碼速度(Decode Speed):平均提升+12.5%(標(biāo)準(zhǔn)差σ = 38.3%)
- 預(yù)填充速度(Prefill Speed):平均提升+14.4%(標(biāo)準(zhǔn)差σ = 17.6%)
- 總吞吐量(Total Throughput):平均提升+10.4%(標(biāo)準(zhǔn)差σ = 30.7%)
- 內(nèi)存使用量(Memory Usage):平均降低+0.99%(標(biāo)準(zhǔn)差σ = 1.7%)
- 正確性(Correctness):保持100%的數(shù)值精度
- 可靠性(Reliability):零GPU錯(cuò)誤或核函數(shù)崩潰
詳細(xì)基準(zhǔn)測(cè)試結(jié)果
而且其中最為矚目的是,在處理重復(fù)性模式生成任務(wù)時(shí),OpenEvolve進(jìn)化生成的核函數(shù)直接把解碼速度提升了足足106%!
如此一來(lái)也就充分證明了,這個(gè)核函數(shù)在應(yīng)對(duì)特定類型的工作負(fù)載時(shí),真的性能爆棚。
統(tǒng)計(jì)分析
總之,從統(tǒng)計(jì)結(jié)果來(lái)看,OpenEvolve在某些特定類型的工作負(fù)載上,確實(shí)有很強(qiáng)的優(yōu)化能力,能挖掘出原先的手寫代碼難以觸及的性能潛力。
在20個(gè)不同測(cè)試任務(wù)中,它在其中7個(gè)任務(wù)上提升非常明顯,性能增長(zhǎng)超過(guò)了25%,體現(xiàn)出了「質(zhì)的飛躍」。
- 顯著增益(>25%):7/20個(gè)基準(zhǔn)
- 中等增益(5-25%):3/20個(gè)基準(zhǔn)
- 性能持平(±5%):4/20個(gè)基準(zhǔn)
- 性能回退(<-5%):6/20個(gè)基準(zhǔn)
背后功臣:高魯棒性評(píng)估系統(tǒng)
注意,這一項(xiàng)目之所以能成功,有一個(gè)關(guān)鍵功臣就是OpenEvolve背后的評(píng)估系統(tǒng)。
它不是普通的跑分工具,而是專門為GPU核函數(shù)這種「硬核」代碼而設(shè)計(jì)的,專為應(yīng)對(duì)GPU核函數(shù)開發(fā)過(guò)程中的各種挑戰(zhàn)。
GPU安全特性
- 命令緩沖區(qū)保護(hù):自動(dòng)檢測(cè)Metal命令緩沖區(qū)的錯(cuò)誤并從中恢復(fù)。
- 內(nèi)存訪問(wèn)違規(guī)處理:安全地處理GPU內(nèi)存訪問(wèn)違規(guī)。
- 重試邏輯:為瞬時(shí)GPU錯(cuò)誤提供指數(shù)退避重試機(jī)制。
- 回退機(jī)制:當(dāng)核函數(shù)徹底失敗時(shí),能夠優(yōu)雅地降級(jí)到備用方案。
全面的錯(cuò)誤統(tǒng)計(jì)
# 評(píng)估結(jié)果示例{ "metal_safety_statistics": { "metal_command_buffer_errors": 0, "metal_memory_violations": 0, "total_metal_errors": 0, "safety_score": 100.0 }}
正是因?yàn)檫@套評(píng)估系統(tǒng)特別穩(wěn)、魯棒性極高,OpenEvolve才敢放開手腳去嘗試各種激進(jìn)的優(yōu)化方案,而不用擔(dān)心「越改越崩」。要知道,GPU核函數(shù)這種實(shí)驗(yàn)性代碼本來(lái)就很容易出錯(cuò),一點(diǎn)小問(wèn)題就可能導(dǎo)致整個(gè)程序掛掉。所以,有這么一套高魯棒性的機(jī)制兜底,才讓系統(tǒng)能放心大膽地「卷」出新花樣,把性能一步步推上去。
# 評(píng)估結(jié)果示例
{
"metal_safety_statistics": {
"metal_command_buffer_errors": 0,
"metal_memory_violations": 0,
"total_metal_errors": 0,
"safety_score": 100.0
}
}
技術(shù)深度剖析
面向GPU核函數(shù)的進(jìn)化架構(gòu)
此外,項(xiàng)目的成功也離不開OpenEvolve中多個(gè)組件的協(xié)同工作:
- 智能代碼標(biāo)記:通過(guò)特定標(biāo)記,確保進(jìn)化過(guò)程僅針對(duì)Metal核函數(shù)源代碼,同時(shí)完整保留與MLX框架的集成代碼。
# EVOLVE-BLOCK-STARTkernel_source = """http:// 僅此塊內(nèi)的Metal核函數(shù)代碼會(huì)被進(jìn)化"""# EVOLVE-BLOCK-END
# EVOLVE-BLOCK-START
kernel_source = """
// 僅此塊內(nèi)的Metal核函數(shù)代碼會(huì)被進(jìn)化
"""
# EVOLVE-BLOCK-END
- 富含上下文信息的提示詞:為進(jìn)化提供的提示詞包含了性能數(shù)據(jù)、硬件規(guī)格和優(yōu)化方向指南。
- 多目標(biāo)評(píng)分機(jī)制:在性能、正確性和安全性等多個(gè)目標(biāo)之間進(jìn)行權(quán)衡評(píng)分。
- 特定硬件驗(yàn)證:所有測(cè)試和優(yōu)化都針對(duì)Apple Silicon硬件進(jìn)行。
面向GPU優(yōu)化的提示詞工程
與此同時(shí),為進(jìn)化過(guò)程提供的提示詞,也給OpenEvolve提供了至關(guān)重要的上下文信息:
## 硬件上下文信息- Apple Silicon M-series GPU with unified memory(GPU為Apple Silicon M系列,采用統(tǒng)一內(nèi)存架構(gòu))- SIMD width: 8 elements optimal for vec<T, 8>(最佳SIMD寬度為8個(gè)元素,適用于vec<T, 8>類型)- Thread group size: 32 threads for optimal occupancy(最佳線程組大小為32線程,以達(dá)到最高硬件占用率)## 優(yōu)化目標(biāo)- Minimize memory bandwidth usage(最小化內(nèi)存帶寬占用)- Maximize SIMD utilization(最大化SIMD指令利用率)- Exploit GQA 40:8 head structure(充分利用GQA模型的40:8頭結(jié)構(gòu)特性)- Maintain numerical stability(保持?jǐn)?shù)值計(jì)算的穩(wěn)定性)## 性能基線Current decode speed: 140.6 tokens/sec(當(dāng)前解碼速度:140.6 token/秒)Target improvement: >5% speedup required(目標(biāo):需要>5%的速度提升)
## 硬件上下文信息
- Apple Silicon M-series GPU with unified memory(GPU為Apple Silicon M系列,采用統(tǒng)一內(nèi)存架構(gòu))
- SIMD width: 8 elements optimal for vec<T, 8>(最佳SIMD寬度為8個(gè)元素,適用于vec<T, 8>類型)
- Thread group size: 32 threads for optimal occupancy(最佳線程組大小為32線程,以達(dá)到最高硬件占用率)
## 優(yōu)化目標(biāo)
- Minimize memory bandwidth usage(最小化內(nèi)存帶寬占用)
- Maximize SIMD utilization(最大化SIMD指令利用率)
- Exploit GQA 40:8 head structure(充分利用GQA模型的40:8頭結(jié)構(gòu)特性)
- Maintain numerical stability(保持?jǐn)?shù)值計(jì)算的穩(wěn)定性)
## 性能基線
Current decode speed: 140.6 tokens/sec(當(dāng)前解碼速度:140.6 token/秒)
Target improvement: >5% speedup required(目標(biāo):需要>5%的速度提升)
更深遠(yuǎn)的影響
總之,本次對(duì)GPU核函數(shù)的成功優(yōu)化,揭示了以下幾點(diǎn)重要原則:
1. 專業(yè)知識(shí)的自動(dòng)化探索與發(fā)現(xiàn)
OpenEvolve發(fā)現(xiàn)的優(yōu)化策略,涵蓋了眾多需要深厚專業(yè)知識(shí)的領(lǐng)域:
- Apple Silicon的架構(gòu)細(xì)節(jié)
- Metal編程語(yǔ)言的精妙之處
- 注意力算法的各種變體
- 內(nèi)存訪問(wèn)模式的優(yōu)化
這些領(lǐng)域知識(shí)并非由人類工程師直接提供,而是在進(jìn)化探索的過(guò)程中自主涌現(xiàn)的。
2. 面向特定硬件的自適應(yīng)優(yōu)化
最終的優(yōu)化方案是為Apple Silicon硬件量身定制的,這就表明,OpenEvolve具備自動(dòng)發(fā)掘、利用特定硬件特性的能力。
3. 算法層面的創(chuàng)新
進(jìn)化過(guò)程發(fā)現(xiàn)的「兩階段在線Softmax(two-pass online softmax)」算法,本身就是一項(xiàng)新穎的技術(shù)貢獻(xiàn),應(yīng)用潛力已經(jīng)遠(yuǎn)遠(yuǎn)超出了本次實(shí)驗(yàn)的特定場(chǎng)景。
4. 具備投產(chǎn)應(yīng)用的價(jià)值
這些優(yōu)化并非「紙上談兵」,而是在真實(shí)的Transformer推理負(fù)載中能帶來(lái)顯著性能提升的實(shí)用技術(shù),完全具備在生產(chǎn)環(huán)境中部署的價(jià)值。
核心技術(shù)架構(gòu)升級(jí)
并且,自項(xiàng)目啟動(dòng)以來(lái),Sharma已對(duì)OpenEvolve的核心能力進(jìn)行了顯著增強(qiáng):
- 可復(fù)現(xiàn)性(Reproducibility)
通過(guò)完全確定性的進(jìn)化過(guò)程,保證科研級(jí)別的可復(fù)現(xiàn)性。
random_seed: 42 # 確保每次運(yùn)行結(jié)果完全一致
random_seed: 42 # 確保每次運(yùn)行結(jié)果完全一致
- 可視化(Visualization)
提供可交互的進(jìn)化樹視圖,支持實(shí)時(shí)性能追蹤。
python scripts/visualizer.py
python scripts/visualizer.py
- 島嶼進(jìn)化(Island Evolution)
通過(guò)種群遷移實(shí)現(xiàn)并行進(jìn)化,以增強(qiáng)解空間的探索能力。
database: num_islands: 5 migration_interval: 25
database:
num_islands: 5
migration_interval: 25
- 穩(wěn)健的檢查點(diǎn)機(jī)制(Robust Checkpointing)
支持自動(dòng)保存進(jìn)度,并能從中斷處恢復(fù)進(jìn)化會(huì)話。
快速開始
所以,你準(zhǔn)備好親自上手,挑戰(zhàn)GPU核函數(shù)優(yōu)化或其他復(fù)雜難題了嗎?
輸入以下代碼,就可以快速開始了:
# 克隆倉(cāng)庫(kù)git clone https://github.com/codelion/openevolve.gitcd openevolve# 安裝依賴pip install -e .# 運(yùn)行MLX核函數(shù)優(yōu)化示例cd examples/mlx_metal_kernel_optpython openevolve-run.py initial_program.py evaluator.py --iterations 25
# 克隆倉(cāng)庫(kù)
git clone https://github.com/codelion/openevolve.git
cd openevolve
# 安裝依賴
pip install -e .
# 運(yùn)行MLX核函數(shù)優(yōu)化示例
cd examples/mlx_metal_kernel_opt
python openevolve-run.py initial_program.py evaluator.py --iterations 25
如果想進(jìn)一步了解更深入的信息,建議仔細(xì)閱讀一下這幾個(gè)文檔。
GPU內(nèi)核優(yōu)化指南: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