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