


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
添加硬件加速器可以加快處理器的正弦計算如果修改軟件不能實現(xiàn)所需速度,那么你可能順理成章的想到在你的設(shè)計中加入硬件加速模塊。有很多種算法可對單精度浮點數(shù)字的正弦值進行計算,但添加硬件加速器是功能最為強大的方法之一。之所以得出這一結(jié)論,是因為客戶的應(yīng)用要求使用此類正弦計算,而我們又針對能夠提供良好、快速且高效的解決方案進行了多種方案的探索。為了確定哪種實現(xiàn)方式最適合您的應(yīng)用,首先需要對代碼進行分析,以查找哪種功能需要改進;其次,由于修改軟件比修改硬件更簡便、迅速,因而請檢查是否能通過修改軟件來實現(xiàn)您所需的高速度(有時可以)。但是如果您還需要更高的性能,那么請考慮在硬件中實現(xiàn)部分算法。在硬件加速的支持下,您可以輕松勝過市場上任意微控制器或DSP。為了解該流程,讓我們以現(xiàn)實案例為例,探討如何開發(fā)一個需要針對單精度浮點數(shù)字進行正弦計算的軍事應(yīng)用。出于對高性價比的原因考慮,客戶已選擇了一款采用嵌入式MicroBlaze?的Spartan?-6FPGA作為主系統(tǒng)控制器。可處理正弦計算的軟件算法應(yīng)運行于MicroBlaze之上??蛻舻乃惴ㄖ饕褂酶↑c運算。由于算法復(fù)雜,轉(zhuǎn)而采用定點運算并不妥當。此外,客戶還希望避免使用定點運算時可能出現(xiàn)的運行過度或運行不足的情況。客戶清楚MicroBlazeIP可提供兩種類型的浮點單元(FPU),并已選用擴展版本(相對于基本版而言)來加速算法。但是,這樣做就無法利用作為GNU工具鏈組成部分且隨EDK一起交付的數(shù)學(xué)仿真庫。數(shù)學(xué)庫中的軟件仿真例程程序運行速度非常慢,在任何情況下都應(yīng)盡量避免將其用于算法中對性能起到關(guān)鍵作用的部分。另外,客戶還清楚MicroBlazeFPU的兩個版本都只能處理單精度數(shù)據(jù),不能處理雙精度數(shù)據(jù)。客戶的算法可以明確地僅使用浮點精度數(shù)據(jù)(floatprecisiondata)。但在開始使用數(shù)學(xué)函數(shù)時,有時也會進行隱式轉(zhuǎn)換。這些轉(zhuǎn)換會強制算法
在不知不覺中使用雙精度數(shù)據(jù)。步驟一:分析問題我們的客戶已經(jīng)在運行他的算法,但發(fā)現(xiàn)該算法在MicroBlaze處理器上的運行速度偏慢。在對代碼庫進行特性描述后,客戶發(fā)現(xiàn)引起速度慢的原因是正弦計算。下一步是找出其中原因并分析怎樣做才能加快處理速度。第一種方案是使用數(shù)學(xué)庫提供的標準正弦函數(shù),在客戶將算法寫入后,在不進行任何修改的情況下完整地運行它。主要的問題在于數(shù)學(xué)庫函數(shù)僅針對雙精度數(shù)據(jù)而創(chuàng)建,這就意味著正弦函數(shù)的原型應(yīng)為如下所示:doublesin(doubleangle);但客戶希望以下列方式使用:
floatsin_val;
floatangle;
...
sin_val=sin(angle);當然,這也是可能的,而且C編譯器會自動從參數(shù)角添加所需的轉(zhuǎn)換,進行“雙精度化”,并將函數(shù)調(diào)用的結(jié)果轉(zhuǎn)回浮點值。這樣通常還是由數(shù)學(xué)庫函數(shù)來執(zhí)行兩個額外的轉(zhuǎn)換函數(shù),甚至是正弦計算。切記,MicroBlaze的FPU為單精度版本,只能完成如下執(zhí)行指令:sin_val=(float)sin((double)angle);由于數(shù)學(xué)庫的正弦函數(shù)是雙精度的,因而FPU無法完成正弦計算,故需要純軟件的解決方案。但缺點在于速度太慢,無法滿足客戶的需求。我們驗證了使用雙精度數(shù)據(jù)進行正弦值的計算是執(zhí)行緩慢的原因。首先我們使用下列代碼,從我們的執(zhí)行文件中直接創(chuàng)建匯編代碼:mb-objdump.exe-Dexecutable.elf
>dump.txt檢查匯編代碼時,我們發(fā)現(xiàn)了如下代碼行:brlidr15,-15832//4400d300其作用是調(diào)用數(shù)學(xué)庫以進行雙精度正弦計算。然后,我們測量了利用數(shù)學(xué)庫函數(shù)完成單次正弦計算所需的時間,約為38,700個CPU周期。
對于特定的任務(wù),可以使用專用單精度函數(shù),如計算平方根:floatsqrt_f(floath);使用專用函數(shù)可以避免單、雙精度函數(shù)之間的轉(zhuǎn)換,而且還可充分利用MicroBlazeFPU。但遺憾的是,在FPU上沒有用于處理正弦計算的專用函數(shù)。此時,我們開始開發(fā)多個版本的算法來加速正弦值的計算,以實現(xiàn)更高的性能。步驟二:創(chuàng)建更好的軟件算法創(chuàng)建硬件加速器通常需要一段時間而且也需要進行調(diào)試,因而我們試圖避免在第一次運行中就采取這種方案。我們就性能問題與客戶進行了溝通,獲得了正弦計算的關(guān)鍵參數(shù)??蛻舻乃惴ㄒ?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 委托試驗檢測技術(shù)服務(wù)合同
- 制造行業(yè)自動化生產(chǎn)與質(zhì)量管理方案
- 鋼煤斗施工方案
- 施工方案對比
- 玻璃鋼離心風(fēng)機施工方案
- 陜西模板支撐施工方案
- 光伏雙拱大棚施工方案
- 油氣配管施工方案
- 別墅外墻回紋腰線施工方案
- 龍巖硅pu籃球場施工方案
- 2025江西吉泰廬陵開發(fā)投資集團有限公司及下屬子公司招聘26人筆試參考題庫附帶答案詳解
- 2025年開封文化藝術(shù)職業(yè)學(xué)院單招職業(yè)傾向性測試題庫含答案
- 高中英語丨高考核心高頻詞匯
- 《數(shù)智化技術(shù)應(yīng)用與創(chuàng)新》課件 第1章 走進數(shù)智化時代
- 2025中煤電力限公司面向中煤集團內(nèi)部招聘15人易考易錯模擬試題(共500題)試卷后附參考答案
- 二零二五年阿里巴巴電商平臺代銷代運營合同書模板3篇
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 培訓(xùn)機構(gòu)校長聘任協(xié)議證書
- 四川省成都市高新區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含答案)
- 2025年浙江嘉興桐鄉(xiāng)市水務(wù)集團限公司招聘10人高頻重點提升(共500題)附帶答案詳解
- 《現(xiàn)場采樣培訓(xùn)》課件
評論
0/150
提交評論