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