ATI + nVIDIA GPU @ Windows 7 x64

| | 2 Comments| 09:15
Categories:

rightmenu好一段時間前,曾經有試著在同一台電腦上,同時安裝 ATI 和 nVIDIA 兩家不同公司晶片的顯示卡,不過在兩台機器上測試的結果,都是以失敗做收。當時在兩個平台上做測試的情況大概如下:

狀況一:

主機板:Tyan Tempest i5000XT(S2696)
同時裝上 nVidia Quador FX 5600 和 ATI FireGL V8650

下場是完全開不了機,連 BIOS 畫面都沒出來

狀況二:

主機板:ASUS Striker II Formula
同時安裝 nVidia GeForce GTX280 和 ATI FireGL V8650

只要裝了 nVidia 的 GeForce GTX280 後,不管兩張卡的順序如何,GeForce GTX 280 就會變成主要顯示卡;進入 Windows Vista 後,GTX 280 可以正常運作,ATI FireGL 雖然可以被正確識別,但是安裝驅動程式後卻無法正常運作。
或許是因為主機板晶片組是 nVidia 的關係吧?

而這次,剛好要把某台使用 ATI Radeon HD 4870 x2 的電腦從 Windows Vista 升級為 Windows 7,而又有一些軟體可以用 nVIDIA CUDA 來做加速計算(TMPGEnc、CoreAVC);所以想想,用 ATI 的卡的話,這功能沒用好像滿浪費的?所以又來試試看雙牌顯卡了∼而考慮了一會後,就決定除了原來的 4870×2 外,再額外安裝一張 GeForce 8800GT 上去了!

這次的安裝的電腦主機板是 ASUS 的 P6T6 Deluxe 主機板,是採用 Intel X58 ICH10R 的晶片組;而兩張顯示卡,就是 ATI Radeon HD 4870 x2 加上nVIDIA GeForce 8800GT 了∼(主顯示卡是 ATI Radeon HD 4870 x2,安裝在第一組 PCI-Express x16 上)

devicemanager和之前兩次測試都失敗不同,這次在 Intel 的晶片組加上 Windows 7 x64 的平台下,GeForce 8800GT 很順利地安裝上去、並成功的裝好驅動程式了!說實話,由於之前兩次失敗的經驗,這次還真是順利到 Heresy 自己都覺得被嚇到了。

而由於 ATI Radeon HD 4870 x2 本身是由兩顆 GPU 所組成的,所已在裝置管理員(左上圖)裡,也變成抓到三顆 GPU 了∼不過一開始,在桌面的右鍵選單裡,還是只有顯示 ATI 的 atalyst Control Center 外,這似乎是因為一開始 GeForce 卡上沒有連接螢幕的關係;在隨便找個螢幕接上去後,nVIDIA 的驅動程式控制面版也終於正常出現了(右上圖)!而兩者的驅動程式設訂界面,也都可以正常、同時叫出來了∼

Setting

不過由於 nVIDIA 的軟體上刻意限制,所以可以發現,在 nVIDIA 的控制面板裡,並沒有物理加速 PhysX 的選項…Heresy 自己測了一下,似乎除非把連接到 ATI 顯示卡上的桌面給關閉,不然 PhysX 的選項應該是都不會出現的。也就是如果希望用 ATI 的顯示卡來跑 3D、用nVIDIA 的卡來跑物理模擬,是需要「另外處理的」。(在 Heresy 來看,nVIDIA 最近真的常常在自家的產品上綁手綁腳的…有不少東西都在軟體層次上做了相當的限制,實在有夠討厭的…)

而這樣安裝的系統算是正常嗎?Heresy 個人是覺得應該有些小問題存在。像是用 ATI 的 CCC 可以正常看到 ATI 自家的硬體是沒問題(下左圖),但是用 nVIDIA Driver 的話,則是會發現看不到已經安裝的顯示卡(下右圖)…而且在 ATI 的顯視卡有輸出的情況之下,nVIDIA 的驅動程式設定的行為模式似乎都會變得怪怪的;這種 ATI 沒問題、nVIDIA 有問題的情況,不確定到底是驅動程式的問題?還是和主要顯示裝置有關(顯卡插槽的優先序)?

ATIInfomation nVIdiaInformation

而如果用 Windows 內建的 dxdiag 來看的話,基本上應該算是正確地抓到兩張顯示卡。(Heresy 還是第一次知道他會分 tab∼ XD)

DX1 DX2

GPU-Z而如果用 GPU-Z、OpenGL extension viewer、CPU Caps Viewer 這類的軟體來試著看顯示卡的資料的話,感覺上大多也都沒辦法正常地抓到兩張卡的資料

像右圖就是 GPU-Z 的資料。基本上在 GPU Computing 的支援的資訊方面,除了 DirectX 的 Direct Compute 外,可以說是完全沒抓到了∼以 GeForce 來說,PhysX 沒有就算了,連 OpenCL 和 CUDA 也都沒有顯示支援;而 ATI 雖然已經裝了 Stream SDK,但是卻還是顯示不支援 OpenCL。

而在 GPU-Z 的 GPU 狀態偵測方面,Heresy 也是覺得怪怪的、應該不能算是正常偵測;以 GeForce 來說,感覺上似乎只有正確偵測到 GPU Memory 的使用量,GPU load、memory controller load 則是自始至終都維持 0%…

而用 OpenGL extension viewer 來看顯示晶片的 OpenGL 支援程度的話,基本上就只抓到主要的 ATI 顯卡,沒辦法看到次要的 nVIDIA 顯示卡的資料;這點或許是此軟體沒有考慮過多顯示卡的系統吧?

GPUCapsViewerCPU Caps Viewer 的話,基本上在 graphics 的部分,也是僅只能抓到主要的 ATI 顯示卡,不過在 CUDA 的部分,到是可以正確地抓到 GeForce 8800GT;也因此,在畫面上也會變得頗為有趣的情況,也就是在主畫面(左圖)會看到明明是用 ATI 的顯示卡,但是卻有辦法支援 CUDA… ^^"

而 OpenCL 的部份由於 nVIDIA 的 OpenCL ICD 優先序似乎是比 ATI Stream SDK 來的高,所是是會抓到 nVIDIA 的顯示卡。如果手動將 ATI 的 OpenCL ICD 複製到 CPU Caps Viewer 的執行目錄的話,則會讓 OpenCL 的項目,變成是以 ATI 的為主;這點倒是和 Heresy 之前在測試 OpenCL 時的狀況是相同的,也就是在目前來說,就算一台電腦上同時插了這兩家的顯示卡,要能動態調整要使用哪家卡來做 OpenCL 計算,基本上還件麻煩事…

上面姑且都算是系統建置後的測試,而實際要使用的,目前是 CoreAVC 和 TMPGEnc 這兩套軟體。在測試後上是發現,要能正常使用 CUDA 來做計算的話,GeForce 卡上一定要有輸出的畫面(奇怪,在 Vista 上的話,CUDA 2.1 不就已經可以在無輸出的顯卡上運作了?不知道這是 Windows 7 的問題、還是這也是混搭的問題?),否則是沒辦法使用 CUDA 來做計算的!

雙顯示晶片混搭的測試,初步就先到這了∼整體來說,真要同時用兩家顯示晶片的顯示卡,在各方面來說,似乎都還是有些小問題。而如果只是想拿 GeForce 來做 CUDA 計算的話,看來應該是可以的,不過你還是得給他一個螢幕輸出,這點到是頗為麻煩…而想拿來專門跑遊戲裡的 PhysX?應該還是只能破解了∼

2 thoughts on “ATI + nVIDIA GPU @ Windows 7 x64”

  1. 另外,在 Windows 7 的裝置管理員裡,去把顯示卡停用似乎沒有辦法省電,而且反而會更耗電。在 Radeon HD 4870 x2 和 GeForce 8800GT 都啟用的狀態下,idle 耗電量大約是 250-260W 左右;但是如果到裝置管裡員裡把 Radeon HD 4870 x2 停用的話,耗電量反而會衝到 380W 左右!感覺應該是由於顯示卡的狀態主要是由驅動程式控制,而在裝置管理員裡把顯示卡停用的話,也相對的取消了顯示卡的電源管理功能,所以反而讓他由閒置狀態變為全速運轉的狀態了…

  2. 謝謝超實用的分享,手上剛好要裝三張顯卡,其中一張正考慮要不要換成N卡,剛好看到此篇專題,破除心中的疑慮!

    感恩!

發佈回覆給「heresy」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *