博客專欄

        EEPW首頁 > 博客 > 解密一顆芯片設計的全生命周期算力需求

        解密一顆芯片設計的全生命周期算力需求

        發布人:傳感器技術 時間:2022-11-17 來源:工程師 發布文章

           對廣大半導體設計公司而言,算力資源規劃和現金流之間的平衡,嘖嘖,是一門藝術。

        多一分是浪費,少一分則崩潰。


        我們曾經在初創型IC企業必備白皮書成長型IC企業必備白皮書里分別畫過以下兩張圖:

        圖片

        左圖名字叫做:守護現金流

        這年頭現金流的重要性,不必多說。


        右圖名字叫做:人生就是一場豪****

        不管是初創IC設計公司還是成熟公司,新開始一個項目,總是面臨著前路未知的情況:

        1. 周期性存在突發算力高峰需求,涉及到先進制程問題更加顯著;

        2. 每次調整制程,都面臨新的資源預估永遠估不準

        3. 可能需要某些內部不可用的內存和計算資源


        我們今天認真盤一盤,怎么把這門藝術拉下神壇。


        圖片


        先給大家一個直觀感受。


        下圖是我們某客戶全生命周期月度算力實際用量曲線整個芯片項目全流程為18個月,涉及前端、驗證、后端三大團隊。

        圖片


        1.  前4個月,只涉及到前端布局與架構,對于算力需求不高,因此月度算力需求較少;

        2.  從5月開始,前端、驗證、后端均開始工作,算力開始逐步提升,第11個月達算力小高峰,在第16個月達算力最高峰,月度調度峰值達到百萬級核時以上

        3.  算力波峰和波谷的核數差距在20倍以上

        4.  算力在第16個月達到最高峰后,迅速下降。


        下面我們手把手教你怎么把算力規劃拉下神壇:

        Part 1  小白版算法

        Part 2  老司機版算法

        Part 3  全年現實算力需求折算

        Part 4  一個并不艱難的選擇

        圖片

        Part 1 小白版算法針對的是:項目全新,團隊人員也比較新,需要從零計算Part 2 老司機版算法針對的是:項目全新,但有類似經驗的老人在團隊,可以憑經驗值估算PS:Part 1和Part 2 二選一閱讀即可

        為了簡化計算,我們根據現實情況作以下假設:

        1.  研發團隊總人數為100;

        2.  團隊分為前端、驗證和后端3部分,人數比值2:1:1;3.  芯片的全周期分為3個階段,每階段4個月  (僅適用小白版算法);4.  三個團隊主要使用資源類型:前端團隊使用計算型機器;驗證團隊前期使用計算型機器,之后使用內存型機器;后端團隊使用內存型機器 。

        Part1 :小白版算法


        這套小白版算法是我們根據N家客戶的實際情況,得出的經驗參考值:包括不同階段,不同團隊的人員配比與人力占用比例,每人job數,每人每job峰值核數因實際團隊并非全程在此項目中,部分階段人力需折算,即人力占用比例。在我們的參考值基礎上略做調整,大家就能大致得出自己公司的相應數值啦。
        這套算法通過估算不同階段內、各個團隊所需的算力峰值之和,得出每階段的算力峰值。各團隊的峰值計算公式為每人每job峰值核數(多臺機器則為每臺核數*機器數)*團隊人數*每人job數(每個階段計算方式一致)。
        Stage 1:前期階段(第1-4個月)


        ① 階段工作詳情:前端從事設計相關工作,驗證團隊同步參與,工作狀態都較為穩定,此階段每月峰值核數趨于一致;② 涉及團隊:前端、驗證團隊;③ 資源并發需求:前端團隊每人1臺10核、驗證團隊每人1臺20核。


          該階段峰值核時計算(計量單位:核小時):1月:10核*50人*1job=5002-4月:前端團隊峰值核數=10*50*1=500 ;驗證團隊峰值核數=20*25*1=500;峰值核數總計為500+500=1000;則該階段的峰值核數在2-4月,為1000(下同,不再詳述這一計算過程)圖片
          Stage 2:中期階段(5-8月)

          ① 階段工作詳情:涉及到前端仿真、驗證和部分模塊的版圖工作。6月在前仿最后階段做一次大仿真,是算力小波峰,隨后算力下降;② 涉及團隊:前端、驗證和后端團隊;③ 資源并發需求峰值:5月:前端團隊每人1臺18核節點,每人1個job;驗證團隊每人4個job,每個job約18核(人力占用比例:75%);后端團隊每人1臺18核節點;6月:前端團隊每人1臺24核節點,每人1個job;驗證團隊每人6個job,每個job約24核(人力占用比例:75%);后端團隊每人1臺18核節點;7月:前端團隊每人1臺18核節點,每人1個job(人力占用比例:40%);驗證團隊每人3個job,每個job約18核;后端團隊每人1個job,每job約4臺18核節點;8月:前端團隊每人1個job,每個job18核(人力占用比例:40%);驗證團隊每人2個job,每個job18核;后端團隊每人1個job,每個job約4臺24核節點。


            計算結果如下

            圖片


            Stage 3:后期階段(9-12月)
            ① 階段工作詳情:主要涉及后端仿真相關工作;② 涉及團隊:驗證和后端團隊;③ 資源并發需求:9月:驗證團隊,每人4個job,每個job約18核;后端團隊每人1-2個job,每個job約4臺24核節點(后端人均完成1.6個job,取值1.6);10月:驗證團隊每人6個job,每個job約24核;后端團隊每人1-2個job,每job約6臺24核工作節點(后端人力占用比例:80%,每人2個job)11月:驗證團隊每人6個job,每個job約24核;后端團隊每人1個job,每job約4臺24核工作節點;12月:驗證團隊每人6個job,每個job約18核;后端團隊每人1個job,每job約3臺24核工作節點。
            計算結果如下圖片最終全生命周期力需求圖如下(計量單位:核小時):圖片可以看出:
            1. 和文章開頭的實際用戶算力曲線趨勢一致2. 不同月份間的峰值算力差異很大,能達到20倍左右;3. 不同團隊在不同月份的峰值算力需求差異明顯。

            Part2 :老司機版算法


            如果對于未來芯片項目,你們有過來人能預估出不同團隊不同階段的算力需求,這套老司機版算法將完全適配你。這套算法是我們根據有項目經驗的芯片研發團隊的實際情況,通過填入各月每job峰值核數、每月最大并行job數,計算出各團隊每月所需的算力峰值。
            下面為大家奉上這份《XXX芯片項目-資源需求調研模板》圖片


            左邊項目為不同的項目團隊。項目團隊內部可分為:前端、驗證和后端組。

            Step 1將不同組、每個job所需核數或內存的峰值需求,依次填入中間的“每job峰值核數”和“每job峰值內存”欄目下,負責人填入團隊負責人”欄目下




            例如:每個job需要的峰值核數為10,每個job需要峰值內存為20據經驗值統計),前端負責人為Andy。

            圖片


            Step 2在每月欄目下,填入各團隊預期的每月并行最大job數(簡稱:job數)




            Job數可根據研發內部統計,也可根據job數=每人最大并行job數*人數進行計算,如團隊并非全程在此項目中,人力還需折算統計。

            例如:2022年2-5月,前端團隊每人最大并行job數為1,團隊有50人,均100%投入在此項目中,則填入下表的job數均為:50*1*100%=50。圖片


            Step 3計算各團隊當月峰值算力并相加,得出峰值算力總計(計量單位:核小時)




            各團隊的峰值計算公式:每job峰值核數*job數(每個階段計算方式一致)。


            例如:2022年2-5月,前端團隊每job峰值核數為10,job數為50;2月驗證團隊還未開始任務,3-5月,驗證團隊的每job峰值核數為20,job數為25;2-5月,后端團隊還未開始任務。
            計算過程如下前端團隊:2-5月:10*50=500驗證團隊:3-5月:20*25=500將各團隊每月算力峰值相加,得到每月項目的算力峰值,計算得出項目各月算力峰值表

            圖片

            《XXX芯片項目-資源需求調研模板》Server一欄的Middle /High 型是用戶自己設定的不同機器配置,后期計算不同機型費用時會用到,跟算力需求計算無關。

            Part3 :全年現實算力需求折算


            不管是小白版算法還是老司機版算法,都是一個月每天全部按峰值需求跑任務的前提下進行計算的。但實際情況下,肯定不需要一直按峰值頂格跑。
            我們折算一下:全月全資源峰值用量:峰值核數*30天*24小時全月實際用量可能是:峰值核數*22天*8小時
            用小白版算法的數據來調整:6月算力小波峰:后端按30天*18小時估算,驗證按30天*16小時估算;10月算力大波峰:后端按30天*24小時估算,驗證按照30天*16小時估算。
            得出下表,并繪制成相應曲線圖:


            圖片


            圖片

            灰色曲線為按峰值計算的算力需求橙色曲線為折算后實際需要的算力 

            Part4 :一個并不艱難的選擇


            好了,全生命周期算力需求算完了。到了算賬的環節了。

            圖片

            灰色代表當月按峰值頂格算的用量橙色代表月度實際用量。
            綠色代表本地資源,必須按這一階段需求峰值準備,也就是按灰色來準備。買不到峰值,肯定會影響到芯片項目進度。
            如果是純本地,就是按綠色這根線買。現金流是必須要動用一大筆的了,采購周期也是必須要考慮的。按照本文開頭我們某客戶全生命周期月度算力實際用量曲線波峰、波谷間差距可高達20倍,月調度核時峰值能達到百萬級以上。頂格買……

            圖片

            如果是全云端,就是按橙色這根線花錢。想用就用,不想用就關掉,用了才花錢。現金流逐步平緩支出。
            綠色線橙色線中間的差距(圖中陰影部分),各人可能有各人的體會。算力資源規劃VS現金流
            芯片項目周期VS市場競爭格局具體怎么權衡和取舍,還是要看企業自己。
            一顆芯片設計完整生命周期下,不同階段,不同應用場景,對算力更精細的需求差異,我們相應的推薦和建議,以后再聊。


            *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



            關鍵詞: 芯片設計

            相關推薦

            技術專區

            關閉
            主站蜘蛛池模板: 德阳市| 永城市| 略阳县| 石门县| 威远县| 株洲市| 浮山县| 铜梁县| 介休市| 云浮市| 兰州市| 芮城县| 周口市| 白银市| 嘉善县| 张家界市| 德钦县| 黑龙江省| 繁昌县| 通山县| 栖霞市| 紫金县| 宜章县| 庆元县| 木兰县| 紫阳县| 东方市| 嘉荫县| 忻州市| 龙门县| 塔河县| 黔西| 济阳县| 岳普湖县| 荣成市| 柏乡县| 南平市| 勐海县| 高雄县| 福清市| 四会市|