Qualcomm MARE使多核編程更簡單
如果您曾在過去兩年中購買過智能手機(jī),那么很有可能您的手機(jī)里就有多個CPU子處理器 (核)。手機(jī)包裝盒上很可能標(biāo)注著“雙核”或“四核”!事實上,2013年是這個行業(yè)具有里程碑意義的一年,因為在這一年中多核移動終端的數(shù)量超越了PC和服務(wù)器的數(shù)量。
多核可以幫助應(yīng)用程序飛速運(yùn)行,但前提是這個應(yīng)用程序在編寫時充分利用了多核的優(yōu)勢——而當(dāng)今大部分應(yīng)用程序并沒有做到這一點。
這是因為針對多核的編程難度更大,它要求開發(fā)人員在其應(yīng)用程序中重構(gòu)算法設(shè)計,并考慮其算法的并行化。對許多開發(fā)人員來說,表達(dá)一個并行算法不同部分之間的關(guān)系和依賴性,是多核編程最困難的一個方面。開發(fā)并行編程最常用的技巧是多線程。在線程少的軟件項目中,實施和管理多線程是可行的,但這可能對更復(fù)雜的算法和工作負(fù)載的開發(fā)效率有很大的負(fù)面影響。
去年,美國高通技術(shù)公司推出了一個新的編程庫,將助力開發(fā)人員使用C++編程語言更輕松地實現(xiàn)多核并行,特別是在Android移動平臺上。Qualcomm® MARE(多核異步運(yùn)行環(huán)境)提供了一個可以簡化并行應(yīng)用程序編程的API,使開發(fā)者可以利用現(xiàn)代智能手機(jī)的全部計算性能。兩個最先采用Qualcomm MARE的Android應(yīng)用程序是以及中科創(chuàng)達(dá)公司(中國)的UCAM應(yīng)用和Euvision Technologies(美國)公司的Impala應(yīng)用。
中科創(chuàng)達(dá)利用了Qualcomm MARE的 API工具構(gòu)建其UCAM應(yīng)用,該程序目前可以在Google Play上下載,截至目前全球下載量超過3千萬。UCAM采用Qualcomm MARE執(zhí)行并行實時圖像濾鏡功能,用戶可以選擇任一濾鏡應(yīng)用在自己的照片上。并行處理可以加快GIF動畫的創(chuàng)建,最終也能使用戶從照片中巧妙地切割出人臉或人像,并把他們放置在不同的背景中。
執(zhí)行并行實時濾鏡功能時,中科創(chuàng)達(dá)所使用的代碼數(shù)量比傳統(tǒng)多線程(POSIX線程)少80%,而且實現(xiàn)的性能比其在UCAM應(yīng)用程序中自己管理線程要高的多。
“將Qualcomm MARE應(yīng)用于我們的UCAM全能相機(jī)應(yīng)用,使我們能夠非??焖俚卦诟鲗蛹壍腁ndroid終端上充分利用多核CPU性能。我們只需要編寫一小部分代碼,用于圖像過濾以及實施MARE與C++ POSIX線程的照片處理場景,就能獲得卓越的性能。” 中科創(chuàng)達(dá)工程部高級副總裁鄒鵬程說。
Euvision Technologies公司的全新Android應(yīng)用程序Impala是一個終端相機(jī)解決方案,提供了可視化場景識別和照片場景分類。它使用機(jī)器學(xué)習(xí)技術(shù)在終端上實現(xiàn)了人工智能。Euvision這樣描述它:
將相機(jī)對準(zhǔn)時,它甚至能在實際拍照之前識別出即將拍攝的場景。場景識別通過運(yùn)行在用戶手機(jī)上的人工智能實現(xiàn)。
基于智能拍照攝像頭“所看到的景象”,類似Instagram的濾鏡會自動啟用。選定的濾鏡均已為常用的拍攝場景而優(yōu)化。例如,將相機(jī)對準(zhǔn)拍攝人物時,“Forever Young”(永葆青春)濾鏡自動開啟,仿佛在您朋友的臉上敷上一層抗皺保濕面膜。
此外,一旦相機(jī)檢測到您要拍攝一把藍(lán)莓或肉桂片司康餅,它將自動啟用“Now It's Tasty”(即刻美味可口)濾鏡。拍攝建筑物或古跡時,所謂的“Empire State”(帝國大廈)濾鏡將會開啟。該濾鏡最適合室外場景,因為它通過改變光線,使圖像看上去更加冷艷。
Impala Mobile研發(fā)部負(fù)責(zé)人Daniel Fontijne表示:“Euvision Technologies公司的Impala移動應(yīng)用程序中的場景識別軟件是并行開發(fā)的。用Qualcomm MARE更新我們的軟件來最大化這種并行性可謂輕而易舉。MARE的另一大優(yōu)勢是可適用于大多數(shù)主流平臺。它還能實現(xiàn)近乎線性的加速,使我們能夠在 Android終端上運(yùn)行實時場景識別。”
Impala等應(yīng)用需要連續(xù)執(zhí)行大量代碼才能做到實時觀看、思考并向您提供操作建議。要想在體驗上毫無延遲感,則需要消耗大量的計算。通過安裝Qualcomm MARE的數(shù)據(jù)庫和API,Impala能夠做到這一點!
Qualcomm MARE可用于任何搭載多核處理器的Android終端上運(yùn)行的應(yīng)用程序。Qualcomm MARE SDK也可用于Linux、Windows或OS X,可使編程人員在轉(zhuǎn)移到移動平臺之前,在一個熟悉的環(huán)境中開發(fā)和調(diào)試他們的應(yīng)用程序。