電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2015年9月23日 星期三

軟硬並用,加速應用

這篇大致上源自於我剛剛對於某科技公司邀約的回覆,他們有企圖心想在嵌入式系統上加速電腦視覺,希望突破成本、體積、熱功耗散、系統設計、軟體開發上的問題,所以想找我去聊聊。

我幾年前有去過該公司講課,覺得該公司是國內少數願意投注在研發的公司,只不過處理機的研發需要大量人才以及長時間的深耕,有其高門檻。

想以類似deep neural network之類的方式做較為複雜的電腦視覺和學習,例如Google Brain在做的事情,需要頗大的資料和運算資源,如果可以在單機上完成,那就會太完美了。

然而考慮實際的狀況,真正的瓶頸,往往在於功耗。無論是embedded systems還是 data centers,大多是如此。改善運算效率的方式很多,但沒有超級特效藥。

舉個不倫不類的比喻,如果說目前machine learning、big data、IoT是顯學,那系統設計則可說是密宗。這兩者搭配起來,會很有威力,但是顯密要合作並不容易,雙修則更難。

例如,用多核心來跑平行化過的程式,效能可能比單核心多1~2個數量級;如果用上GPU、好好優化的話,可能再加一個數量級上去;如果願意設計專用 的硬體加速器,有可能再加上1~2個數量級。

但這些效能提昇的可能性,與應用高度相關。所以對於某些應用,例如Bitcoin挖 礦,比的就是效率,為了提高投資報酬率,到後來大家都用ASIC,或許有比普通桌 機高1000x以上的效率。可參考[1][2]。

Bitcoin挖礦這類的應用,可說是特例:(1) 程式可以大幅平行化,幾乎有用不 完的平行度 -- 每筆資料的運算幾乎完全獨立,少有相依性,所以平行化的難度 低、效益高。(2) 每筆資料所需的運算,基本上是計算量高、複雜度低的hash function,所以用ASIC實作的難度低。(3) 這種能夠直接賺到錢的東西,很多人 蜂擁投入,所以研發費用可以快速分攤回收。(4) 因為挖礦的本質屬競爭型,速 度慢就挖不到,所以在競爭激烈的情況下,設備效率的進展很快。

但並非每個應用都具備上述四大特性,所以說Bitcoin挖礦是特例。

對於某些應用,即便將核心計算部份做成ASIC,單機的效率還是不夠用,這時只好用多台機器並用,組成computing cluster。這個時候必須額外負擔網路的成本,這時的技術層次有更高了。傳統的data center並非針對特定應用設計,所以要自 己建這個cluster才行,例如SpiNNaker計畫[3]嘗試建構的人腦模擬器,但他們還是沒有用上ASIC。

然而對於某些應用,即便將上述所有技術都用上,可能還是不夠力,這時大概只能寄望於未來的新科技。

很多年以來,無論是真的不夠力,或是不願投資,人們習慣把希望寄託在未來的計 算晶片,因為Moore's Law告訴我們10年後的電腦應該會比現在快100倍,所以只要 等到時間到了,自然水到渠成。

可是在今天這個大家談論Moore's Law是否會終結的年代,把希望放在未來,不見 得是好的賭注。當然Moore's Law有可能再延續幾年,有人在發展新的運算技術 (例如量子計算),但越來越多的人已經很認命地在研究如何使用以前只有搞超級電腦的人才在乎的異質計算和平行處理。

我一直說這有硬體基礎的台灣,是有機會做軟硬體整合設計,主動在效能和效率上有所突破。但這些突破,必須仔細分析應用面,大概沒辦法用一些原則概說。所以我鼓勵跨領域團隊研究,比較有突破的機會。

[1] https://www.bitcoinmining.com/bitcoin-mining-hardware/
[2] https://en.bitcoin.it/wiki/Mining_hardware_comparison
[3] http://www.artificialbrains.com/spinnaker

沒有留言:

張貼留言