最近用AT91SAM9261EK這塊開發板執行影像處理的程式,發現所耗費的時間實在是有點沒辦法接受,僅僅對512x512的圖片執行
和
測邊,就花了將近25秒,更不用說人臉辨識了= =
gcc
cross-compiler在compile program的時候,對於浮點數運算會預設使用硬體浮點運算FPA(Float Point
Architecture),而沒有FPA的CPU,會使用FPE(Float Point
Emulation),而使用FPE速度上會受到極大的限制,所以就由EABI(Embedded Application Binary
Interface),來做處理。
ARM EABI有許多的革新方式,但是改變最大的應該就是Float Point
Performance,它使用Vector Float Point(其實我不太懂,只知道這樣比FPE快很多),而Linux
Kernel從2.6.16版開始支援了EABI(Kernel Feature),ARM EABI Cross-compiler可以在
下載,速度上也真的增快許多,同樣的程式可以在一秒內跑完,相關performance比較請參考文章
Why ARM's EABI matters
。
雖然速度上已經提高許多,但執行人臉辨識程式,還是需要花費3秒以上,解決辦法,應該是要換更快的CPU(AT91SAM9261只有200Mhz)或是換有FPA的CPU,而最省錢卻最費力的方法,就是將程式改成Fixed Point.
阅读(1837) | 评论(0) | 转发(0) |