DeepSeek-R1自寫(xiě)CUDA內(nèi)核跑分屠榜!斯坦福學(xué)霸狂飆GPU編程自動(dòng)化挑戰(zhàn)人類(lèi)
近日,來(lái)自斯坦福和普林斯頓的研究者發(fā)現(xiàn),DeepSeek-R1已經(jīng)能生成自定義CUDA內(nèi)核了,而且還在一眾推理模型中,直接拿下了TOP 1!
緊隨其后,OpenAI o1和Claude 3.5 Sonnet分別排第二和第三。
具體過(guò)程,就是給定一個(gè)PyTorch程序,讓模型對(duì)其優(yōu)化,然后生成一個(gè)包含自定義CUDA內(nèi)核的PyTorch版本。
在此期間中,模型可以自由決定優(yōu)化哪些操作,以提高計(jì)算效率。
引導(dǎo)模型生成GPU內(nèi)核,潛力巨大
如今,傳統(tǒng)人工優(yōu)化內(nèi)核的方式,在效率上已經(jīng)不足以應(yīng)對(duì)大量涌現(xiàn)的AI模型架構(gòu)和硬件平臺(tái)。
既然是為了LLM進(jìn)行優(yōu)化,那么,我們是否也能夠借助LLM來(lái)模擬AI工程師的工作流程,憑借編譯器反饋、硬件規(guī)格等豐富的信息,自動(dòng)編寫(xiě)出準(zhǔn)確且經(jīng)過(guò)優(yōu)化的內(nèi)核代碼呢?
為此,研究團(tuán)隊(duì)提出了一種全新的KernelBench框架,用于生成和評(píng)估不同AI任務(wù)(單個(gè)操作、操作序列、端到端架構(gòu))的內(nèi)核,并模擬了工程師迭代優(yōu)化的過(guò)程。
論文地址:https://arxiv.org/abs/2502.10517
GPU的本質(zhì),是硬件依賴(lài)的。因此,研究者們希望嘗試,看是否能通過(guò)以下方式,引導(dǎo)模型生成GPU內(nèi)核。
首先,向模型提供硬件信息(如內(nèi)存帶寬、TFLOPS),以針對(duì)特定GPU(A100、H100等)進(jìn)行優(yōu)化。
然后,要讓模型在上下文中展示代表性的內(nèi)核優(yōu)化技巧,例如矩陣乘法中的分塊(tiling)或Flash Attention中的在線(xiàn)softmax。
研究者們發(fā)現(xiàn),只有更強(qiáng)大的模型,會(huì)偶爾表現(xiàn)出利用這些優(yōu)化的能力。
比如,DeepSeek-R1有時(shí)會(huì)使用特定于硬件的指令(如Tensor Core的wmma),但往往無(wú)法正確編譯或使用它們,從而限制了最終性能。
總的來(lái)說(shuō),研究發(fā)現(xiàn),前沿模型在KernelBench上的開(kāi)箱即用性較差,OpenAI o1和DeepSeek-R1在不到20%的任務(wù)上超過(guò)PyTorch Eager基線(xiàn)。
這些模型生成的內(nèi)核存在大量執(zhí)行錯(cuò)誤、功能正確性問(wèn)題,并且無(wú)法進(jìn)行特定平臺(tái)的優(yōu)化。
具體來(lái)說(shuō),研究者發(fā)現(xiàn):
- 對(duì)模型而言,編寫(xiě)功能正確的內(nèi)核仍然具有挑戰(zhàn)性;
- 模型通過(guò)優(yōu)化展示了生成高性能內(nèi)核的潛力;
- 利用反饋對(duì)于減少執(zhí)行錯(cuò)誤和發(fā)現(xiàn)更快的方案很重要。
當(dāng)然,KernelBench目前還只是讓GPU加速奔跑的起點(diǎn),但也是讓整個(gè)GPU編程自動(dòng)化的起始催化劑。
令人興奮的是,現(xiàn)在已經(jīng)有了許多新的工作,專(zhuān)注于解決KernelBench中涉及的問(wèn)題。
比如2月12日,英偉達(dá)就發(fā)出博客文章,探討如何使用DeepSeek-R1進(jìn)行GPU內(nèi)核自動(dòng)生成與推理時(shí)scaling。
隨后在2月12日,Meta也發(fā)文測(cè)試了前沿模型編寫(xiě)GPU內(nèi)核方面的性能,他們發(fā)現(xiàn),最佳模型可以在KernelBench上提供平均1.8倍的加速。
Sakana AI更是推出「AI CUDA工程師」,讓AI自己寫(xiě)代碼優(yōu)化CUDA內(nèi)核,速度聲稱(chēng)比PyTorch原生實(shí)現(xiàn)快了10-100倍。
如雨后春筍般出現(xiàn)的研究表明,如今,我們已經(jīng)進(jìn)入了AI驅(qū)動(dòng)加速AI的新紀(jì)元!
在未來(lái),KernelBench還將持續(xù)演進(jìn)。它不會(huì)僅限于當(dāng)前收集的250個(gè)問(wèn)題,還可以擴(kuò)展到新的AI任務(wù)。與此同時(shí),評(píng)測(cè)指標(biāo)fast_p也可以隨著時(shí)間的推移進(jìn)行調(diào)整,提高加速門(mén)檻,以推動(dòng)更高效的優(yōu)化方案
KernelBench:AI內(nèi)核生成框架
KernelBench是一個(gè)開(kāi)源框架,旨在評(píng)估LLM在編寫(xiě)GPU內(nèi)核方面的能力。
任務(wù)格式
KernelBench包含250個(gè)任務(wù),涵蓋了各種AI工作負(fù)載,并且易于擴(kuò)展到新的工作負(fù)載。
下圖1展示了KernelBench評(píng)估語(yǔ)言模型(LM)生成高性能GPU內(nèi)核的能力。KernelBench要求語(yǔ)言模型為給定的目標(biāo)PyTorch模型架構(gòu)生成優(yōu)化的CUDA內(nèi)核,并進(jìn)行自動(dòng)化評(píng)估。
任務(wù)輸入
給定一個(gè)AI工作負(fù)載,任務(wù)的輸入是用PyTorch編寫(xiě)的參考實(shí)現(xiàn)。模仿研究人員的工作流程,PyTorch代碼包含一個(gè)繼承自torch.nn.Module ()的名為Model的類(lèi),其中標(biāo)準(zhǔn)的__init__和 forward () 函數(shù)(以及任何輔助函數(shù))被填充為AI工作負(fù)載的PyTorch操作。
AI算法通常在大型張量數(shù)據(jù)上進(jìn)行操作。工作負(fù)載的最優(yōu)內(nèi)核取決于張量的大小和數(shù)據(jù)類(lèi)型(如BF16、FP8)。因此,每個(gè)任務(wù)還包含get_inputs ()和get_init_inputs ()函數(shù),用于指定內(nèi)核需要處理的精確輸入張量。
任務(wù)輸出
給定輸入,LLM需要輸出一個(gè)繼承自torch.nn.Module ()的名為ModelNew的新類(lèi),其中包含自定義優(yōu)化。例如,LLM可以在forward ()函數(shù)中使用PyTorch的CUDA-C擴(kuò)展來(lái)集成內(nèi)聯(lián)內(nèi)核調(diào)用。
為了成功完成任務(wù),模型需要確定(1)Model類(lèi)中的哪些操作最能從優(yōu)化中受益;(2)如何優(yōu)化這些操作。LLM可以使用任何硬件高效技術(shù)(如融合和分塊)或?qū)S弥噶睿ㄈ鐝埩亢诵模┮约叭魏尉幊處?kù)(如PTX、CUDA、CUTLASS、Triton、ThunderKittens)。
任務(wù)選擇
這些任務(wù)根據(jù)包含的基本操作或PyTorch庫(kù)函數(shù)的數(shù)量分為三個(gè)級(jí)別。
Level 1包含100個(gè)單個(gè)基本操作,如卷積、矩陣乘法等AI基礎(chǔ)構(gòu)建塊。雖然PyTorch調(diào)用了經(jīng)過(guò)優(yōu)化的閉源內(nèi)核,讓LLM超越基線(xiàn)具有挑戰(zhàn)性,但如果能生成開(kāi)源內(nèi)核,將有重要價(jià)值。
Level 2包含100個(gè)操作序列,如卷積、ReLU和Bias的組合,這些操作可以融合成一個(gè)內(nèi)核以提高性能。
由于基于編譯器的工具(如PyTorch編譯器)在融合方面非常有效,LLM要在這方面超越它們也具有挑戰(zhàn)性。然而,LLM可能會(huì)提出更復(fù)雜的算法。
Level 3包含50個(gè)完整的機(jī)器學(xué)習(xí)架構(gòu),如AlexNet和MiniGPT等,這些架構(gòu)在運(yùn)行訓(xùn)練和推理時(shí)對(duì)內(nèi)核的性能要求極高。
評(píng)估指標(biāo)
KernelBench引入了一個(gè)新的評(píng)估指標(biāo)fast_p,衡量生成的內(nèi)核中功能正確且加速大于閾值p的任務(wù)比例。
通過(guò)調(diào)整閾值參數(shù)p,研究者可以評(píng)估不同加速閾值下的內(nèi)核性能,并捕捉加速分布。
fast_0相當(dāng)于LLM的正確率,它衡量代碼功能正確的任務(wù)比例,而不考慮其速度。在實(shí)際評(píng)估中,通常以p=1作為起點(diǎn)。
LLM在KernelBench上的表現(xiàn)
研究人員對(duì)一系列LLM在KernelBench上進(jìn)行了評(píng)估,結(jié)果顯示,目前的LLM在生成正確且優(yōu)于PyTorch基線(xiàn)速度的內(nèi)核方面仍有困難。
在一次性基線(xiàn)評(píng)估中,LLM生成的內(nèi)核平均在不到20%的任務(wù)中比PyTorch Eager更快。這表明,僅靠簡(jiǎn)單提示,LLM很難在性能上超越傳統(tǒng)的PyTorch內(nèi)核。
LLM生成的內(nèi)核存在大量的執(zhí)行錯(cuò)誤和功能正確性問(wèn)題,經(jīng)常由于簡(jiǎn)單的編譯器和運(yùn)行時(shí)錯(cuò)誤而失敗。
執(zhí)行錯(cuò)誤包括CUDA/nvcc/Python編譯時(shí)錯(cuò)誤、CUDA內(nèi)存違規(guī)和運(yùn)行時(shí)錯(cuò)誤等;正確性錯(cuò)誤則主要表現(xiàn)為輸出張量形狀和值不匹配。
推理模型(o1,R1)生成的錯(cuò)誤解決方案(<55%)比其他模型(>70%)少。然而,這主要是由于執(zhí)行失敗的情況較少。在功能正確性方面,所有LLM都面臨類(lèi)似程度的困難。
在性能方面,模型生成功能正確的內(nèi)核在多數(shù)情況下也未能優(yōu)于PyTorch基線(xiàn)。
隨著p的提高,模型生成的內(nèi)核中能達(dá)到要求的比例越來(lái)越低。在p=1時(shí),在所有KernelBench級(jí)別中,不到15%的LLM生成內(nèi)核優(yōu)于PyTorch。
推理模型通常在提供加速方面優(yōu)于其他LLM,但總體仍有不足。
模型生成的內(nèi)核在不同硬件平臺(tái)上的通用性不佳。DeepSeek-R1生成的內(nèi)核在NVIDIA L40S上實(shí)現(xiàn)了36%的加速,而在NVIDIA A10G上則為47%。
這表明LLM在生成特定目標(biāo)硬件的高效內(nèi)核方面還存在很大的提升空間。
模型能力分析
測(cè)試時(shí)利用KernelBench環(huán)境反饋
正如上面觀(guān)察到的,執(zhí)行失敗是LM生成的內(nèi)核中最常見(jiàn)的失敗模式。
KernelBench提供的環(huán)境允許收集豐富的信號(hào),包括編譯器錯(cuò)誤、正確性檢查和運(yùn)行時(shí)性能分析指標(biāo),所有這些都可以反饋給LM以幫助它解決內(nèi)核故障。
為了探索LM如何利用這些反饋,研究團(tuán)隊(duì)評(píng)估和比較了兩個(gè)基線(xiàn):第一個(gè)令LM為每個(gè)KernelBench任務(wù)生成多個(gè)并行樣本,另一個(gè)通過(guò)允許LM利用執(zhí)行反饋逐步改進(jìn),依次為每個(gè)KernelBench任務(wù)生成內(nèi)核。
重復(fù)采樣
KernelBench環(huán)境支持對(duì)LM生成的內(nèi)核進(jìn)行程序化驗(yàn)證,允許研究團(tuán)隊(duì)收集和評(píng)估每個(gè)任務(wù)的多個(gè)LM生成。他們使用fastp@k評(píng)估這種重復(fù)采樣方法。重復(fù)采樣有助于LM發(fā)現(xiàn)更多快速且正確的解決方案。
如下圖4所示,隨著k值的增加,在DeepSeek-V3和Llama 3.1 70B的三個(gè)級(jí)別上,通過(guò)高溫度參數(shù)重復(fù)采樣可以提升fast1的性能。
值得注意的是,在Level 2上,DeepSeek-V3在k=100個(gè)樣本時(shí)達(dá)到了37%的fast1,而在單次提示基線(xiàn)中僅為4%。
通過(guò)檢查樣本,我們發(fā)現(xiàn)高溫采樣有助于探索解決方案空間,增加了生成具有更好優(yōu)化的無(wú)錯(cuò)誤內(nèi)核的機(jī)會(huì)。然而,如果一個(gè)模型解決任務(wù)的固有概率非常低,僅僅增加采樣預(yù)算的影響有限。
例如,即使嘗試了100個(gè)樣本,DeepSeek-V3也從未能夠?yàn)長(zhǎng)evel 1中的一組34個(gè)卷積變體生成任何正確的解決方案。
生成結(jié)果的迭代優(yōu)化
KernelBench環(huán)境非常適合收集編譯器反饋、執(zhí)行錯(cuò)誤和使用PyTorch分析器等工具進(jìn)行的時(shí)間分析,作為真實(shí)信號(hào)(ground-truth signals)。
研究人員研究了利用這些反饋是否能幫助語(yǔ)言模型(LMs)迭代優(yōu)化其生成結(jié)果。
下圖5顯示,KernelBench框架使模型能夠在迭代優(yōu)化過(guò)程中接收并利用反饋。這些真實(shí)信號(hào)包括NVCC編譯器錯(cuò)誤信息、執(zhí)行統(tǒng)計(jì)數(shù)據(jù)(例如正確性檢查和掛鐘時(shí)間),以及PyTorch分析器(操作時(shí)間分解)。
他們?cè)诙噍嗊^(guò)程中為模型提供每次生成的反饋:在初始生成后,向模型提供其之前的生成結(jié)果G,以及當(dāng)前生成對(duì)應(yīng)的編譯器/執(zhí)行反饋E和/或分析器輸出P。
然后將每次生成及其后續(xù)反饋定義為一輪(turn),并在N輪內(nèi)運(yùn)行這一迭代優(yōu)化過(guò)程。利用執(zhí)行反饋有助于減少錯(cuò)誤,并隨時(shí)間提升整體加速效果。
研究人員在下表2中檢查了第N=10輪時(shí)的fast1行為,發(fā)現(xiàn)迭代優(yōu)化在不同模型和KernelBench的各個(gè)級(jí)別上均持續(xù)提升了性能。
DeepSeek-R1在Level 2上的改進(jìn)最為顯著,其中執(zhí)行反饋E和分析器反饋P的組合將fast1從36%提升至72%(如下圖6所示)。
此外,通過(guò)分析迭代優(yōu)化軌跡,他們發(fā)現(xiàn)模型在執(zhí)行反饋E的幫助下能更有效地自我糾正,尤其是在修復(fù)與執(zhí)行錯(cuò)誤相關(guān)的問(wèn)題上。
DeepSeek-R1在Level 1和Level 2上,經(jīng)過(guò)10輪優(yōu)化后,能在超過(guò)90%的任務(wù)中生成功能正確的內(nèi)核(下表9)。
然而,剩余的錯(cuò)誤內(nèi)核幾乎總是由于功能不正確而失敗,這可能是因?yàn)檎_性反饋的顆粒度不如執(zhí)行失敗信息細(xì)致。
比較重復(fù)采樣與迭代優(yōu)化
在上表2中,研究人員比較了在固定10次推理調(diào)用預(yù)算下重復(fù)采樣和迭代優(yōu)化的效果。兩種方法相較于單次基線(xiàn)(one-shot baseline)均取得了顯著改進(jìn),其中迭代優(yōu)化在6個(gè)案例中的5個(gè)中表現(xiàn)更優(yōu)。
然而,他們最終發(fā)現(xiàn),測(cè)試時(shí)方法的效果本質(zhì)上依賴(lài)于基礎(chǔ)模型的質(zhì)量。
例如,在重復(fù)采樣中,DeepSeek-V3在所有三個(gè)級(jí)別上始終優(yōu)于Llama-3.1 70B。類(lèi)似地,在迭代優(yōu)化中,DeepSeek-R1通過(guò)反饋E和P持續(xù)改進(jìn),而DeepSeek-V3和Llama-3.1 70B并非總能從這些信息中獲益。
提供硬件知識(shí)生成硬件高效內(nèi)核
顯然,語(yǔ)言模型在生成硬件高效內(nèi)核方面表現(xiàn)有限。
這可能是由于訓(xùn)練數(shù)據(jù)中內(nèi)核代碼的稀缺性,以及最佳內(nèi)核可能需要根據(jù)硬件平臺(tái)的特定屬性而變化。
在本案例研究中,研究團(tuán)隊(duì)探索了提供以下內(nèi)容的效果:(1)提供內(nèi)核工程最佳實(shí)踐的示例,并將其置于(語(yǔ)言模型的)上下文之中;(2)提供詳細(xì)的硬件規(guī)格說(shuō)明,并將其置于(語(yǔ)言模型的)上下文之中。
硬件感知的上下文示例
編寫(xiě)良好的內(nèi)核通常使用融合(fusion)、分塊(tiling)、重計(jì)算(recompute)和異步(asynchrony)等技術(shù)來(lái)最大化性能。
具體來(lái)說(shuō),研究人員納入了三個(gè)上下文示例:使用操作融合的GeLU、使用分塊的矩陣乘法,以及展示共享內(nèi)存I/O管理的最小Flash-Attention內(nèi)核。
結(jié)果則顯示,上下文示例降低了語(yǔ)言模型的整體fast1分?jǐn)?shù),因?yàn)槟P蛧L試了更激進(jìn)的優(yōu)化策略,但導(dǎo)致更多執(zhí)行失敗。與上面基線(xiàn)生成的代碼相比,OpenAI o1在使用少樣本示例時(shí)生成的代碼平均長(zhǎng)度增加了25%。
然而,在正確的解決方案中,語(yǔ)言模型應(yīng)用了一些有趣的優(yōu)化:他們發(fā)現(xiàn),在KernelBench Level 1的77%的GEMM變體中,o1應(yīng)用了分塊并提升了速度,優(yōu)于單次基線(xiàn)。在Level 2,o1在11個(gè)問(wèn)題上應(yīng)用了激進(jìn)的共享內(nèi)存I/O管理,并能夠超越PyTorch Eager。
指定硬件信息
正如上面討論過(guò)的,內(nèi)核性能因硬件平臺(tái)而異。
例如,F(xiàn)lashAttention-2從NVIDIA A100遷移到H100 GPU時(shí)硬件利用率下降了47%。FlashAttention-3是一個(gè)完全不同的算法,專(zhuān)為H100編寫(xiě)。
在本研究中,研究團(tuán)隊(duì)探討語(yǔ)言模型是否能利用上下文中的以下信息生成改進(jìn)的內(nèi)核:(1)硬件規(guī)格,例如GPU類(lèi)型(H100、A100等)、內(nèi)存大小、帶寬、TFLOPS;(2)硬件知識(shí)(例如線(xiàn)程、線(xiàn)程束、線(xiàn)程塊、流多處理器的定義)。
結(jié)果顯示,模型很少生成針對(duì)底層硬件優(yōu)化的內(nèi)核,這表明未來(lái)模型仍有改進(jìn)空間。
某些新一代GPU(例如H100)引入了與前代不同的新硬件單元和指令。提供硬件信息對(duì)Llama 3.1 70B或DeepSeek-V3的輸出影響不大。
有趣的是,他們發(fā)現(xiàn)OpenAI o1和DeepSeek-R1生成的部分內(nèi)核使用了特定于硬件的指令和優(yōu)化。
R1在大約50%的Level 1矩陣乘法問(wèn)題中嘗試生成warp矩陣乘加(wmma)指令(下圖10),盡管大多數(shù)未能編譯。
在功能正確的生成中,R1和o1在每個(gè)級(jí)別產(chǎn)生了1-3個(gè)異常值,比Level 4基線(xiàn)快2倍以上。
總體而言,研究團(tuán)隊(duì)發(fā)現(xiàn),與提供硬件信息相比,語(yǔ)言模型通過(guò)少樣本示例調(diào)整策略時(shí)表現(xiàn)更好。
結(jié)論
研究人員在本論文中提出了KernelBench,一個(gè)為語(yǔ)言模型驅(qū)動(dòng)的內(nèi)核優(yōu)化奠定基礎(chǔ)的框架;他們?cè)u(píng)估了多種模型和方法,分析了它們的優(yōu)勢(shì)和局限性,并提供了改進(jìn)機(jī)會(huì)的見(jiàn)解。
總的來(lái)說(shuō),盡管大多數(shù)基準(zhǔn)測(cè)試最終會(huì)達(dá)到飽和,但KernelBench被設(shè)計(jì)為隨著新的AI工作負(fù)載的出現(xiàn)而動(dòng)態(tài)演進(jìn)。
他們的fastp指標(biāo)可以隨時(shí)間調(diào)整,以測(cè)量相對(duì)于日益先進(jìn)的基線(xiàn)(即超出工作中使用的PyTorch基線(xiàn))的加速閾值(p)。
由于PyTorch具備跨硬件平臺(tái)兼容性,KernelBench中基于PyTorch的任務(wù)可以在每個(gè)新硬件平臺(tái)發(fā)布時(shí)進(jìn)行評(píng)估。最后,與許多基準(zhǔn)測(cè)試不同,在KernelBench上的成功直接映射到生產(chǎn)價(jià)值和現(xiàn)實(shí)世界的影響(降低成本并大規(guī)模減少能耗)。
這些特性確保了KernelBench在不斷演變的AI領(lǐng)域中將保持其價(jià)值。
下一步工作
研究團(tuán)隊(duì)表示在當(dāng)前可用模型下,KernelBench仍有顯著的改進(jìn)空間。
首先,未來(lái)的工作可以探索開(kāi)發(fā)先進(jìn)的微調(diào)和推理技術(shù),包括智能體工作流(agentic workflows)。由于CUDA是一種低資源語(yǔ)言,未來(lái)工作開(kāi)源更多高質(zhì)量數(shù)據(jù)將具有重要價(jià)值。
其次,在他們的實(shí)驗(yàn)中,語(yǔ)言模型生成的是原始CUDA代碼。然而,未來(lái)的工作可以探索使用其他編程抽象(例如ThunderKittens、CUTLASS、Triton等)生成代碼是否能簡(jiǎn)化生成問(wèn)題,例如使語(yǔ)言模型更容易利用張量核心指令。
最后,研究團(tuán)隊(duì)的評(píng)估至今僅限于GPU,未來(lái)的工作可以擴(kuò)展到其他硬件加速器。
作者介紹
Anne Ouyang
Anne Ouyang目前是斯坦福大學(xué)計(jì)算機(jī)科學(xué)(CS)博士生,在Scaling Intelligence Lab(規(guī)?;悄軐?shí)驗(yàn)室)進(jìn)行研究。
她的研究興趣主要集中在可擴(kuò)展的自我改進(jìn)機(jī)器學(xué)習(xí)系統(tǒng),同時(shí)也廣泛關(guān)注實(shí)證機(jī)器學(xué)習(xí)(empirical ML)和性能工程(performance engineering)。
她曾獲得了MIT學(xué)士和碩士學(xué)位,并曾在NVIDIA cuDNN團(tuán)隊(duì)工作,負(fù)責(zé)編寫(xiě)CUDA內(nèi)核,用于加速GPU上的深度學(xué)習(xí)工作負(fù)載。
Simon Guo
Simon Guo是斯坦福大學(xué)計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的一年級(jí)博士生,目前正在擴(kuò)展智能實(shí)驗(yàn)室(Scaling Intelligence Lab)跟隨Azalia Mirhoseini教授進(jìn)行輪轉(zhuǎn)研究。
他曾獲得了UC伯克利電氣工程和計(jì)算機(jī)科學(xué)學(xué)士學(xué)位。他的研究興趣在計(jì)算機(jī)系統(tǒng)和機(jī)器學(xué)習(xí)。
最近,他在Cohere從事語(yǔ)言模型預(yù)訓(xùn)練工作。在此之前,他曾在蘋(píng)果公司設(shè)計(jì)GPU,在Anyscale開(kāi)發(fā)分布式系統(tǒng),并在NVIDIA DRIVE部門(mén)從事自動(dòng)駕駛汽車(chē)的開(kāi)發(fā)工作。