將推理、場景分類、圖像處理和視頻回放增強(qiáng)之類的工作負(fù)載放到邊緣設(shè)備(如智能手機(jī))的CPU和GPU進(jìn)行處理,會耗盡運(yùn)行周期并縮短電池使用壽命。DSP編程越方便,您的應(yīng)用就能更快地以更高性能和更低功耗運(yùn)行類似的工作負(fù)載。
因此,我們新發(fā)布的Hexagon DSP SDK 3.3.2到處都體現(xiàn)了“可用性”。
如果您是嵌入式開發(fā)者,會發(fā)現(xiàn)工具包包含了各種常用的編程工具。如果您是移動(dòng)應(yīng)用開發(fā)者,也會找到順利過渡到DSP編程所需的一切。坦白說,這些工具對部分人員來說可能覺得難以應(yīng)付,但其實(shí)大可不必有這種想法。
本文將一一介紹SDK中包含的更高可用性方法。
1. 不用從頭開始DSP編程。我們?yōu)槟峁┝舜罅康氖纠a。
為顯示我們對可用性的認(rèn)真態(tài)度,我們添加了SDK示例代碼和文檔。您可以找到Hexagon Vector eXtensions(HVX)基準(zhǔn)示例代碼,和在Hexagon上使用Halide的示例代碼。另外,還更新了入門指南和分析器、模擬器和調(diào)試器文檔。我們制作了QuRT(運(yùn)行在Hexagon上的實(shí)時(shí)操作系統(tǒng))和DSP Compute用戶指南,并更新了HVX上下文保存/恢復(fù)功能。
2. 不用重寫C++算法。我們已經(jīng)在DSP上提供了相關(guān)支持。
很多開發(fā)者受到高性能和低功耗的雙重誘惑,而從嵌入式領(lǐng)域轉(zhuǎn)向DSP編程。之前他們花了多年時(shí)間完善運(yùn)行在CPU上的C或C++算法,例如低光視頻捕捉、圖像穩(wěn)定或卷積神經(jīng)網(wǎng)絡(luò)。如果不能確定是否能夠?qū)崿F(xiàn)承諾得好處,不會有多少人愿意再重新為DSP寫代碼并進(jìn)行優(yōu)化。
從去年1月份開始,我們提供了一個(gè)編譯器和庫,利用Hexagon SDK在DSP編程時(shí)使用C++語言。現(xiàn)在,在SDK 3.3.2中,我們更新了編譯器工具鏈,允許在Hexagon DSP上執(zhí)行以C++ 11/14編寫的框架和算法。
這就意味著無需重新編寫這些算法,就可以直接為DSP重新編譯,并在Hexagon上運(yùn)行。這是第一個(gè)巨大的進(jìn)步,您會看到性能提升和耗能減少。大多數(shù)情況下,我們希望您作進(jìn)一步優(yōu)化。
3. 不用編寫自己的編程工具。我們已經(jīng)提供了編程工具。
Hexagon包含DSP邏輯以及類似于CPU的功能和特性,因此可以將其視為嵌入式處理器。在Hexagon SDK 3.3.2中,我們補(bǔ)充了用于編寫、調(diào)試和分析的工具集,確保您的應(yīng)用從底層硬件中獲得最大收益:
?完整的工具箱——在SDK中,您可以找到完整的LLVM工具鏈(編譯器、鏈接器、匯編器)、診斷日志記錄、性能監(jiān)視器、動(dòng)態(tài)鏈接器和加載器以及支持協(xié)同仿真和虛擬平臺的仿真器。
?調(diào)試器——我們增加了LLDB支持,意味著能更好地支持C和C++代碼?,F(xiàn)在,當(dāng)您通過USB連接開發(fā)工作站和參考板或設(shè)備時(shí),可以在IDE中執(zhí)行常見的調(diào)試操作,例如單步執(zhí)行調(diào)試代碼,使用斷點(diǎn),檢查寄存器或內(nèi)存內(nèi)容。
?IDE插件——SDK包含Eclipse IDE插件,以便更好地與開發(fā)環(huán)境集成。
?Profiler——在DSP分析器sysMon中,我們完善并允許您訪問相關(guān)功能,方便您更深入地了解算法性能。為幫助您了解代碼在Hexagon上的執(zhí)行情況,sysMon收集并顯示性能、緩存和其他相關(guān)指標(biāo)。
有了這一功能強(qiáng)大的補(bǔ)充,您會發(fā)現(xiàn)SDK更加易用。
4. 不用構(gòu)建自己的圖像處理語言。我們?yōu)槟峁┝薍alide工具。
如果您開發(fā)相機(jī)和圖像項(xiàng)目,可能聽說過或使用過Halide,實(shí)現(xiàn)高性能視覺和成像算法。我們認(rèn)為Halide和Hexagon是絕佳搭配,所以我們聯(lián)合Google一起為HVX構(gòu)建了一個(gè)Halide工具集。以下是我們?yōu)槟峁┑墓ぞ撸?/p>
?Halide編譯器——作為Hexagon SDK 3.3.2和Hexagon LLVM工具集的一部分,Halide工具集提供了一個(gè)針對Hexagon DSP和HVX的Halide編譯器。這意味著,如果您熟悉C++語言結(jié)構(gòu),就不需要深入了解底層處理器架構(gòu),就可以開始編寫Halide程序。相反,您可以把精力集中在從DSP為圖像算法獲得盡可能多的性能。
?Halide運(yùn)行環(huán)境——利用此運(yùn)行環(huán)境,您可以通過添加一個(gè)簡單的.hexagon()指令,輕松地將內(nèi)核函數(shù)透明分派到Hexagon。這在異構(gòu)計(jì)算中十分方便。
?Halide簡潔性——我們自己在Qualcomm驍龍835和845移動(dòng)平臺設(shè)備上進(jìn)行的圖像處理測試中,首先從一個(gè)大約有175行匯編代碼的高效算法開始。然后把它重寫成一個(gè)C例程,大約有100行代碼,性能略有下降。最后,我們使用Halide重寫,不到二十幾行代碼,獲得和匯編代碼相同的性能。 當(dāng)然了實(shí)現(xiàn)情況因人而異,但如果您喜歡編碼緊湊,Halide也許是您的菜。
5. 不用編寫自己的神經(jīng)網(wǎng)絡(luò)庫。我們?yōu)槟峁┝艘粋€(gè)。
越來越多的人談?wù)撛O(shè)備端處理如何給AI應(yīng)用帶來優(yōu)勢,以及如何在云端訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,然后在設(shè)備端運(yùn)行推理。大多數(shù)公司都試圖在CPU或GPU上優(yōu)化AI處理,但在 Qualcomm Technologies,Inc.(QTI) ,過去數(shù)年時(shí)間我們一直在對DSP上的AI處理進(jìn)行優(yōu)化。
下一步:下載SDK
雖然Hexagon是驍龍異構(gòu)計(jì)算模型的一部分,但Hexagon DSP SDK 3.3.2本身看起來就像是個(gè)嵌入式開發(fā)平臺。它支持搭載驍龍SDM630、SDM660、SDM820、SDM835、SDM845和SDM670的設(shè)備。
?現(xiàn)在就下載SDK,看看它能在性能和功耗方面給您帶來哪些優(yōu)勢。
?下載Halide,更方便地編寫高性能圖像處理代碼。
-
dsp
+關(guān)注
關(guān)注
552文章
7959瀏覽量
347932 -
編程
+關(guān)注
關(guān)注
88文章
3565瀏覽量
93536 -
SDK
+關(guān)注
關(guān)注
3文章
1020瀏覽量
45697
發(fā)布評論請先 登錄
相關(guān)推薦
評論