星期日, 12月 06, 2009

[頁邊筆記]Larrabee的教訓:GPU≠GPGPU

昨天分別跟幾個朋友聊這個問題,得到的反應都一樣:

其實Intel會取消推出Larrabee獨立顯示卡的計畫(以產業界的習慣講法是:轉成RD研究案),並不讓人意外,因為Intel打從一開始,就把主要目標放在「打敗GPGPU」上,如果Intel只是要做一個很有競爭力的discrete GPU,姑且不論用x86 core好不好,Larrabee根本就不需要X-Ring cache coherency、Ring Bus和一票有的沒有的,反而該走48 core SCC的路線,放棄hardware cache coherence,改採hardware-accelerated message passing結合software-managed的page-level memory coherency的方式,interconnection乖乖沿用行之有年的crossbar。

坦白講,我自己一直蠻懷疑hardware cache coherence在未來many core的應用,畢竟怎麼做,overhead都太大了,但除非未來有革命性的技術突破,像可以巨幅縮短每個core到memory距離的3D Stack Memory,或著可整合至每個核心的超高速非揮發性記憶體,徹底打破既有的memory hierarchy,否則只要多層cache繼續存在,電腦開機從Boot ROM擷取執行POST後、所有資料還是得從最下層的磁碟系統一層一層搬上來,維持既有「單一電腦」的前提之下,hardware cache coherence都有其必要性。

當然,「Single Chip Multi-Computer」也是一種可行的方向,反正HPC市場早就習慣MPI了,但程式還是很不好寫。目前最接近的設計,大概就是Cell了,每個SPE幾乎可視為「獨立的Computer」,可惜記憶體太小了。假如IBM可以增加SPE的Local Memory容量,甚至整合M-RAM之類的高速非揮發性記憶體,應用彈性絕對不是同一個檔次。

最後,我還是覺得,「GPGPU」應該被更貼切的名詞取代才對,因為它誤導了很多人,以為GPU就一定可以做GPGPU、GPGPU產品一定適合做高階繪圖功能。最起碼,能用NVIDIA顯示卡跑Folding@Home也只是進入G80世代後的事情,Intel基於「那票該死的GPGPU提倡者整天靠盃CPU不再重要,我就做出比你更好的GPGPU」心態而生的Larrabee也不會有獨立顯示卡版本,DreamWorks更是壓根兒用不到Larrabee的繪圖功能。這個名詞該怎麼取呢?讓那票寫教科書的大師傷腦筋、我只要乖乖掏錢買磚塊書看就好了。
張貼留言