<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 賬號(hào):
    密碼:
    智動(dòng)化 / 文章 /

    加速Simulink模型內(nèi)的訊號(hào)處理演算法模擬
    [作者 Akash Gopisetty]   2021年02月18日 星期四 瀏覽人次: [28548]

    從Dataflow領(lǐng)域(domain)可以看出Simulink模型中的建模型式,這些型式可以被分配到多個(gè)執(zhí)行緒來(lái)平行地執(zhí)行。這種方法利用主機(jī)CPU所提供的處理能力帶來(lái)的優(yōu)勢(shì),借以優(yōu)化吞吐量、縮短模擬時(shí)間。由于在運(yùn)算工作被分散到整個(gè)模型時(shí)可以加入平行處理,Dataflow領(lǐng)域(domain)的效果最好。不過(guò),這種方式僅適用于離散訊號(hào)。


    訊號(hào)處理系統(tǒng)設(shè)計(jì)因?yàn)樯婕傲搜菟惴ɑ蛸Y料密集的應(yīng)用,通常具備高度的運(yùn)算復(fù)雜度,這些復(fù)雜系統(tǒng)的建立及模擬可能相當(dāng)耗時(shí)。 Simulink中的Dataflow領(lǐng)域(domain)功能提供了一種方式,可以縮短模型模擬時(shí)間。這項(xiàng)功能透過(guò)將Simulink模型自動(dòng)地分割,并且使用電腦主機(jī)上的CPU核心平行地執(zhí)行來(lái)加快模擬速度。


    本文將說(shuō)明如何以三個(gè)簡(jiǎn)單的步驟來(lái)設(shè)置Dataflow。接著,以一個(gè)無(wú)線電模型為例來(lái)展示Dataflow的運(yùn)作,并比較使用與未使用Dataflow進(jìn)行模擬所花費(fèi)時(shí)間的差異。


    Dataflow使用的平行運(yùn)算類型

    為了要將模型分割并且平行地執(zhí)行,Dataflow使用下列其中一種資料和任務(wù)平行(task parallelism)組合(圖1):


    *外顯平行(explicit parallelism):透過(guò)不同演算法處理不同資料集。


    *展開(kāi)式平行(unfolding parallelism):以相同的演算法處理連續(xù)的資料流框架。


    *管線式平行(pipelining parallelism):以不同的演算法處理相同資料的不同部位。



    圖1 : Dataflow使用的平行運(yùn)算類型。
    圖1 : Dataflow使用的平行運(yùn)算類型。

    設(shè)置Dataflow

    為了在Simulink模型中啟用Dataflow領(lǐng)域(domain),首先需要執(zhí)行一個(gè)子系統(tǒng),執(zhí)行的方式取決于設(shè)計(jì)的進(jìn)度。


    如果設(shè)計(jì)流程才剛開(kāi)始,可使用DSP System Toolbox(DSP系統(tǒng)工具箱)內(nèi)的Dataflow Subsystem Block(圖2),這個(gè)模塊已預(yù)先被裝配完成,可以直接拿來(lái)使用,只需要將它拖曳到Simulink模型,并且以演算法元件來(lái)填充它。



    圖2 : DSP系統(tǒng)工具箱模塊庫(kù)內(nèi)的Dataflow子系統(tǒng)。
    圖2 : DSP系統(tǒng)工具箱模塊庫(kù)內(nèi)的Dataflow子系統(tǒng)。

    如果已經(jīng)建立起設(shè)計(jì)模型,就可以把希望進(jìn)行平行處理的演算法模塊放進(jìn)子系統(tǒng),并且依照以下步驟來(lái)設(shè)置Dataflow:


    1.選擇剛剛建立的子系統(tǒng)。


    2.在Property Inspector分類下Execution頁(yè)簽的Set execution domain選項(xiàng)打勾。


    3.設(shè)定Dataflow為Domain。


    在這個(gè)子系統(tǒng)里面,左下角的符號(hào)代表子系統(tǒng)領(lǐng)域(domain)已經(jīng)被設(shè)定為Dataflow。


    此Dataflow領(lǐng)域(domain)會(huì)先以單一執(zhí)行緒(thread)執(zhí)行模型來(lái)取得模型概況,接著自動(dòng)分割子系統(tǒng)來(lái)進(jìn)行多執(zhí)行緒的執(zhí)行。


    Dataflow的運(yùn)作

    我們的范例模型模擬了一個(gè)無(wú)線電發(fā)射器和接收器,它包含了數(shù)位的上行與下行轉(zhuǎn)換器來(lái)調(diào)整訊號(hào)頻率,借此實(shí)現(xiàn)一個(gè)調(diào)變器和解調(diào)器(圖3)。范例中的輸入為一段取樣頻率為8k Hz的演講錄音,輸出為兩個(gè)頻譜分析器及一個(gè)音頻接收器。



    圖3 : 具有單通道音訊輸入的無(wú)線電模型。
    圖3 : 具有單通道音訊輸入的無(wú)線電模型。

    第一步,先來(lái)測(cè)量未啟動(dòng)Dataflow狀態(tài)下模擬這個(gè)模型所花的時(shí)間[1]。將輸出模塊標(biāo)注為關(guān)閉,可以專注于演算法模擬,不會(huì)受到執(zhí)行示波器和音訊輸出所需的固定時(shí)間的影響。使用tic-toc指令來(lái)測(cè)量模擬時(shí)間。


    現(xiàn)在加入Dataflow,會(huì)將代表演算法的模塊放入子系統(tǒng),并且將領(lǐng)域(domain)調(diào)整為Dataflow(圖4)。



    圖4 : 啟動(dòng)了Dataflow的單一通道音訊輸入無(wú)線電模型。
    圖4 : 啟動(dòng)了Dataflow的單一通道音訊輸入無(wú)線電模型。

    Dataflow assistant功能列出了建議的模型設(shè)定變更(圖5)。



    圖5 :  Dataflow assistant列出的模型設(shè)定變更建議。
    圖5 : Dataflow assistant列出的模型設(shè)定變更建議。

    Dataflow assistant建議的其中一項(xiàng)變更為加入延遲。延遲通常在Dataflow辨識(shí)到平行處理的機(jī)會(huì)時(shí)被加到模型中來(lái)增加吞吐量。這些沿著訊號(hào)線加入的延遲以z-n 標(biāo)簽來(lái)表示。


    我們接受這些變更,并且將啟動(dòng)了Dataflow的模型儲(chǔ)存為 familyRadioServiceExample_Dataflow。


    接著,同前述一樣使用tic-toc指令來(lái)測(cè)量新子系統(tǒng)的執(zhí)行時(shí)間。


    啟動(dòng)了Dataflow之后的執(zhí)行時(shí)間為2.5秒,比正常單一執(zhí)行緒的執(zhí)行速度快了1.7倍,而速度加快是因?yàn)榫幾g器的優(yōu)化、模型設(shè)置的變更、以及在模型中加入了延遲。


    然而,模型僅以一個(gè)執(zhí)行緒執(zhí)行,加速的效果并不顯著,這是因?yàn)榇蟛糠值倪\(yùn)算工作都集中在上行和下行轉(zhuǎn)換器模塊,當(dāng)運(yùn)算量延展到整個(gè)模型時(shí),提供了更多機(jī)會(huì)來(lái)建立平行執(zhí)行緒時(shí),Dataflow在這時(shí)的表現(xiàn)最好。在下一個(gè)段落將延伸模型,示范如何更進(jìn)一步地使用Dataflow來(lái)改善模擬表現(xiàn)。


    較大模型的處理

    我們加入一個(gè)多通道的音訊輸入訊號(hào)來(lái)增加模型的運(yùn)算復(fù)雜度,這會(huì)將需要處理的資料量增加為兩倍,也給予Dataflow更多優(yōu)化模擬表現(xiàn)的途徑。圖6繪制的模型已為變更為帶有立體音訊,執(zhí)行該模型需要18.6秒。藉由啟用訊號(hào)維度資訊套疊,將訊號(hào)輸入設(shè)定為真的具有兩組音訊通道。



    圖6 : 帶有一個(gè)立體聲輸入多通道聲音訊號(hào)的無(wú)線電模型。
    圖6 : 帶有一個(gè)立體聲輸入多通道聲音訊號(hào)的無(wú)線電模型。

    完成Dataflow上的調(diào)整并且回到模型之后,發(fā)現(xiàn)執(zhí)行一次跑在五個(gè)并行的執(zhí)行緒的模擬花費(fèi)時(shí)間為4.5秒—加快了幾乎四倍(圖7)。



    圖7 : Dataflow assistant顯示模擬執(zhí)行的延遲與執(zhí)行緒數(shù)量。
    圖7 : Dataflow assistant顯示模擬執(zhí)行的延遲與執(zhí)行緒數(shù)量。

    Dataflow的限制

    Dataflow可以協(xié)助加快大部分的模擬,不過(guò)可能還是無(wú)法適用于所有模型—比如較小、復(fù)雜度較低的模型、或者計(jì)算量集中于少數(shù)模塊的模型。


    在這類情況,透過(guò)Dataflow達(dá)成的加速并不能夠補(bǔ)償以平行執(zhí)行緒同步和執(zhí)行模型所需要的開(kāi)支。如同在無(wú)線電模型這個(gè)案例所見(jiàn),Dataflow在運(yùn)算量在模型中平均分散時(shí)的表現(xiàn)最好,因?yàn)槠骄稚⒌墓ぷ髁繛槟P偷母鞑糠痔峁└嗟钠叫袌?zhí)行機(jī)會(huì)。


    (本文由鈦思科技提供;作者Akash Gopisetty任職于MathWorks公司)


    參考資料

    [1]所有模擬皆執(zhí)行于裝載Intel Xeon CPU W-2133@ 3.6 GHz 6核心12執(zhí)行緒處理器的Windows桌上型電腦。


    相關(guān)文章
    ? NASA太空飛行器任務(wù)開(kāi)發(fā)光學(xué)導(dǎo)航軟體
    ? 近即時(shí)模擬與控制協(xié)助自主水下載具機(jī)動(dòng)運(yùn)行
    ? Premium Radar SDK以演算技術(shù)改進(jìn)汽車?yán)走_(dá)應(yīng)用
    ? 資料科學(xué)與機(jī)器學(xué)習(xí)協(xié)助改善頸部損傷評(píng)估
    ? 配電網(wǎng)路的即時(shí)模擬環(huán)境開(kāi)發(fā)
    comments powered by Disqus
      相關(guān)新聞
    » 臺(tái)達(dá)攜手珍古德協(xié)會(huì)與海科館 三方合作推動(dòng)珊瑚復(fù)育教育
    » 嘉義縣以空品監(jiān)測(cè)即時(shí)掌控工廠火災(zāi)應(yīng)變措施
    » 裕民航運(yùn)聚焦於凈零轉(zhuǎn)型與全球布局 以營(yíng)運(yùn)韌性拓展綠色未來(lái)
    » 臺(tái)達(dá)於COMPUTEX 2025聚焦人工智慧與節(jié)能永續(xù)
    » 臺(tái)達(dá)電子公布一百一十四年四月份營(yíng)收 單月合并營(yíng)收新臺(tái)幣407.82億元
      相關(guān)產(chǎn)品
    » 泓格iSN-811C-MTCP紅外線感測(cè)模組 從溫度掌握工業(yè)制造的安全與先機(jī)
    » 凌華科技透過(guò) NVIDIA JetPack 6.1 增強(qiáng)邊緣 AI 解決方案
    » 安勤推出搭載NVIDIA Jetson平臺(tái)邊緣AI方案新系列
    » 臺(tái)達(dá)全新溫度控制器 DTDM系列實(shí)現(xiàn)導(dǎo)體加工精準(zhǔn)控溫
    » 西門(mén)子下一代AI增強(qiáng)型電子系統(tǒng)設(shè)計(jì)軟體直觀且安全

      主站蜘蛛池模板: 德令哈市| 丹凤县| 浦城县| 南通市| 张家川| 淮南市| 海南省| 长阳| 宜君县| 武定县| 海晏县| 永宁县| 大余县| 兴安盟| 石嘴山市| 芜湖县| 延寿县| 山东省| 鸡泽县| 滕州市| 正阳县| 舞阳县| 咸丰县| 濮阳县| 高青县| 元氏县| 岳普湖县| 德阳市| 宁安市| 舟山市| 繁峙县| 惠安县| 赞皇县| 德钦县| 鄂伦春自治旗| 商河县| 辉县市| 吉安市| 沁水县| 兴宁市| 建始县|