《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 芯片設(shè)計(jì)五部曲之三 | 戰(zhàn)略規(guī)劃家——算法仿真

芯片設(shè)計(jì)五部曲之三 | 戰(zhàn)略規(guī)劃家——算法仿真

2023-02-22
來源: 速石科技

  芯片設(shè)計(jì)五部曲之一 | 聲光魔法師——模擬IC

  芯片設(shè)計(jì)五部曲之二 | 圖靈藝術(shù)家——數(shù)字IC

  上兩集我們已經(jīng)分別深入了模擬IC和數(shù)字IC的設(shè)計(jì)全流程,,結(jié)合EDA工具特性和原理,講述怎么利用計(jì)算機(jī)技術(shù)提高模擬與數(shù)字芯片的研發(fā)設(shè)計(jì)效率,。

  這一集,,我們把其中的算法仿真部分拉出來展開說說,。

  第三集:算法仿真

  算法是對芯片系統(tǒng)進(jìn)行的整體戰(zhàn)略規(guī)劃,決定了芯片各個(gè)模塊功能定義及實(shí)現(xiàn)方式,,指引著整個(gè)芯片設(shè)計(jì)的目標(biāo)和方向,。可謂,牽一發(fā)而動全身。

  不管是模擬IC還是數(shù)字IC設(shè)計(jì),,算法仿真都是第一步,。通常,會由算法工程師組成獨(dú)立的算法團(tuán)隊(duì),。

微信截圖_20230222100018.png

  CPU/GPU本應(yīng)該是算法仿真的??停?yàn)闅v史比較悠久,,發(fā)展成熟,,市場幾乎被英偉達(dá)和AMD壟斷,很多IC設(shè)計(jì)公司選擇直接采購IP的方式跳過這一步,。

  近幾年,,無線通信芯片成為了算法業(yè)務(wù)的最大甲方。因?yàn)檫@類芯片的信號編解碼與頻譜遷移時(shí)方式十分復(fù)雜,,再加上種類繁多,,各國的通信協(xié)議、標(biāo)準(zhǔn),、頻率也在不斷變化,。隨著我國5G通信標(biāo)準(zhǔn)的放開,,算法仿真的地位與日俱進(jìn),。

  另一個(gè)涉及大量算法業(yè)務(wù)的場景是AI芯片,應(yīng)用場景小到手機(jī),、智能家電,,大至汽車。

  跟前兩篇數(shù)字和模擬IC的設(shè)計(jì)場景相比,,算法仿真有著非常不一樣的表現(xiàn),。

  所以我們單獨(dú)把ta拉出來,結(jié)合一家無線通信芯片公司實(shí)際業(yè)務(wù)場景,,看看算法仿真有哪四大特性,,以及從動態(tài)視角出發(fā),看我們怎么幫算法工程師解決問題,,提高研發(fā)效率,。

  算法仿真的本質(zhì)

  算法(Algorithm),是指在數(shù)學(xué)和計(jì)算機(jī)科學(xué)間,,一種被定義好的,、計(jì)算機(jī)可施行指示的步驟和次序。算法代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制,,解決一個(gè)問題可以有很多種算法,。

  舉個(gè)栗子。

  求解下圖黃色區(qū)域圖形面積,我們有三種算法,。

微信截圖_20230222100304.png

  方法一:你可以直接用三角形的面積公式解,。這種方法快速、直觀,,小學(xué)文化程度即可,,但局限性也高、不通用,,不適用于圖像復(fù)雜的情況,;

  方法二:也可以用符號計(jì)算求不定積分。求解析解方法,,適用于各類不定積分中有解析表達(dá)式的函數(shù)圖像,。計(jì)算門檻較高,大多手算,,很少有計(jì)算工具,。而且實(shí)際工程應(yīng)用場景中,很多函數(shù)沒有解析解,;

  方法三:用數(shù)值計(jì)算方式解積分,,求數(shù)值解。數(shù)值計(jì)算法適用范圍最廣,,可以求任意函數(shù)曲線的定積分,,將函數(shù)一段段分解,再算出面積,。不同的分解方法就代表不同的算法,。這種方法只能求數(shù)值解,無法求解析解,,且計(jì)算量巨大,,適合機(jī)器計(jì)算,不適合人工計(jì)算,,在工程領(lǐng)域應(yīng)用甚廣,。

微信截圖_20230222100321.png

  在芯片設(shè)計(jì)領(lǐng)域,算法仿真的本質(zhì)是評估不同數(shù)值計(jì)算解法的工作量,、計(jì)算效率適用范圍,,選出最優(yōu)算法,使ta不僅要滿足算得最快,、最準(zhǔn),,還要能確保功能、精度,、效率,、吞吐量等指標(biāo),。

  算法仿真是一個(gè)不斷迭代、優(yōu)化的過程,,一般都要反復(fù)調(diào)整參數(shù),,進(jìn)行N次回歸測試。

  一家算法團(tuán)隊(duì)的小目標(biāo)

  一家無線通信芯片公司算法團(tuán)隊(duì),,開局情況如下:

  算法部門共有15人,,全公司有480核共享本地資源,各部門按需提前申請使用,。

  根據(jù)公司的業(yè)務(wù)發(fā)展目標(biāo),,大致估算出未來新算法項(xiàng)目任務(wù)總數(shù)為1283980。

  假設(shè)一:全公司本地資源均歸他們用,,每個(gè)人的資源上限是32核,;

  假設(shè)二:單case運(yùn)行時(shí)間為10小時(shí);

  假設(shè)三:回歸測試次數(shù)為1次,;

  假設(shè)四:1個(gè)case只有1個(gè)job,,且只用1個(gè)核。

微信截圖_20230222100352.png

  總運(yùn)行時(shí)間達(dá)到3.05年,。

  啊這,。??赡艽蜷_方式不對,,再來:增加假設(shè)五:人均資源上限逐漸提升到120核;

  假設(shè)六:算法團(tuán)隊(duì)人數(shù)逐步擴(kuò)張至46人,;

  總運(yùn)行時(shí)間約96.92天,。

  嗯,這回挺好,。

  想得是挺美,小目標(biāo)怎么實(shí)現(xiàn),?

  現(xiàn)實(shí)一:公司共享本地資源不可能只歸算法部門專用,;

  現(xiàn)實(shí)二:單case運(yùn)行時(shí)間,難以估計(jì),;且1個(gè)case往往不止1個(gè)job,,且1個(gè)job未必只用1個(gè)核;

  現(xiàn)實(shí)三:回歸測試只有1次,,幾乎不太可能,,總?cè)蝿?wù)數(shù)可能數(shù)倍增長;

  現(xiàn)實(shí)四:本地機(jī)房從480核要擴(kuò)張十幾倍,,可不止是買買買硬件,,機(jī)房建設(shè),、運(yùn)維人力、硬件維保,、存儲網(wǎng)絡(luò),、環(huán)境部署等等,都不是小事,;

  現(xiàn)實(shí)五:算法工程師要求非常高,,招聘難度極大。

  真是,,沒一個(gè)字讓人愛聽的,。

  如果是日常模擬/數(shù)字芯片設(shè)計(jì),想做算力規(guī)劃,,咱們還是有思路的,,可以看看這篇:解密一顆芯片設(shè)計(jì)的全生命周期算力需求

  但算法仿真這里,此路不通,。

  我們來看看算法仿真的特性:

  算法仿真的四大特性

  下圖是這家無線通信芯片公司算法團(tuán)隊(duì)9個(gè)月實(shí)際日平均資源用量波動總覽圖:

微信截圖_20230222100526.png

  01 需求不可測

  從個(gè)人角度出發(fā),,算法團(tuán)隊(duì)每個(gè)人的算法任務(wù)都是互相獨(dú)立,互不影響的,。算法確定之后,,每一輪的計(jì)算量基本確定(case分解成的job數(shù),job占用的核數(shù)基本確定),,每個(gè)算法任務(wù)的單次耗時(shí)與回歸測試次數(shù)都是不一樣的,,這導(dǎo)致最后的資源需求完全不可測。

  如果再疊加團(tuán)隊(duì)使用因素,,資源的不可測性也會被成倍地放大,。如果原先個(gè)人的資源使用區(qū)間是0到250核小時(shí);如果團(tuán)隊(duì)內(nèi)有20人,,那不可測區(qū)間就放大至0至5000核小時(shí),。

  02 短時(shí)間使用量波動巨大

  除了算法任務(wù)需求的不可測性,資源使用量的波動還受實(shí)際算法任務(wù)的進(jìn)度影響,。

  每個(gè)算法工程師的工作獨(dú)立且進(jìn)度不一,,有時(shí)可能大量任務(wù)同時(shí)批量運(yùn)行,也可能部分在調(diào)試,,部分在運(yùn)行,,甚至可能一個(gè)在運(yùn)行的任務(wù)都沒有。

  不同工程師的工作進(jìn)度差異與所用算法不一,,不僅導(dǎo)致了波峰,、波谷間的資源使用量差距極大,而且這樣的波動可能發(fā)生在極短時(shí)間內(nèi),。

  極限情況:所有工程師都在頂格跑任務(wù),,5520核的資源量瞬間拉滿(100%),;而下一刻只有10%的工程師在跑任務(wù),且每人都只使用自己配額80%的資源量,,那總資源僅使用了一部分,。

  不同公司的算法團(tuán)隊(duì)之間,因?yàn)閳F(tuán)隊(duì)規(guī)模與業(yè)務(wù)差異,,資源用量差異也非常大,。

  03 資源需求類型多樣

  算法仿真整體來說,對資源的各方面需求并不算高,。

  但不同算法的需求都不一樣:

  有的需要單核4G內(nèi)存的機(jī)型,,有的要單核8G內(nèi)存的機(jī)型;

  有的算法對存儲要求高,,有的算法對存儲沒要求:

  有的涉及圖形計(jì)算,,甚至還需要用到GPU機(jī)型。

  04 長期可持續(xù)狀態(tài)

  上述三大特性,,都不是突發(fā)現(xiàn)象,,屬于算法團(tuán)隊(duì)的日常工作狀態(tài)。

  這一狀態(tài)的長期可持續(xù)性,,我們需要對此做好足夠的準(zhǔn)備,。

  一種動態(tài)思路:增加時(shí)間維度

  算法仿真的四大特性決定了:按這家公司原來的靜態(tài)處理方式,也就是把任務(wù)量當(dāng)成恒定的,,通過加人加機(jī)器的方式來滿足研發(fā)需求,,變得很不現(xiàn)實(shí)。哪怕頂格準(zhǔn)備資源,,資源利用率也會長期處于較低狀態(tài),。

  那按動態(tài)處理方式,也就是隨著時(shí)間變化,,靈活根據(jù)需求匹配不同規(guī)模/類型資源的方式來動態(tài)滿足研發(fā)需求,,從個(gè)人及團(tuán)隊(duì)視角出發(fā),看我們怎么幫算法工程師解決問題,,提高研發(fā)效率,。

  01 算法工程師視角

  1)資源無需申請,即開即用

      再也不用跟同事?lián)屬Y源或者漫長的排隊(duì)等待了,,也不用走繁瑣的資源申請流程。

  2)資源選擇空間變大

      選擇空間變大,,資源類型變多,,可用資源上限變高,可以靈活選擇更加適配算法任務(wù)的資源類型,。

   給大家打個(gè)樣:5000核大規(guī)模OPC上云,,效率提升53倍

  3)提交任務(wù)立馬就能跑,,告別等待

      提交任務(wù)立馬就能跑,一整套研發(fā)環(huán)境現(xiàn)成的,,即開即用,。

      靈活切換,今天跑一百,,明天跑一萬,,無需等待環(huán)境配置。

  4)以前怎么用,,現(xiàn)在就怎么用

     跟本地相比無感知,,用戶使用習(xí)慣沒有任何改變,不需要調(diào)整任何腳本,。

  5)任務(wù)跑得快,,效率線性增長

  多case高并發(fā)執(zhí)行。同一批算法任務(wù)之間互相獨(dú)立,,可以做到效率線性提升,。

  02 團(tuán)隊(duì)管理視角

  1)動態(tài)方式解決資源不可測問題

       算法任務(wù)的不可預(yù)測且波動巨大,導(dǎo)致了資源預(yù)測與規(guī)劃基本不可能,。按傳統(tǒng)靜態(tài)處理方式來解決問題:

  按頂格規(guī)劃,,這筆賬都不用算,會造成黃色區(qū)域的巨大浪費(fèi),;按中間取值準(zhǔn)備,,當(dāng)某個(gè)時(shí)間點(diǎn)算法仿真短時(shí)間內(nèi)任務(wù)量激增,就會出現(xiàn)人機(jī)不匹配,,不是有人力沒機(jī)器,,就是有機(jī)器沒人力。這種錯(cuò)配導(dǎo)致資源利用率極低,,影響研發(fā)進(jìn)度,。

微信截圖_20230222100702.png

  圖中3-5月,峰值算力就從200核攀升27倍達(dá)到5520核,,隨即又迅速從5520核下跌到500核左右,,這波動幅度簡直比過山車還劇烈,而且毫無規(guī)律,。

  我們的動態(tài)處理方式,,會隨著時(shí)間變化,靈活根據(jù)當(dāng)前時(shí)間點(diǎn)任務(wù)需求匹配不同規(guī)模/類型資源的方式,,動態(tài)滿足研發(fā)需求,。不管500核還是5000核,我們都能實(shí)時(shí)根據(jù)需要,,滿足整個(gè)團(tuán)隊(duì)的大幅波動資源需求,,保障日常算力和峰值算力任務(wù)調(diào)度效率,。

  2)Auto-Scale自動伸縮,隨用隨關(guān)不浪費(fèi) 

        Fsched調(diào)度器的Auto-Scale功能,,能解決團(tuán)隊(duì)資源利用率與成本問題,。資源“自由”的同時(shí)不浪費(fèi)。

  一方面隨用戶任務(wù)需求,,設(shè)置自動伸縮上下限,,自動化調(diào)用資源完成任務(wù);Auto-Scale功能可以根據(jù)任務(wù)運(yùn)算情況動態(tài)開啟云端資源,,需要多少開多少,,并在任務(wù)完成后自動關(guān)閉,讓資源的使用緊隨著用戶的需求自動擴(kuò)張及縮小,,最大程度匹配任務(wù)需求,。

微信截圖_20230222100755.png

  這既節(jié)約了用戶成本,不需要時(shí)刻保持開機(jī),,也最大限度保證了任務(wù)最大效率運(yùn)行,。中間也不需要用戶干預(yù),手動操作,。

  另一方面我們還能監(jiān)控用戶提交的任務(wù)數(shù)量和資源需求,,在團(tuán)隊(duì)內(nèi)部進(jìn)行資源及時(shí)適配,解決錯(cuò)配問題,。

  想了解更多關(guān)于Auto-Scale的內(nèi)容,,點(diǎn)擊:EDA云實(shí)證Vol.10:Auto-Scale這支仙女棒如何大幅提升Virtuoso仿真效率。

  3)提升團(tuán)隊(duì)整體運(yùn)營效率

      我們的運(yùn)營數(shù)據(jù)dashboard能讓團(tuán)隊(duì)管理者監(jiān)控各個(gè)重要指標(biāo)變化,,從全局角度掌握項(xiàng)目的整體任務(wù)及資源情況,,為未來項(xiàng)目合理規(guī)劃、集群生命周期管理,、成本優(yōu)化提供支持,。還能根據(jù)不同成員或小組的業(yè)務(wù)緊迫程度和業(yè)務(wù)重要性,合理分配與控制用戶使用資源,。

  4)全球數(shù)據(jù)中心解決資源瓶頸

      我們的全球數(shù)據(jù)中心,,能持續(xù)穩(wěn)定地提供用戶所需資源類型及數(shù)量,分鐘級調(diào)度開啟上萬核計(jì)算資源,,滿足業(yè)務(wù)緊迫度,。用戶可以選擇自主選擇大內(nèi)存、高主頻等多樣化的資源類型來滿足不同算法需求,。一旦發(fā)現(xiàn)所選資源類型與算法任務(wù)不匹配,,還可隨時(shí)中止任務(wù)、更換資源類型,,任務(wù)進(jìn)度不受影響,。

微信截圖_20230222100858.png

  附加題環(huán)節(jié):

       對研發(fā)來說,能不能清晰看到任務(wù)的運(yùn)行狀態(tài),?實(shí)時(shí)監(jiān)測進(jìn)度,?任務(wù)異常時(shí)能不能自動告警?對IT來說,,資源用量如何,?怎么判斷用戶資源使用量是否符合分配模式?系統(tǒng)負(fù)載過高是否有直接的告警,?我們會單獨(dú)開一篇,,聊聊基于業(yè)務(wù)的監(jiān)控與告警。

  芯片設(shè)計(jì)五部曲的第三集——算法仿真篇到此結(jié)束啦,。一起期待下一集吧~


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]