2012年8月6日 星期一

Mac使用NVIDIA CUDA硬體的注意事項

Some Mac model provides NVIDIA graphic card.
How to using the CUDA function without trouble?
If you using MacBook Pro or old Mac mini, there are some problems.

 *******

因為開發的需要,要使用NVIDIA的CUDA繪圖卡輔助運算功能。
正好我是用Mac,在過程中也遇到一些狀況。
就當是我要做筆記好了,這邊寫出來跟大家分享一下。 
其實Mac的CUDA設定算是很簡單了,如果你有認真看NVIDIA網站。
CUDA Zone裡面提供Windows、Linux還有Mac的版本。
主要使用方式都是安裝驅動程式、CUDA Toolkit還有Sample。
安裝驅動程式的過程,應該是Linux最複雜。
因為你要先關掉gdm等桌面程式,才能安裝CUDA的驅動。
如果有安裝過舊版,還要先移除。反觀Mac,真的簡單多了。
就是mpkg的安裝程式,一路裝到底就好。

CUDA驅動程式

CUDA編譯工具,主要是nvcc那些東西。


















CUDA Sample,最重要的兩個測試程式deviceQuery、bandwidthTest在裡面。
有裝這個範例,之後才能經由編譯產生上面兩個程式。


















驅動程式裝好,可以從系統偏好設定裡面查看狀態。
會多一個CUDA的項目,裡面可以檢查驅動程式的版本。














重點是其他兩個項目,需要作業系統本身配合。
例如安裝gcc編譯器,你需要安裝Xcode。
現在Xcode的安裝已經整合到Mac AppStore裡面了。



















安裝好Xcode之後,還要從Xcode裡面安裝命令列工具。
從Xcode的偏好設定,Downloads的分頁中可以看到Command Line Tools。
按下Install的按鈕開始安裝。


















配合安裝時必要的export參數設定cuda函式庫路徑。
就可以開始編譯CUDA Samples裡面的範例程式碼。

















能編譯是一回事,能不能正確搭配CUDA的硬體執行又是一回事。
尤其筆記型電腦,特別是內建Intel整合型繪圖晶片加上NVIDIA晶片者。
通常會有一個配合節能的自動切換機制。(NVIDIA Optimus)
自動切換主要是根據負載跟電力需求的情況。
例如玩遊戲等需要較高繪圖資源的程式,就用NVIDIA晶片。
要省電、不需要高速繪圖運算,用Intel內建晶片。
CUDA的功能一定要在NVIDIA晶片工作時才能用。
要強迫使用NVIDIA晶片的方法,就是取消自動切換的設定。
從OS X系統偏好設定的節能裡面,關掉自動繪圖卡切換。
從此之後都是使用NVIDIA的繪圖卡。




















要確認目前是不是用NVIDIA的繪圖卡,從「關於這台Mac」也能檢查。
顯示的分頁中,可以看到目前的螢幕與搭配的繪圖卡。
看到是NVIDIA開頭的型號就對了。



















如此一來,執行編譯後的deviceQuery、bandwidthTest。
就可以看到目前的CUDA相容硬體被正確使用。
而不是沒有找到CUDA硬體的錯誤訊息。

















*******

大致上就是這樣,只能說Optimus的功能讓問題複雜。
以上只適用有NVIDIA繪圖晶片的Mac機種。
內建NVIDIA晶片組,變成我購機時的主要考量。
Steve Jobs生前幾次公開對NVIDIA開幹。
最有名的是8600GT MacBook Pro瑕疵事件。
即使對他們不滿,但是繪圖晶片的效能現在NV就是一整個強。
上面幾代用AMD的晶片,讓我積極保住現用的MacBook Pro。
一切只因為CUDA的支援。
但現在中高階的Pro機種,還是走上NVIDIA的路。
(比較糟糕的是內建繪圖記憶體永遠比主流少一半)
以後買新的MBP,應該不用太擔心這個問題。

您也許感興趣的文章:
MacBook Pro 15.4" Core i5 開箱

沒有留言: