0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

芯片設(shè)計之算法仿真

jf_78858299 ? 來源:速石科技 ? 作者:速石科技 ? 2023-05-05 16:09 ? 次閱讀

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

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

CPU/GPU本應(yīng)該是算法仿真的常客,但因為歷史比較悠久,發(fā)展成熟,市場幾乎被英偉達(dá)AMD壟斷,很多IC設(shè)計公司選擇直接采購IP的方式跳過這一步。

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

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

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

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

算法仿真的本質(zhì)

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

舉個栗子。

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

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

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

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

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

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

一家算法團隊的小目標(biāo)

一家**無線通信芯片公司算法團隊,**開局情況如下:

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

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

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

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

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

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

總運行時間達(dá)到3.05年。

啊這。。

可能打開方式不對,再來:

增加假設(shè)五: 人均資源上限逐漸提升到120核;

假設(shè)六: 算法團隊人數(shù)逐步擴張至46人;

總運行時間約96.92天。

嗯,這回挺好。

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

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

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

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

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

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

真是,沒一個字讓人愛聽的。

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

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

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

算法仿真的四大特性

下圖是這家無線通信芯片公司算法團隊9個月實際****日平均資源用量波動總覽圖:

01

需求不可測

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

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

02

短時間使用量波動巨大

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

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

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

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

不同公司的算法團隊之間,因為團隊規(guī)模與業(yè)務(wù)差異,資源用量差異也非常大。

03

資源需求類型多樣

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

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

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

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

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

04

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

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

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

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

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

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

01

算法工程師視角

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

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

2)資源選擇空間變大

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

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

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

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

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

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

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

**

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

02

團隊管理視角

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

算法任務(wù)的不可預(yù)測且波動巨大,導(dǎo)致了資源預(yù)測與規(guī)劃基本不可能。

傳統(tǒng)靜態(tài)處理方式來解決問題:

按頂格規(guī)劃,這筆賬都不用算,會造成黃色區(qū)域的巨大浪費;

按中間取值準(zhǔn)備,當(dāng)某個時間點算法仿真短時間內(nèi)任務(wù)量激增,就會出現(xiàn)人機不匹配,不是有人力沒機器,就是有機器沒人力。這種錯配導(dǎo)致資源利用率極低,影響研發(fā)進度。

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

我們的 動態(tài)處理方式 ,會隨著時間變化,靈活根據(jù)當(dāng)前時間點任務(wù)需求匹配不同規(guī)模/類型資源的方式,動態(tài)滿足研發(fā)需求。

不管500核還是5000核,我們都能實時根據(jù)需要,滿足整個團隊的大幅波動資源需求,保障日常算力和峰值算力任務(wù)調(diào)度效率。

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

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

一方面隨用戶任務(wù)需求,設(shè)置自動伸縮上下限,自動化調(diào)用資源完成任務(wù);

Auto-Scale功能可以根據(jù)任務(wù)運算情況動態(tài)開啟云端資源,需要多少開多少,并在任務(wù)完成后自動關(guān)閉,讓資源的使用緊隨著用戶的需求自動擴張及縮小,最大程度匹配任務(wù)需求。

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

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

3)提升團隊整體運營效率

我們的運營數(shù)據(jù)dashboard能讓團隊管理者監(jiān)控各個重要指標(biāo)變化,從全局角度掌握項目的整體任務(wù)及資源情況,為未來項目合理規(guī)劃、集群生命周期管理、成本優(yōu)化提供支持。

還能根據(jù)不同成員或小組的業(yè)務(wù)緊迫程度和業(yè)務(wù)重要性,合理分配與控制用戶使用資源。

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

我們的全球數(shù)據(jù)中心,能持續(xù)穩(wěn)定地提供用戶所需資源類型及數(shù)量,分鐘級調(diào)度開啟上萬核計算資源,滿足業(yè)務(wù)緊迫度。

用戶可以選擇自主選擇大內(nèi)存、高主頻等多樣化的資源類型來滿足不同算法需求。一旦發(fā)現(xiàn)所選資源類型與算法任務(wù)不匹配,還可隨時中止任務(wù)、更換資源類型,任務(wù)進度不受影響。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417167
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4552

    瀏覽量

    92023
  • 數(shù)字IC
    +關(guān)注

    關(guān)注

    1

    文章

    37

    瀏覽量

    12416
收藏 人收藏

    評論

    相關(guān)推薦

    【安全算法DES】DES算法的C語言源碼實現(xiàn)

    【安全算法DES】DES算法(支持ECB/CBC模式)的C語言源碼實現(xiàn)
    的頭像 發(fā)表于 09-20 08:58 ?4253次閱讀
    【安全<b class='flag-5'>算法</b><b class='flag-5'>之</b>DES】DES<b class='flag-5'>算法</b>的C語言源碼實現(xiàn)

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發(fā)表于 07-18 14:49 ?857次閱讀
    C++<b class='flag-5'>之</b>STL<b class='flag-5'>算法</b>(二)

    c++STL算法(三)

    c++STL算法(三)
    的頭像 發(fā)表于 07-18 15:00 ?1074次閱讀
    c++<b class='flag-5'>之</b>STL<b class='flag-5'>算法</b>(三)

    推薦常用算法——基于內(nèi)容的推薦

    推薦常用算法-基于內(nèi)容的推薦(轉(zhuǎn)自-BreezeDeus博主)
    發(fā)表于 04-29 15:12

    protel設(shè)計原理圖仿真

    protel設(shè)計原理圖仿真 Protel99 SE的混合信號電路仿真引擎現(xiàn)在與3F5完全兼容,支持所有標(biāo)準(zhǔn)的SPICE模型。電路仿
    發(fā)表于 04-26 15:18 ?5592次閱讀

    SVPWM的算法仿真研究

    SVPWM的算法仿真研究,有需要的朋友下來看看
    發(fā)表于 04-13 15:42 ?20次下載

    DSPMASK調(diào)制VHDL程序及仿真

    DSPMASK調(diào)制VHDL程序及仿真,很好的DSP自學(xué)資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-15 17:42 ?16次下載

    Proteus教程 Proteus VSM仿真與分析

    Proteus教程 Proteus VSM仿真與分析
    發(fā)表于 09-12 16:13 ?0次下載

    如何在DSP芯片上實現(xiàn)Matlab的仿真算法

    當(dāng)用Matlab完成數(shù)字信號處理算法仿真后,如何在DSP芯片上實時實現(xiàn),是電氣信息類大學(xué)生需要掌握的一項重要的工程實踐能力。在仿真過程中,有算法
    發(fā)表于 09-10 16:08 ?33次下載
    如何在DSP<b class='flag-5'>芯片</b>上實現(xiàn)Matlab的<b class='flag-5'>仿真</b><b class='flag-5'>算法</b>

    如何使用SIMULINK對SVPWM算法進行仿真

    介紹了空間電壓矢量脈寬調(diào)制(SVPWM)的基本原理,并且詳細(xì)闡述了SVPWM的算法,最后用Matlab的Simulink對SVPWM的算法進行了仿真,給出了仿真結(jié)果.
    發(fā)表于 11-04 17:17 ?31次下載
    如何使用SIMULINK對SVPWM<b class='flag-5'>算法</b>進行<b class='flag-5'>仿真</b>

    MultiSim電路仿真受控源的使用

    MultiSim電路仿真受控源的使用
    發(fā)表于 01-07 13:11 ?21次下載
    MultiSim電路<b class='flag-5'>仿真</b><b class='flag-5'>之</b>受控源的使用

    Multisim仿真微分積分電路

    Multisim仿真微分積分電路免費下載。
    發(fā)表于 04-08 14:46 ?36次下載

    芯片設(shè)計仿真工具

    WINDOWS系統(tǒng)主要運用于可編程邏輯器件,如CPLD、FPGA的仿真,這是因為進行驗證的工程師(芯片生產(chǎn)前需要進行驗證,目的是防止實際生產(chǎn)的芯片出現(xiàn)漏洞導(dǎo)致百萬元到千萬元人民幣的損失)主要使用WINDOWS系統(tǒng)??删幊踢壿嬈骷?/div>
    的頭像 發(fā)表于 08-12 15:01 ?3459次閱讀

    算法空間復(fù)雜度

    算法空間復(fù)雜度:衡量一個算法運行需要開辟的額外空間
    的頭像 發(fā)表于 08-31 10:29 ?1503次閱讀

    芯片設(shè)計五部曲算法仿真

    算法是對芯片系統(tǒng)進行的整體戰(zhàn)略規(guī)劃,決定了芯片各個模塊功能定義及實現(xiàn)方式,指引著整個芯片設(shè)計的目標(biāo)和方向??芍^,牽一發(fā)而動全身。
    發(fā)表于 03-01 10:07 ?765次閱讀