IGP/GPU實時切換 詳解NVIDIA Optimus
泡泡網顯卡頻道2月13日 第二代Switchable Graphics 盡管已變得實用,但仍然不受到用戶注意,尤其是非專業(yè)用家的一般使用者,更是不愿意付出更多的錢購買自已可能無法駕馭的技術,因此NVIDIA 決定研發(fā)更智能、更先進的GPU 省電技術,并命名為NVIDIA Optimus 技術。
有別僅用硬件單純地透過切換顯示輸出線路,選擇在IGP或是GPU工作,而是以驅動程式層面把把需處理的所有3D渲染工作,交由GPU作出運算處理,但最終圖像輸出至屏幕的仍是Intel IGP 處理器。因此IGP的只是被當作一個簡單的顯示控制器,但卻因此達成了無縫,無閃爍的經驗,沒有必要重新啟動,情況就如當年3DFX 加速卡把3D工作完成,并以2D顯卡作顯示輸出一樣。
NVIDIA Optimus 技術原理圖,透過PCI-E 把3D 渲染結果傳至IGP
NVIDIA Optimus 技術不再需要額外的MUX線路, IGP/GPU實時切換的架構成本大幅下降,僅在高負載的3D程序及需要CUDA 運算時, GPU才會從完全斷電的睡眠狀態(tài)自動醒過來,并在完成工作后自動關掉,一般使用下不會感到它的存在,而不太重負載的工作則會交由Intel IGP負責,令Notebook達至省電與高效能兼?zhèn)涞男Ч?nbsp;
Optimus架構,NVIDIA 軟件工程師制作了由數10萬行序程所達成,完全符合Microsoft API及不同顯示標準API的介面,以協議Intel IGP 與NVIDIA GPU 之間的分工,透過PCI-E的雙向設計,把運算及3D 渲染結果傳送至Intel IGP ,并沒有采用了非業(yè)界標準的序程,因此NVIDIA Optimus 技術可以完美地融合于現有的繪圖軟件及CUDA 軟件。
新的NVIDIA Optimus技術中,由于IGP和GPU是同是并存,兩者將負責不同的工作,與昔日采用硬體切換并獨立運作的原理并不相同,因為GPU必需要把完成的3D 渲染資料傳送給IGP作顯示輸出,因此除了在GPU本地的Framebuffer 需要存放顯示的資料外,同時亦會把顯示的資料抄送至系統(tǒng)記憶體給IGP 作畫面輸出,這是一個非常浪費資源的動作,因此NVIDIA 在GPU 中入了全新的資料復制引擎,稱為「Optimus Copy Engine 」 。 ■
沒有Optimus Copy Engine 的話, GPU 如果要把3D渲染的結果傳給IGP 顯示,是需要把資訊復制給系統(tǒng)記憶體,讓IGP讀取并輸出至顯示屏,這是一個Direct Memory Access 機制中的mem2mem寫入指令,但此舉有一個重大的缺憾,就是GPU 需要等Framebuffer 和系統(tǒng)記憶體完成同步化讀寫后,才有空讀取Framebuffer 的資源進行下一幀畫面的渲染,導致GPU 效能大幅下降。
解決此一問題讓Optimus 技術得以實踐, NVIDIA在新一代40nm 的GT200M 家族及未來的GPU架構中,入了Optimus Copy Engine ,它代替了顯示核心內的內存控制器,負責把GPU Framebuffer 的資源直接拷貝至系統(tǒng)內存體,讓GPU 內的內存控制器可以專用負責3D渲染運算,不需要管meme2mem寫入動作。
而且Optimus Copy Engine支持雙向PCI-E傳輸技術,容許3D引擎在讀取系統(tǒng)內存的同時,亦可更新系統(tǒng)內存內的資料,這個非同步的DMA 運作模式令資訊傳送更有效率并令Optimus技術不會令效能出現下降,是個十分聰明的設計。 ■
關注我們
