異構(gòu)計(jì)算—移動(dòng)計(jì)算的發(fā)展方向
人們的需求是永無止境的。對(duì)于計(jì)算終端來說,不管是移動(dòng)還是其他類型的終端,我們總是希望以適宜的價(jià)格獲得更好的用戶體驗(yàn)和性能。到目前為止,行業(yè)似乎已經(jīng)提供了所能提供的一切,但我們期待的還有更多。移動(dòng)體驗(yàn)的提升到底有沒有盡頭?什么樣的體驗(yàn)才是終極目標(biāo)?
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,許多新興移動(dòng)體驗(yàn)和應(yīng)用正在涌現(xiàn),例如計(jì)算攝影、擴(kuò)增實(shí)境、虛擬現(xiàn)實(shí)和情景感知。這些體驗(yàn)不僅需要密集計(jì)算,而且會(huì)帶來各種新的工作量,并且各有不同要求。
例如,在擴(kuò)增實(shí)境中,移動(dòng)終端需要不斷分析攝像頭的反饋、識(shí)別和跟蹤有趣的物體、在三維空間中定位,以及疊加透視校正后的虛擬圖像,也就是“擴(kuò)增”的部 分。這些不同的工作需要大量的計(jì)算“馬力”!另外,這些工作還要通過不斷變化的算法進(jìn)行運(yùn)算,這意味著處理器需要具有某種可編程性。盡管可編程性提供了多 種算法的靈活性,但這同時(shí)也意味著更高的功耗。
因此我們面臨的挑戰(zhàn)是,在提供這些新興移動(dòng)體驗(yàn)的同時(shí),還要滿足消費(fèi)者對(duì)移動(dòng)終端的關(guān)鍵條件:外形時(shí)尚、輕盈,并且電池續(xù)航時(shí)間夠長(zhǎng)。
有些技術(shù)達(dá)人可能認(rèn)為“CPU”是問題的關(guān)鍵,但其實(shí)這只是答案的一部分。正如我前面提到的,CPU的巨大靈活性和可編程性是以功耗為代價(jià)的。事實(shí)上,之 前的方法——在移動(dòng)終端的功率和熱能限制內(nèi),通過調(diào)整CPU來應(yīng)對(duì)日漸增多的計(jì)算需求——帶來的回報(bào)越來越少了。讓我們分別來看:
• 單核CPU調(diào)整通過架構(gòu)改進(jìn)提高CPU的時(shí)鐘頻率和IPC(每一時(shí)鐘周期內(nèi)所執(zhí)行的指令多少),進(jìn)而提升計(jì)算性能。目前,CPU時(shí)鐘頻率的提升正在放緩。還記得PC領(lǐng)域的CPU千兆赫競(jìng)賽嗎?那場(chǎng)比賽在很多年前就減速了,如今PC CPU的最高主頻已趨于飽和。由于越來越復(fù)雜的微架構(gòu)能夠擠出更多性能,IPC的提升速度也放緩了,這不僅具有挑戰(zhàn)性,而且?guī)砗芨叩墓摹?/p>
• 多核CPU調(diào)整是調(diào)整計(jì)算性能并應(yīng)對(duì)時(shí)鐘頻率趨平問題的下一步。通過復(fù)制CPU核心,半導(dǎo)體廠商利用額外的晶體管,調(diào)整整體的理論最高計(jì)算性能。然而,能否充分利用這些提升的性能取決于同時(shí)運(yùn)行多個(gè)程序或線程的能力高低。只需看看Amdahl定律就能發(fā)現(xiàn),在程序有順序代碼的情況下,性能提升帶來的回報(bào)會(huì)越來越少。在PC領(lǐng)域,CPU基本已穩(wěn)定在四核。另外,正如我之前已經(jīng)提到的,由于CPU不一定是最高效的處理器,在一個(gè)散熱受限的外殼內(nèi)以最高主頻連續(xù)運(yùn)行多核CPU是非常具有挑戰(zhàn)性的(也就是說,會(huì)發(fā)熱!)。
那么,我們?nèi)绾尾拍芾^續(xù)改進(jìn)計(jì)算呢?就像我們過去一直在做的那樣,我們需要改變計(jì)算方式,這樣才能提升計(jì)算性能,帶給消費(fèi)者他們期望的移動(dòng)體驗(yàn)。
而通過智能地利用適當(dāng)?shù)奶幚砥?,異?gòu)計(jì)算能夠提高應(yīng)用性能、電池續(xù)航時(shí)間和熱效率,推動(dòng)全新移動(dòng)體驗(yàn)的發(fā)展和進(jìn)步。
什么是異構(gòu)計(jì)算?
移動(dòng)異構(gòu)計(jì)算是一種通過使用不同類型處理器(例如CPU、GPU和DSP)來高效運(yùn)行應(yīng)用的計(jì)算方法。它包含兩個(gè)重要方面:
1.
這主要是指,對(duì)于特定的工作負(fù)荷來選擇相應(yīng)的處理器。一個(gè)系統(tǒng)級(jí)芯片(SoC)集成多個(gè)處理器是有原因的,美國高通公司一直以來都將合適的任務(wù)分配給合適的處理器。關(guān)于它帶來的好處,我將在后面進(jìn)一步闡述。
2.
正如我在上篇博客中提到的,CPU對(duì)于多種工作負(fù)荷來說并不一定是最高效的處理器。通過讓其它各種處理器變得更易使用且具備更高的可編程性,應(yīng)用開發(fā)者可使用GPU、DSP等其它更高效的可編程處理器,為CPU減負(fù)。
為什么處理器多樣化很重要?
每種處理器都有自身的優(yōu)勢(shì)和缺點(diǎn)。通過高效使用適當(dāng)?shù)母黝愄幚砥?,異?gòu)計(jì)算能夠?qū)崿F(xiàn)應(yīng)用性能、熱效率和電池續(xù)航時(shí)間的最大化。下圖中的模擬工具箱形象地說明了我的觀點(diǎn),有助于大家理解處理器多樣化的重要性。
使用一套包含各種工具(處理器)的工具箱(SoC)來處理各個(gè)項(xiàng)目(工作負(fù)荷)是順理成章的。我們大多人都知道使用錯(cuò)誤的工具做一件事會(huì)是多煩人。你曾試過用扳手釘釘子嗎?我干過,結(jié)果釘子砸彎了不說,拇指也砸青了!同樣,你不應(yīng)把CPU作為處理所有計(jì)算工作負(fù)荷和提供新興移動(dòng)體驗(yàn)的唯一工具。
Pelican Imaging有一個(gè)很好的實(shí)例,證明了使用驍龍?zhí)幚砥髦械亩喾N不同處理器帶來的好處。在計(jì)算級(jí)相機(jī)中使用CPU、GPU、DSP和視頻處理器,比只使用CPU的優(yōu)勢(shì)大很多。