<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 生成式AI,可以設計芯片了

生成式AI,可以設計芯片了

發(fā)布人:旺材芯片 時(shí)間:2023-05-25 來(lái)源:工程師 發(fā)布文章
來(lái)源內容由半導體行業(yè)觀(guān)察

自從去年開(kāi)始,以ChatGPT為代表的生成式AI(Generative)站在了整個(gè)世界的聚光燈下。ChatGPT可以理解用戶(hù)基于自然語(yǔ)言的輸入,并且產(chǎn)生相應的輸出。ChatGPT基于大語(yǔ)言模型技術(shù),通過(guò)使用海量的語(yǔ)料訓練,可以實(shí)現回答用戶(hù)的各種問(wèn)題,還可以幫助用戶(hù)完成一些簡(jiǎn)單的任務(wù),包括完成文檔編寫(xiě)甚至Python代碼編寫(xiě)等等。


而在五月十日,谷歌在IO大會(huì )上發(fā)布了ChatGPT的競品,即PaLM 2大語(yǔ)言模型。谷歌表示,目前ChatGPT類(lèi)生成式大語(yǔ)言模型最重要的用戶(hù)體驗之一就是幫助用戶(hù)編寫(xiě)代碼,而PaLM 2的一大特性就是完成20多種編程語(yǔ)言的支持。其中,對于芯片設計工程師來(lái)說(shuō),最大的亮點(diǎn)就是PaLM 2支持數字電路設計領(lǐng)域最常用的編程語(yǔ)言Verilog。


百聞不如一試,目前PaLM 2已經(jīng)在谷歌的Bard平臺上線(xiàn)開(kāi)放公測,因此我們也嘗試使用Bard去體會(huì )了一把PaLM 2生成Verilog代碼的能力。在試驗中,我們讓Bard生成了兩段代碼,一段代碼是生成一個(gè)FIFO(數字電路中最常用的模塊之一),而另一段代碼則是生成一個(gè)模塊,其中包含了兩個(gè)前面編寫(xiě)的FIFO,并且讓第一個(gè)FIFO的輸出接入第二個(gè)FIFO的輸入。生成的方法非常簡(jiǎn)單,我們只需要給Bard一個(gè)基于自然語(yǔ)言的指令(prompt),Bard就能夠在幾秒鐘之內完成相應的代碼生成。例如,在第一個(gè)實(shí)驗中,我們使用的指令是“生成一段Verilog代碼來(lái)實(shí)現FIFO”,生成結果如下圖:


圖片


從結果來(lái)看該生成的代碼的語(yǔ)法正確,邏輯基本正確,但是在FIFO full和empty的信號邏輯上并沒(méi)有完全弄對(當然其實(shí)FIFO的full和empty的邏輯也是面試中??嫉膯?wèn)題,要完全弄對并沒(méi)那么簡(jiǎn)單)。在代碼風(fēng)格上,我們還可以在指令中加入更多提示,類(lèi)似“在代碼中加入更多注釋”,“使用參數來(lái)定義接口寬度”等等。


而在第二個(gè)實(shí)驗中,我們主要看的是Bard能否復用之前生成的模塊,并且基于這個(gè)來(lái)生成新的更大的模塊。我們使用的指令是“寫(xiě)一個(gè)模塊,其中包括兩個(gè)你前面寫(xiě)的FIFO模塊,并且第一個(gè)FIFO的輸出接入第二個(gè)FIFO的輸入”。


圖片


在這里我們可以看到生成的代碼基本正確,因此我們認為PaLM 2基本擁有了能基于自底向上生成復雜代碼的能力。


芯片設計領(lǐng)域生成式AI的進(jìn)化之路


我們從上述實(shí)驗中可以看到,谷歌的PaLM 2已經(jīng)具有了基本的Verilog代碼生成能力,可以生成基本模塊和復合模塊,當然其代碼生成的質(zhì)量還有待提高。而除了PaLM 2之外,我們認為其他公司推出的類(lèi)似ChatGPT的大語(yǔ)言模型也有可能會(huì )加入對于Verilog類(lèi)硬件描述語(yǔ)言的支持。


根據谷歌在IO大會(huì )上發(fā)布的信息,目前ChatGPT類(lèi)的大語(yǔ)言模型已經(jīng)成為許多工程師在代碼編寫(xiě)時(shí)的重要助手。如果我們參考IT領(lǐng)域軟件開(kāi)發(fā)工程師應用ChatGPT類(lèi)大語(yǔ)言模型協(xié)助代碼編寫(xiě)的發(fā)展的話(huà),我們認為在芯片行業(yè)大語(yǔ)言模型也非常有可能會(huì )起到重要作用。這里,根據大語(yǔ)言模型在開(kāi)發(fā)流程中起到的角色,我們可以大致分成三種應用。第一種應用是根據用戶(hù)的指令直接生成代碼,即我們在本文前面給出的兩個(gè)例子。第二種應用是在工程師編寫(xiě)代碼的時(shí)候,幫助工程師自動(dòng)補全代碼;例如工程師只需要輸入一行代碼的前幾個(gè)字符,大語(yǔ)言模型就可以根據代碼的上下文自動(dòng)幫助補全代碼,從而節省工程師的開(kāi)發(fā)時(shí)間。第三種應用是幫助工程師分析代碼和debug,正如ChatGPT可以幫助用戶(hù)優(yōu)化Python代碼并找到代碼中的bug一樣,經(jīng)過(guò)相關(guān)數據訓練的大語(yǔ)言模型也可以在Verilog中實(shí)現相似的功能。


展望未來(lái),參考大語(yǔ)言模型在IT行業(yè)的應用軌跡,我們認為大語(yǔ)言模型對于芯片設計方面的幫助預計將會(huì )從代碼自動(dòng)補全開(kāi)始,因為這也是大語(yǔ)言模型在IT行業(yè)的切入口——目前我們已經(jīng)看到類(lèi)似Github co-pilot這樣的代碼補全產(chǎn)品已經(jīng)得到了許多IT公司的應用來(lái)幫助軟件工程師提升編程效率。相對來(lái)說(shuō),代碼補全類(lèi)應用對于大語(yǔ)言模型的要求相對較低,目前的模型已經(jīng)能實(shí)現相當高的準確率,因此我們預期在芯片設計領(lǐng)域也會(huì )有應用在Verilog領(lǐng)域的基于大語(yǔ)言模型的代碼補全工具會(huì )很快出現幫助工程師提高效率(估計谷歌內部芯片團隊已經(jīng)開(kāi)始使用類(lèi)似的工具)。


在代碼補全之后,隨著(zhù)大語(yǔ)言模型的進(jìn)一步發(fā)展,根據用戶(hù)的指令自動(dòng)生成代碼的大語(yǔ)言模型也將會(huì )得到越來(lái)越多的應用。這類(lèi)代碼直接生成類(lèi)應用從目前來(lái)看還需要和整個(gè)項目開(kāi)發(fā)流程進(jìn)一步磨合——究竟這類(lèi)代碼自動(dòng)生成的應用最適合使用在底層模塊的編寫(xiě),還是在上層模塊間集成的生成上,還需要進(jìn)一步探索,但是無(wú)論如何ChatGPT在自動(dòng)代碼編寫(xiě)領(lǐng)域的潛力驚人,可以把原來(lái)人工需要數小時(shí)才能編寫(xiě)完的代碼在幾秒內完成,這樣的效率提升無(wú)疑將會(huì )給整個(gè)行業(yè)和芯片開(kāi)發(fā)流程帶來(lái)革命性的變化。


目前來(lái)看,ChatGPT類(lèi)大語(yǔ)言模型在Python等流行編程語(yǔ)言的代碼編寫(xiě)方面已經(jīng)有很不錯的效果,這證明了大語(yǔ)言模型實(shí)現自動(dòng)代碼編寫(xiě)、補全和debug在理論和工程上都是可以實(shí)現的。谷歌的PaLM 2對于Verilog的支持仍然有待進(jìn)一步完善的主要原因我們認為還是訓練的數據量不夠。從訓練數據數量的角度來(lái)說(shuō),互聯(lián)網(wǎng)上有海量的開(kāi)源Python代碼可供訓練大語(yǔ)言模型來(lái)完成高質(zhì)量的代碼生成,但是互聯(lián)網(wǎng)上可用于訓練大語(yǔ)言模型的Verilog代碼的數量比起Python等流行語(yǔ)言來(lái)說(shuō)可能是要少了幾個(gè)數量級。并不是人類(lèi)編寫(xiě)的Verilog代碼數量不夠多,而是絕大多數Verilog代碼都不是開(kāi)源的,而是芯片公司的知識產(chǎn)權,例如谷歌在訓練PaLM的時(shí)候不太可能獲得高通的Verilog代碼。未來(lái)誰(shuí)會(huì )在開(kāi)發(fā)芯片設計領(lǐng)域的大語(yǔ)言模型方面拔得頭籌?我們認為有幾個(gè)不可忽視的力量:


首先是擁有全棧技術(shù)能力的大型技術(shù)公司,這些公司既有開(kāi)發(fā)大語(yǔ)言模型的能力,又有成功的芯片業(yè)務(wù),包括美國的谷歌和中國的華為等。從技術(shù)上來(lái)說(shuō),這些公司積累了大量的Verilog相關(guān)代碼可供訓練大語(yǔ)言模型,而從業(yè)務(wù)上來(lái)說(shuō),這些公司同樣也有使用大語(yǔ)言模型來(lái)提升芯片設計團隊效率的驅動(dòng)力。


其次是EDA巨頭,包括Synopsys、Cadence等。這些EDA公司擁有極強的業(yè)務(wù)驅動(dòng)力和緊迫感,因為大語(yǔ)言模型AI確實(shí)會(huì )成為EDA行業(yè)下一個(gè)革命性變化,誰(shuí)在這個(gè)領(lǐng)域占領(lǐng)了先機就會(huì )在下一代EDA競爭中取得優(yōu)勢;從技術(shù)積累上來(lái)說(shuō),這些公司擁有不錯的AI模型能力,同時(shí)也有海量的Verilog代碼數據量可供訓練模型(因為這些EDA公司都有相當成功的IP業(yè)務(wù),在開(kāi)發(fā)這些IP的同時(shí)積累了足夠的高質(zhì)量代碼數據)。


最后,開(kāi)源社區的力量也不容忽視。從大語(yǔ)言模型角度來(lái)看,開(kāi)源社區在CahtGPT以及開(kāi)源LLAMA語(yǔ)言模型的基礎上做了大量有意義的探索,另外隨著(zhù)RISC-V等開(kāi)源項目的增加,開(kāi)源社區擁有的數據量也會(huì )越來(lái)越多。我們預期開(kāi)源社區有機會(huì )去實(shí)現一些小而美的基于大語(yǔ)言模型的新穎應用,從而也能推動(dòng)整個(gè)大語(yǔ)言模型在芯片設計領(lǐng)域的技術(shù)發(fā)展。


生成式AI會(huì )如何影響芯片設計工程師的工作


那么,隨著(zhù)ChatGPT式AI在芯片設計中扮演越來(lái)越重要的角色,芯片工程師的日常工作將會(huì )發(fā)生怎么樣的變化?由于這里ChatGPT類(lèi)生成式AI主要針對代碼編寫(xiě)等前端工作,我們這里的討論范圍也主要是前端數字設計工程師。


首先,對于主要工作是前端模塊設計和集成的芯片工程師來(lái)說(shuō),我們預計很快就會(huì )有ChatGPT類(lèi)的工具可以幫助代碼補全,從而增加效率。而在未來(lái)三到五年的時(shí)間范圍內,直接使用ChatGPT類(lèi)生成式AI首先模塊代碼編寫(xiě)有望獲得真正的應用。從這個(gè)角度來(lái)說(shuō),我們并不認為前端工程師的工作會(huì )被取代;相反,數字前端工程師的工作可能會(huì )越來(lái)越多地專(zhuān)注于模塊的功能定義,以及如何使用生成式AI能理解的方式來(lái)描述這個(gè)設計,讓AI能產(chǎn)生和工程師設計相符的代碼;從這個(gè)角度,甚至可能會(huì )出現一些標準化的模塊功能定義描述語(yǔ)言,從而讓AI能產(chǎn)生合理的代碼。


此外,芯片驗證工程師的工作將會(huì )變得越來(lái)越重要。生成式AI可以在幾秒鐘內生成代碼,但是其生成質(zhì)量從目前來(lái)看尚需提高。從這個(gè)角度,芯片驗證一方面需要確保AI生成的代碼沒(méi)有bug,而更重要的是,芯片驗證需要能和代碼生成形成閉環(huán),例如如何實(shí)現一套工作流程,讓AI生成的代碼可以快速使用testbench來(lái)確保功能是否正確,并且有辦法告訴AI哪里功能不對來(lái)提示AI修改,從而在經(jīng)過(guò)多次迭代后能讓AI自動(dòng)生成正確的代碼。雖然可能會(huì )需要多次迭代,但是因為每次代碼生成需要的時(shí)間很短,因此總得來(lái)看需要的代碼生成時(shí)間還是比起手寫(xiě)要快許多。此外,使用生成式AI來(lái)自動(dòng)生成testbench以及驗證需要的assertion也將會(huì )改變驗證工程師的工作流程,工程師將會(huì )需要花更多時(shí)間教會(huì )AI來(lái)生成正確的代碼,從而大大提升效率。



*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: 生成式AI

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>