6月24日 正在尋找新方法來提高您的計算密集型任務性能?高通MARE(多核異步運行環境)讓您能夠輕松地編寫可使用移動設備上所有可用內核的并行應用程序。
當前,有越來越多的用戶在圍繞多核處理器建造的移動設備上運行您的應用程序。事實上,來自市場調查公司Strategy Analytics的一份報告顯示,2013年年初出貨的全部智能手機中,有三分之二包含多核處理器。高通研究院(Qualcomm Research)打造的MARE(多核異步運行環境)是一種用于并行及異構移動計算的編程模型和運行時系統。這種原生C++庫提供了一種簡單而優雅的方式在多個CPU核心上實現并行計算,并且可以利用我們剛剛更新的MARE SDK(軟件開發工具包)在GPU上實現異構計算。
用簡單方法進行并行和異構計算
您可以通過在獨立的計算引擎上運行任務,來普遍提升游戲、多媒體處理和計算機視覺應用程序的性能。不過,這種性能改善通常會需要開發額外的程序來管理并發機制和線程,因為很多程序員目前仍還在使用粗粒度線程。MARE運行時會自動處理資源管理任務,尤其是能夠以最佳方式根據任務選擇計算核心,從而讓您能夠專注于您的應用程序邏輯問題。
使用今天發布的MARE SDK(軟件開發工具包)版本,您所得到的不僅僅是CPU并行計算多核支持。這一新版本包含以下特性:
· 并行編程模式——是一個包括并行迭代、并行圖、并行前綴掃描和同步數據流在內的集合。這些模式通過優化執行通用并行習語,可進一步簡化編程。
· Snapdragon?驍龍處理器優化——配備MARE功能的應用程序可在搭載任何處理器的安卓設備上運行。我們為諸如矩陣乘法等線性代數例程增加了對Snapdragon驍龍處理器的特定支持。
電源管理——MARE電源API(應用程序編程接口)包括兩種功耗控制方式:粗功率設置(包括“正常”、“高效”、“高性能”、“節能”四種模式),和利用該應用的優質服務實現的動態功率控制。高通Snapdragon驍龍處理器提供這些API(應用程序編程接口)。
· 異構計算——MARE可以在多個CPU核心以及GPU上執行任務。
MARE作為用戶級庫實施,與安卓NDK相集成,提供易于使用的并行編程原語言。其應用級摘要幫助您利用任意安卓設備上的多進程硬件,而不需要深入了解有關該硬件的知識。
中科創達UCam全能相機(UCam by Thundersoft)——1名工程師,2天時間,60%的性能提升幅度
MARE多核異步運行環境在實際應用方面的一個范例是中科創達軟件股份公司(Thundersoft,以下簡稱“中科創達”)的UCam全能相機平臺,該平臺讓開發人員能夠將攝像頭相關功能集成到單一應用程序中。由于手機屏幕尺寸日漸增大、攝像頭分辨率越來越高,并且應用程序已發展到包含更多計算密集型效應,因此中科創達的工程師們意識到,是時候在UCam全能相機中實現實時并行圖像濾鏡和GIF動畫創建功能了。
中科創達戰略產品高級副總裁鄒鵬程表示:“我們曾嘗試使用POSIX線程(簡稱“Pthread”)進行并行計算,因為我們的很多程序員都曾在學校里學過這方面的知識。但是普通程序員很難掌握Pthread中的線程管理任務(包括同步、對話等),所以我們另辟蹊徑。”
工程師們對UCam全能相機進行了修改,以便使用MARE任務API(應用程序編程接口),這樣可以讓運行時決定如何最好地對任務進行并行處理與同步。他們僅需要修改用以啟動每項任務的代碼即可。為了盡可能減少MARE占用的空間,加載到內存中的唯一API(應用程序編程接口)就是UCam全能相機所需要的那個API。中科創達通過實施MARE多核異步運行環境獲得的成果包括:
· 與單線程版本的UCam全能相機相比,圖像處理速度提高60%
· 線程管理和并行計算只占用五分之一的Pthread代碼
· 無論采用何種設備或處理器,只在Google Play中出現一個單一.apk文件
實施MARE多核異步運行環境無需對UCam全能相機算法做任何代碼更改,一名工程師只需兩天左右即可完成。