前兩天同事做個項目,要用到NVIDIA的Quadro 4600顯卡和附帶的G-sync II同步卡,實現多台電腦的同步立體顯示。軟體、硬體都湊齊了,多個電腦的立體顯示效果正常,多台電腦的輸出也能夠同步,可是一到立體顯示同步的時候,左右場總是沒辦法保證相位相同。大家調試了很長時間,想進了辦法,就是解決不了問題,老闆就碰運氣似的叫我去看看。
其實我比同事們強不到哪兒去,我能想得到的他們也都早就試過了,可是安排下來的任務也不好推脫,只好硬著頭皮去了。幸運的是我天生運氣好,不斷遇到各種幸運的事情,最後終於能夠化險為夷,哈哈。
第一次去現場的時間不長,待了大概一個多小時,但至少弄清了目前的問題和現象:既然立體顯示正常,非立體情況下同步也正常,那麼問題肯定不是出在我們的應用軟體上;
立體顯示雖然無法同步,但是一旦系統啟動,其相位非常穩定,左右場的順序不會隨著已耗用時間變化發生改變,說明問題不在swap lock上,而在於多塊顯卡間的左、右場無法正確識別。從顯卡設計者的角度出發,要設計一塊提供frame lock的顯卡,必然會實現左右場的識別與同步,畢竟多顯卡的立體同步是frame lock最主要的應用。所以幾乎可以確定的是,問題與應用軟體無關,而是出在其它地方,比如線纜、板卡、驅動或者作業系統不相容。
這時我遇到了第一個幸運的條件,在去現場之前,為了以防萬一,我請單位負責買顯卡的同事和經銷商聯絡,反映一下問題,看看廠商有沒有什麼協助,畢竟上萬塊錢一塊兒的顯卡我們一下子買了好幾塊,這點服務還是應該有的吧。結果在我的第一次,同事的第x次去現場無功而返的當天,經銷商卻返回了NVIDIA的建議:換個低版本的驅動。
同事們恍然大悟一般,因為他們一直在嘗試各種新版本的驅動,都是沒什麼效果,有的驅動還導致原本正常的應用軟體無法工作。沒二話,同事們趕緊下載驅動,趕赴現場,通宵達旦,結果還是無功而返。
這時我遇到了第二個幸運的條件,這第x+1次現場我沒去。所以我可以很輕鬆的渡個周末,休養生息,趕在第x+1次去現場前保持著充沛的體力和清醒的頭腦。
我第2次出現在現場,看看當時的情況,也沒什麼更好的辦法,只能拿出自己的看家本事:重裝系統。沒別的,重新安裝一遍系統,重新連接線纜,重新安裝驅動,重新進行設定,如果問題依舊,只能請做卡的人出來解決了。
這個時候,我的第三個幸運條件出現了:一個對現場情況熟悉的不能再熟悉的同事。第一台機器的作業系統裝好後,同事問我裝哪個驅動,NVIDIA的驅動一般都有國際版和英文版,他們一直裝的是國際版(大概是為使用者考慮吧),我的反應自然是裝英文版(到現在還有崇洋媚外的習慣,哈哈)。驅動裝完,重新啟動,開啟NVIDIA的控制台,經驗豐富的同事立刻興奮起來,估計當時他的手也發抖了,哈哈,他發現同樣版本號碼的不同語言版本驅動,控制台裡的內容居然不一樣!設定一下試試……,竟然和伺服器同步上了!趕緊把另外兩台機器都換掉驅動試試……,設定成功,問題解決,皆大歡喜,收拾東西回家,哈哈。
其實這種到使用者現場去解決問題的情況是幾年前需要經常面對的事情,只是近來工作性質的變化少了一些,更多的是同事們代勞了。這次意外情況的出現,主要的原因來自於使用的裝置發生了變化,而在應用前沒有進行過詳細的測試,所幸的是,團隊中的所有人都在盡心儘力的工作,協同起來各自發揮所長,終於在驗收前解決了問題。但願下次在使用新裝置前,能夠更謹慎些,測試更多些。