Home > 科技

科技 Archive

Larrabee

傳聞聽了很多,但直到最近看了一篇 SIGGRAPH 文章 才真正開始去了解 Intel 的 Larrabee。我的理解還是很淺,有錯請更正。

如果要用一句說話形容我對Larrabee的理解,

把多個順序執行指令(in-order) 的 x86 內核塞進一個芯片,每個內核可執行大部份 x86 指令、16維向量指令及小量新指令,並且有獨立的L2 cache和小量為圖形功能而設的邏輯單元。

對於圖形及高度平行的應用,現時 GPU 比 CPU 更有效率。這是因為這些應用是可以分柝成為較小的獨立工作,分配在 GPU 中的多個硬件單元執行。而在圖形處理上,GPU 加入許多不可編程的圖形功能邏輯硬件,例如紋理取樣 (Texture Sampling)、光柵化 (Rasterization)、內插 (intepolation) 等等。使用數個通用的 CPU 內核去運行,完全不敵數十個為圖形特製的 GPU 內核及圖形功能邏輯硬件。

Larrabee 怎樣挑戰 CPU 和 GPU

Intel 不會輕易言敗,於是發展了 Larrabee。

Larrabee 有多個設計概念:

  1. x86 指令的核心比 GPU 的 shader 指令更普及。只要可編譯成為 x86 指令的程式都可在 Larrabee 上執行,例如目前大量的 C/C++ 程序。
  2. GPU 使用完全獨立的內存,CPU 和 GPU 間的數據流通是不透明的,而且數據的格式很特殊及有限 (例如 vertex/index buffer, texture 等等)。Larrabee 則能直接存取主內存,因此可以使用指針、不同的數據結構、甚至物件導向 (如 virtual function)。
  3. 儘管 DirectX 10 和 11 不斷加入新的 shader 類型,GPU 可編程的地方仍然有限。Larrabee 則希望只有少量的圖形功能邏輯硬件,其餘使用程式,加強可編程性及自由度。
  4. Intel 的 CPU 自 Pentium 4 以來,加入大量非順序 (Out-of-Order, OOO) 執行指令的邏輯,使用電量(熱量!)及晶片面積不斷增加。但數據顯示,一個雙內核 OOO CPU 的晶片面積,其實可以放入 10 個 in-order、每個有 16 維向量處理器的內核。可是,後者的 FLOPS 峰值是前者的 40x 。

Larrabee 和遊戲開發的推測

Larrabee 會對於遊戲開發者有甚麼影響呢?

推測一:無直接影響,Larrabee 只是替代 ATI、NVidia 和 Intel 的 GPU 而已。該文章花了大量的篇幅描述一個在 Larrabee 上執行的渲染軟件 (software renderer)。它是以光柵化 (rasterization) 和目前流行的實時渲染的概念,透過 Larrabee 的各種硬件特性去開發的。最有趣的地方,是他們擷取了 Half-Life2、F.E.A.R.和 Gears of War 的 D3D9 指令及紋理等數據,用 Larrabee 上的軟件渲染。實驗結果是,執行 1600×1200 解像度、60FPS,大概需要 10 至 20 個 1Ghz 的 Larrabee 內核,而且還有非常高的 Scalability。但除了這個結果外,我們可猜測 Intel 有能力及可行性去寫 Larrabee 的 Direct3D 驅動軟件。而且由於 Larrabee 的自由度,Larrabee 可同時支持不同版本甚至不同的圖像API。

推測二: 遊戲用中間件 (middleware) 支持 Larrabee。一些遊戲中間件可以使用 Larrabee 增加效能,例如圖像引擎、物理引擎、人工智能引擎等等。

推測三: 開發者自行編寫為 Larrabee 而設的代碼。從架構上來說,Larrabee 和 Cell 的 SPU 是有相似的地方。開發者可以為遊戲性或特效編寫專用代碼,以製作有獨特遊戲性和特效的遊戲。

推測四: 新的實時圖像渲染時代開始。放棄用了十數年的光柵化式硬體,採用光線追蹤 (Ray tracing) 及其他全局光照 (Global Illumination)。雖然 Larrabee 是第一個試驗品,但若果它成功的話,會完全改寫目前的實時圖像渲染技術,也會帶來很多新的研究。其對實時圖形的影響力可能可以和當年 OpenGL、Direct3D、可編程 GPU 相比。

實時 Radiosity 系統 Enlighten

今天才第一次看到 Geomerics 的 Enlighten 新示範短片(在 GDC2008 發佈),感覺很震撼。雖然在 Radiosity 技術方面和他們一年前的 Tech Demo 的分別可能不大,但結合了 HDR、SSAO 等技術、展示了一些使用者介面即時調效多個光源的設定、人物受到間接光源的效果等等,做出來的整體效果完全不一樣。而且,它說明這技術已實際在 PS3 和 Xbox360 上應用 (雖然沒有影片為證),即是它是可以應用在現今的硬件之上,而不是一些只可期待而不能用的技術。

網站裡介紹了 Enlighten 的工作模式:

  1. 場境需要作一些 pre-processing,但只需要 gemoetry 資料,而不需要 texture、material、lighting 等資料。這和 Precomputed Radiance Transfer (PRT) 的需求一樣。
  2. 使用者的引擎要把場境的 Local Illumination 渲染至 texture space ,交由 Enlighten 計算 Radiosity。
  3. 結合 Radiosity 和 Local Illumination。

使用這種工作模式對美工特別有幫助,因為美工可以即時微調光照效果,而不需使用 Global Illumination 的 Renderer 去花幾十分鐘甚至幾小時去渲染一些只是靜態的 Light Map。我相信除了遊戲之外,電腦動畫及電影特效都應該可以應用這種技術。

要追技術感覺是越來越難。不過我要提醒自己,不要只追求個別的技術,現時需要的應該是做整個遊戲的經驗,gameplay 和相關的工具是我最弱的。

其他類似的技術:

Game Developer Conference (GDC) 2008 Online Slides

The followings are some slides from GDC 2008 collected online. I will update the list if new slides are found.

Valve

  • Integrating Narrative and Design: A Portal Post-Mortem. Slides
  • Stylization With a Purpose: The Illustrative World of Team Fortress 2. Slides
  • How To Go From PC to Cross Platform Development Without Killing Your Studio. Slides
  • Post Processing in The Orange Box. Slides

NVidia

  • NVIDIA Developer Toolkit Overview. Slides
  • Direct3D Day: Optimizing DirectX 10 Performance. Slides
  • Direct3D Day: Soft Shadow Mapping. Slides
  • Direct3D Day: Instanced Tesselation in DirectX 10. Slides
  • Direct3D Day: Harnessing the Power of Multiple GPUs. Slides
  • Particle-Based Fluid Simulation for Games. Slides
  • 3D Stereoscopic Game Development. Slides
  • GPU Optimization with NVIDIA Performance Tools. Slides
  • NVIDIA FX Composer 2.5 + NVIDIA Shader Debugger. Slides
  • Beyond printf(): Debugging Graphics Though Tools. Slides
  • GPU Physics for Game Programmers. Slides

ATI

  • Future-Proof Games with Real-Time Tessellation. Slides
  • Harnessing the Power of Multiple GPUs. Slides
  • Harnessing the Power of Multiple GPUs. Slides
  • DirectX10.1: DirectX 10 and then some…. Slides
  • Tessellation in a Low Poly World. Slides
  • Ultimate Graphics Performance for DirectX 10 Hardware. Slides
  • The Ultimate Developers Toolkit. Slides

Others

Unreal 3 at GDC08

Tim Sweeney 在 GDC 介紹了 Unreal 3 的新功能。

以下我將會嘗試分析這片段裡的技術:

Continue reading

Home > 科技

Search
Feeds
Meta

Return to page top