NVIDIA Quadro Sync 跨電腦同步簡單測試

| | 0 Comments| 16:55
Categories:

首先,大部分的人一般碰到的 NVIDIA 顯示卡,應該都是 GeForce 系列的遊戲卡(官網);而目前 NVIDIA 除了針對一般使用者的 GeForce 系列外,實際上還有專為大量平行計算設計的 Tesla(官網)、以及專業繪圖的 Quadro 系列(官網)。當然目前還有 GRID 或 Tegra 等產品線,不過這邊就先跳過不提了。-

而由於 Heresy 這邊工作上的需求,所以除了 GeForce 外,手邊也常常會用到 Quadro 卡;像是之前就曾經開箱過一個相當少見的產品、Quadro Plex 2200 D2

而這次測試的,也是一個專業繪圖卡的特殊配件:Quadro Sync(官網)。


簡介

Quadro Sync 是 NVIDIA 針對 Kepler 系列的 Quadro 繪圖卡推出的子卡(上右圖),主要是針對多張顯示卡、甚至多台電腦之間,做畫面上的同步。

而實際上,這系列產品之前的名稱是「Quadro G-Sync」(網站),像是 Quadro Plex 2200 D2 裡面,就也有配置 Quadro G-Syn II 這張同步卡;而到了 Kepler 系列的 Quadro 推出時,NVIDIA 就把這系列產品改名為「Quadro Sync」了。

Quadro Sync 實際上的功能有那些呢?首先,在單一系統上,Quadro Sync 提供的功能是所謂的「Multi-GPU Mosaic」(官網、以前叫做「SLI Mosaic」),透過這個功能,Quadro Sync 將最多 16 個螢幕(最多四張 Quadro 卡、每張卡最多四個螢幕)結合作同步的輸出!

而如果是跨電腦的話,Quadro Sync 則是提供了「Frame Lock」的技術,可以讓不同電腦的輸出畫面,在更新時做同步、避免不同螢幕間更新的不同步。而由於 Quadro Sync 是採用 CAT-5 的網路線來做串聯的,所以可以串接多台電腦、作為 render cluster 之用;不過到底能串到什麼程度,NVIDIA 並沒有詳細地列在官方規格、文件中,基本上應該是看對於誤差能接受到什麼程度了。

而接下來 Heresy 的重點,基本上會放在「Frame Lock」上。


硬體

Quadro Sync 這張卡的外觀,就如同本文右上圖;而右圖則是他的實物照片。

他雖然是一張介面卡的形式、下方看來也有做接 PCI-Express x1 的接腳,不過實際上,上面是沒有接接點、僅是用來固定用的!(也可以插在 PCI 插槽)
所以如果有必要的話,這張卡也可以固定在別的地方,不一定要佔擴充卡的位置。

因為實際上,Quadro Sync 不需要和電腦直接連線、而是要透過上方四個金手指接點、和 Quadro 卡座連接;而右圖的照片中第一個接腳上的排線,就用來連接 Quadro 卡的專用排線。

而下圖就是官方文件中的示意圖:

在機殼內部,它在卡的上方提供了四個與 Quadro 卡連接的接頭;一個接頭基本上就是連接到一張 Quadro 卡,所以最多可以連接四張。要注意的是,在 Quadro 卡上的 Quadro Sync 接頭基本上和 SLI 接頭一樣,要注意不要接錯了。

側邊則有兩個電源接頭,分別是 SATA 電源或是 6pin 的 PCI-Express 電源,兩者只要擇一使用就可以。

在外側的部分,有兩個 RJ45 的網路孔,就是用來做 Frame-Lock 訊號傳遞之用的;在下方則有兩組燈號,用來顯示目前的狀態。最下方的 BNC 接頭則是可以由外部接受同步訊號用的。

而下方的照片,就是和 Quadro 卡連接的示意照片~

 

理論上,這樣都接好之後,雖然在 Windows 的裝置管理員裡面是沒有新的硬體,但是到 NVIDIA 驅動程式的控制面板裡面的「系統資訊」看,應該就可以看到有多抓到一張 Quadro Sync 了~(下左圖)

 

而 Quadro 卡的驅動程式裡面,則還有一個「工作站」的分類,在裡面的「系統拓樸」中(上右圖),應該也會看到他有偵測到 Quadro Sync,而本來的 Quadro 卡會變成在 Quadro Sync 之下。


Frame Lock 模式的配置

如果是要使用單系統的同步、Multi-GPU Mosaic 的話,基本上只要把電腦裡的 Quadro 都接上同一張 Quadro Sync、然後再去設定好需要的 Mosaic 模式、之後顯示的時候多個螢幕就會同步了。

而 Frame Lock 的話,由於是跨電腦的配置,所以相較之下比較複雜、麻煩。最主要的差別,在於在多電腦的顯示系統裡面,每台電腦繪製的內容是各自獨立、各自控制的!所以除了硬體上需要透過 Quadrop Sync 這類的硬體來確保畫面更新的時間是一致的之外,軟體上也需要特別的設計,才有辦法確保每台電腦繪製的畫面、是同一個時間點的畫面

像是 NVIDIA 的 NVAPI 在目前的版本裡面,就有提供 Quadro G-Sync 的 API(文件、應該是可以用在 Quadro Sync 上),來做為同步控制的操作。不過這次主要是簡單測一下 Quadro Sync 的硬體功能,所以這邊就點到為止了。

而在多電腦的 Quadro Sync 環境的設定上,首先在個別的電腦中,一樣是把 Quadro 卡連接到 Quadro Sync 上;讓 Quadro Sync 可以去控制 Quadro 卡。之後,則是要在多個系統中、選一台當作「Timing Server」(計時伺服器),讓他發出同步的訊號給其他台電腦。

Server

Server 的設定方法,主要就是在 NVIDIA 控制面板裡,在「工作站」的「同步處理顯示器」裡面,選取「在此系統上」,這樣就可以把這台電腦當作更新訊號的 server 了~而之後,這台 server 上 Quadro Sync 的兩個網路孔都會變成發送端、開始發送 frame lock 的訊號。

下面就是驅動程式的畫面:

而設定完成後,之後到「系統拓譜」裡面,就可以看到

另外,由於 Quadro Sync 也可以接受外部的同步訊號,所以如果在有連接同步訊號的情況下,也可以使用外部的訊號來做同步。

Client

在 Server 建立好了之後,其他的電腦(client 端)呢,則是要透過 CAT-5 的網路線,讓 Quadro Sync 卡和 sever 做連接;和 Server 端視兩個孔都是發送訊號不同,client 端是一個網路孔接收來自 server 端的訊號、另一個孔再把訊號送出去。
(發送訊號的網路孔燈號會是橘色的、而接收訊號的則會是綠色的)

如果是五台電腦的話,連接的示意圖就會如同右圖。透過這樣的串接機制,理論上同步訊號會一直傳遞下去,至於到底能串多少台,官方也沒有一個明確的數字。

實際上連接的時候,兩個網路孔要接哪個都沒有關係,驅動程式會自動把有收到訊號的當作輸入端、並把另一個網路孔當作輸出端,所以不用擔心會接反。

為了不同電腦間的時間誤差最小,NVIDIA 也建議網路線要越短越好,而同時 Server 最好是位於中央的電腦、讓兩邊的同步訊號串連的長度一樣。另外,也要注意的是,Quadro Sync 雖然也是使用 CAT-5 的網路線,但是它是走自己的訊號,所以不能過一般網路的 Hub 或 Switch 之類的網路設備。

而在驅動程式裡面,Client 端會去接收由 server 發出的訊號,如果有收到訊號的話,就會在「同步處理顯示器」裡面顯示接收到的「同步脈衝頻率」。像是左圖就是有收到由 server 端發出的 119.940Hz 的訊號(實際上設定是 120Hz 就是了)。

在有收到同步訊號的情況下,就可以勾選下方有偵測到的顯示器,讓這些顯示器根據 server 端送來的訊號來做同步了~

而剛勾選起來後,為了同步,電腦的螢幕可能會變黑個幾次,之後應該就會正常了。不過文件內也有提到,如果電腦多的話,要完全同步,可能會需要等幾分種的時間。

如果要確認設定是否有問題的話,則一樣可以到 NVIDIA 控制面板的系統拓樸裡面做確認。像下方左圖,就是設定沒有問題的狀況;而有的時候,則是會有像下方右圖一樣、有錯誤警告的狀況(沒有把要同步的螢幕溝起來好像也會有這個警告)。

  

其他

其他在官方文件中,也還有提到一些建議的設定。其中包括了:

  • 在「管理 3D 設定」內,將「廣域預先調整值」設定為「Workstation App-Dynamic Streaming」
  • 開啟「垂直同步」(Vertical Sync)
  • 立體的開啟與模式要一致

如果沒有特殊的狀況的話,應該是讓不同電腦的設定都相同、問題會比較少。


測試

如同前面提到的,其實在 Frame-lock 的模式下,如果真正要測試 Quadro Sync 的同步,是需要特別設計過的程式的;而要驗證不同的畫面是否有精確地同時更新,根據個人之前的經驗、在沒有電視牆之類的顯示系統下,其實也不容易辨別。

Heresy 這次算是比較取巧,只是用 NVIDIA 3D VISION 立體顯示系統(使用 ASUS VG278H),來做多電腦立體顯示地同步測試。而用來測試的電腦、礙於硬體資源,也只有用兩台來做測試(一台 Server、一台 client)。

在沒有設定 Quadro Sync 的情況下,如果兩台電腦各自建立 3D Vision 的環境、並把螢幕和紅外線同步訊號發射器放在一起的話,兩個發射器的訊號會因為不同步而彼此干擾、導致眼鏡無法成功地同步、進而無法成功地呈現立體效果。

而在設定了 Quadro Sync 後,兩邊的畫面應該是有成功地同步,立體同步訊號也不會干擾、可以正確使用;所以理論上,應該是測試成功了~而這也代表了,基本上多電腦要組合成 NVIDIA 3D Vision 的立體顯示陣列應該是有可能可以做到的!

不過說實話,目前很多產品都以支援 HDMI 3D 訊號為主了,支援 NVIDIA 3D Vision 的產品似乎算是越來越少了…或許之後有機會,應該要試試看能不能支援 HDMI 3D 的同步?理論上,個人覺得如果立體顯示是採取被動式的系統的話問題應該不大,但是如果是主動式的話,由於同步訊號是由電視送出去的,NVIDIA 的驅動程式沒有辦法管到,個人覺得可行性應該較低就是了…

最後…以後如果有機會、又有需要的話,再來真的試試看要怎麼寫 render cluster 的程式吧…


附註:

  • 目前 NVIDIA 也有另一個針對遊戲級的繪圖卡、推出強化螢幕同步效果的「G-Sync」技術(官網);不過雖然和前一代的名字相近,但是基本上兩者是沒有關係的。

Leave a Reply

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