自 2012 年夏天啟用的黑蘋果二號機,至今也已經六年多了。回顧這六年來 Intel 也擠了四年的牙膏,黑蘋果的 i7-3770 至今也還算夠用。但顯卡的部分,為了原生支援度的原因,手邊留著二手購入的 GTX-780 3GB 和 R9-280X 3GB 視情況交互使用。不過近年熱門的 3D 遊戲大作(EX: Forza Horizon 地平線賽車),顯卡最低要求動不動就要 GTX-970 與 VRAM >= 4GB 以上等級,於是 R9-280X 或 GTX-780 已漸漸不堪使用。你知、我知、鄉民也知,近年來顯卡主流標準已經由 NVIDIA 說了算,陸續發表 Maxwell,Pascall 架構的顯卡產品儼然成為市場主流,但 Mac 與 macOS 偏偏就是原生不支援。後來,總算,終於,千呼萬喚,AMD 陸續發表新一代的 Polaris / Vega GPU 產品,拉近與 NVIDIA 顯卡的性能差距,而 Polaris/ Vega 也陸續被 macOS 支援。

然而在這個時候,市場竟吹起了虛擬幣的泡沫,Polaris / Vega 架構有利於挖礦的特性,幾乎淪為礦工禁臠,即便顯卡價格飆漲,礦工照樣掃貨毫不手軟,導致遊戲玩家一卡難求,更別說是一切講求原生支援的黑蘋果用戶,升級顯卡變得非常不划算。不過歷史也告訴我們,礦潮之後必有礦難,吹了兩年的虛擬幣泡沫破了,如今終於有機會補足黑蘋果在顯卡上的弱勢,所以上蝦皮找了一張二手的 Vega 56 礦卡來玩,開一篇文章來簡單紀錄一下這張 Vega 56 各種資訊的抹抹角角,大多是個人心得。

一、Vega 56 刷 Vega 64 的 BIOS

Vega 56 與 64 同屬於 Vega 10 系列 GPU,56 是把體質比較不好的 64 GPU 閹割降頻之後的產品。Google 一定會告訴你 Vega 56 有機會刷成 Vega 64,並恢復被閹割的八成功力,摸到 GTX-1080 的尾巴。不過有但書,只有搭配三星 HMB2 記憶體的 56 能刷。如果搭配的是 Hynix 的 HMB2 記憶體,那麼這張 56 就幾乎肯定刷不上 64。 56 的記憶體工作頻率預設 800 MHz, 64 預設為 945 MHz。前期的 Hynix 記憶體是超級大雷包,對岸有人超到 890 MHz 就不行了,能超到 920 MHz 更是極少數,只有到後期(2018 年夏季)才有零星可上 980MHz 的 Hynix 記憶體。至於三星 HMB2 記憶體,據說隨隨便便都能上 1000 MHz 以上。

我買的是微星 Radeon RX Vega 56 Air boost 8G OC,用的就是 Hynix 晶片,刷了 64 就直接死機,電腦一開電就直接黑畫面,連開機 BIOS POST 畫面都沒有。後來刷回 56 進 Windows 用 Watterman 測體能,測到 850 MHz 畫面就開始閃爍,Hynix 的 HMB2 果然是個雷包。

若不能刷 64,那可以刷別廠的 56 嗎?Google 的答案是可以,甚至有人會告訴你只要是 56 每款都能刷,但我的實測結果是不一定,有的能刷,有的刷了就直接死機,讓電腦開機變國防布。

二、刷死有救嗎?

Vega 只有 Windows 版的刷機工具,萬一不幸刷死了,先把顯卡拔下來,進主機板 BIOS 把 CPU 內顯設定為強迫主輸出,再把顯卡裝上去,用內顯開機進 Windows 刷機。不過我遇到另一種更極端的死機,刷死的 56 只要一插上去,主機板的 BIOS POST 就過不去,即使設定內顯輸出也一樣,進不了 Windows。

後來找到更簡單的解決方式。Vega 系列顯卡都有兩個 VBIOS 晶片,其中一個是防寫的,可以用開關切換(不過據說某幾款 Vega 56 並沒有把開關做上去)。先把開關切回防寫的 VBIOS(往輸出端子方向),這時候就能像原來那樣開機進 Windows 。下指令刷機前把開關切回來就行了(往輸出端子方向)。

所以最後結論是:Vega 56 幾乎刷不死,可以大膽刷刷看,只是不一定能用就是了。

刷機指令:

atiflash -p -f 0 xxxx.rom

三、黑蘋果能爽用 Vega 56 嗎?

macOS 從 10.13.6 開始支援 Vega 顯示卡,這個資訊在官網上就有了。官網發布聲明之後我就開始緊盯市場上二手 Vega 價格波動,觀察幾個月之後終於入手,沒想到買回家第一天裝機就踩到好幾個雷。

雷ㄧ:畫面錯亂

首先,一進 macOS 系統之後畫面就壞掉了,症狀是中央偏左上一小塊花屏區域,只有滑鼠會動的情況,但 Windows 環境下是完好的,能完整跑完 3DMark Fire Strike,圖形分數兩萬多分,所以應該不是顯卡的毛病。我的黑蘋果不能用 Vega 56 讓我很鬱悶。Google 只會大力推薦黑蘋果使用 Vega 顯卡,都沒找到相關的異常資訊。 

搞了兩天之後才發現原因。我的螢幕只有 HDMI 輸入,原來使用的 R9-280X 是透過 mini-DP 轉 HDMI 接到螢幕上,所以上 PCHome 24H 買一條 DP 轉 mini-DP 轉接線把顯卡的 Display Port 與螢幕 HDMI 整個串起來就好了。Vega 56 的輸出問題跟 R9-280X 其實很類似,都是黑蘋果環境下 HDMI 不能用的問題,只能用 Display Port。後來想想,近年來 Mac 內建獨立顯卡的機器都沒有 HDMI 的輸出,或許和 macOS 沒有對應相關 HDMI 驅動有關。

雷二:窮忙的風扇

搞定輸出問題之後,從此天下太平嗎?並沒有!一進入 macOS 終於有畫面了,明明什麼事都還沒做,系統閒置時風扇仍持續高速運轉。換了新版 HWSensor3 與對應的 FakeSMC 之後,看得到 Vega GPU 的溫度,冬天的房間裡常常吹到 GPU 溫度才 26 度,這數字在夏天都是冷氣機了。Google 也有告訴你 Vega 在黑蘋果中有這個問題。

這問題搞了兩天,有方法改善,但目前並沒有完善的解決方案。tonymacx86 這篇文章有詳細的問題描述跟解法。後來我找了許久,歸納出大概有四種解法:

  • 用 VGTab 產生風扇工作定義表,匯出 VegaTab_56.kext,安裝到 /EFI/Clover/kexts/Others 底下。
  • 用 VGTab 產生風扇工作定義表,匯出 VegaTab_56.kext,複製裡面 Info.plist 資訊的某個區段,加入 /EFI/Clover/config.plist/Devices/Properties 底下。
  • 用 VGTab 產生風扇工作定義表,匯出 VegaTab_56.kext,參考裡面 Info.plist 的資訊,加入 DSDT.aml 內。
  • 用 VGTab 產生風扇工作定義表,匯出 VegaTab_56.kext,修改原生 AMD10000Controller.kext 內容(不建議)。

VGTab 下載

VGTab 畫面如下:

 

VGTab.png

按下 Generate Control 之後,就會在桌面產生 VegaTab_56.kext 檔案和 XXXX_data.txt,後續依照上述幾個方式擇一處理。

不過經由反覆測試後,似乎只有 Idle Speed 有效,也就是閒置時風扇轉數降低到 800 RPM。其他幾個參數貌似無效。HWSensor3 + HWMonitor2 看到高負載運作時溫度始終維持在 75 ~ 80 度之間,而非 Target Temperature 設定的溫度。但 grep (指令如下) 出來的資訊卻不超過 70 度,實在搞不懂到底哪個溫度才算正常。

ioreg -l |grep \"PerformanceStatistics\" | cut -d '{' -f 2 | tr '|' ',' | tr -d '}' | tr ',' '\n'|grep 'Temp\|Fan'

高負載升溫之後,風扇要一段時間才會開始跑,轉速不管怎麼調整 Target Speed 最高都是 2400 轉,降溫之後還要跑一段時間才會降速,反應不是那麼即時,感覺似乎還有問題。另外,刷入不同的 56 VBIOS 後,黑蘋果也會有不同的反應。例如刷寶藍(Sapphire)的 Nitro+ 則會讓溫度變低一點點,刷 AMD 原廠的 56 則會導致 3D 畫面花屏。

但不論如何,還是解決了閒置時風扇高速運轉的問題。

另外還有個問題:長久以來使用的 HWSensors 環境插件無法監測 Vega ,須改用 HWSensors3 才能監控 Vega 顯卡溫度。然而改用之後必須連 FakeSMC.kext 也一並更換,與原來 HWSensors 使用的 FakeMSC 並不相容,並且會少了很多數字(第三方 HWSensors3 下載)。

雷三:機械學習出包

最後,Vega 56 在黑蘋果還有一個目前無解的雷。之前談到可以用 GPU 加速機械學習(Part IPart II),想當然爾,換了 Vega 56 搞定上述問題後,便迫不及待嘗試 Vega 56 能再加快多少訓練的速度。

  • Xcode 訓練影像辨識(ImageClassifier),相同的花卉資料集,Training Data 時間 1:10 ,Testing Data 時間 30 秒。大約只比 GTX-780 快一點點。
  • turicreate 訓練 Object Detection,相同的 Gogoro 換電站資料集,出現錯誤:

PSLibrary.mm:218: failed assertion `MPSKernel MTLComputePipelineStateCache unable to load function cnnConv_Update_32x32.

上網 Google 才發現這貌似為蘋果的 BUG(網址),遇到的都是 2018 Macbook Pro 搭配獨顯 Radeon Pro 560X 的用戶,甚至有幾個用戶上蘋果官方 Github 靠邀,用戶花大錢買有獨顯的 MBP 的原因就為了跑這玩意,結果卻不能用。這問題從留言時間看來至少卡了一個月以上,至今仍然無解,換回 R9-280X 就恢復正常。不懂蘋果到底在搞什麼飛機?

2018-01-26 補充:蘋果官方於 2019-01-25 釋出 macOS 10.14.4 Beta(18E174f)Mojave,終於解決上述 Object Detection 訓練的 BUG。據說是 Metal 層的 Framework 有問題,得透過 macOS 升級才能解決。

經使用相同的圖庫資料與 Turicreate 版本訓練測試,Vega 56 的訓練速度比 Radeon R9-280X 快了約 30~80%(隨 batch_size 大小不同而差異)。

四:Vega 56 是礦卡,值得嗎?

這個問題見仁見智。 PTT 上普遍是不建議,礦卡大多被 7x24 日夜操得不成人樣後,再被丟到市場上賤賣,兩千元的 RX-570,三千多元的 RX-580 比比皆是,普遍落在原價現價的三到四成,不少人還覺得太貴。昔日礦工昔日掃貨、炒高市場價格,害大家買不到顯卡打電動,礦工們荷包賺飽之後再把礦卡丟到市場上,購買礦卡等於幫礦工們增加資金去添購更好的顯卡設備,變相助長虛擬幣歪風,玩家恨礦工恨得牙癢癢,這的確也是事實的一部分。

個體礦工大多以 RX-470/480/570/580 作為挖礦設備主流,產品上市已一年半至兩年多。然而 Vega 顯卡直到 2017 年底才上市,以顯卡常挖的乙太幣來說當時是極高點,買不到 570/580 自然會有人敢下重本用 Vega 來挖。不過兩個月不到就開始崩盤,2018 年 5 月開始有點起色時又遇到夏季電費,就算真的撐到九月停機時,又遇到原廠以一萬出頭清庫存,壓低 Vega 二手價的天花板,Vega 10 也隨即宣布停產。

回顧這段時間內,當初下重本用 Vega 來挖礦的,受到種種市場因素與功耗成本影響,有段時間還可能越挖越賠。我個人估計目前市面上製造日期在 2017 年 12 月的 Vega 礦卡,差不多挖了約半年到九個月的時間。

上面提到 Hynix 不能操頻的事實,一操就掛,使我相信手上這張 Vega 56 不至於受到太嚴厲的摧殘。也因此反而不敢選購三星 HMB2 的 Vega 56,寧願選擇一個與我個人判斷相近、坦承挖過礦的賣家。試問有一批 2017 年底或 2018 年初生產搭配三星 HMB2 的 Vega 56,現在拿出來賣的時候跟你說不是礦卡,沒挖多久,賣得比 Hynix 礦卡貴,從各種時間跡象來看,賣家說謊的機率極高,你敢相信、敢買嗎?

然而不論是 Hynix 或三星 HMB2 的 Vega 顯卡,曾經被拿去挖礦是事實,產品壽命提前腰折的機率大增也是事實。不過調查了許多資訊,微星對 Vega 產品並未針對挖礦行為祭出額外保固限制。以七千出頭入手之後,也在官網成功註冊 +12 個月,保固期現在起算還有足足三年的時間,和一般 3C 新品保固期相當,如此來看,萬一在三年內真的提前夭折,說不定能換到三星 HMB2 或是升級換貨也是有可能的事。

最後再談到 AMD 的顯卡產品發展。昔日 AMD 主導 Polaris 顯卡開發的 Raja 已經被挖到 Intel 去了,推測 AMD 接下來兩年內應該是沒什麼新顯卡產品,大概就是繼續馬甲、從 GlobalFounderies(GF,格羅方德)改良製程到台 GG 代工的變化。Vega 對於黑蘋果的意義,類似於昔日 GTX-780 / Tatian 是 macOS 原生支援最後一代效能最高的 N 卡。

所以 Vega 56 礦卡值不值得買?三年保固,比 GTX-1070 略高的效能,比 GTX-1070 略低的二手價格(以相同剩餘保固期來看),macOS 原生支援(雖然機械學習的雷尚未解除),對黑蘋果用戶來說,似乎是比 GTX-1070 是更好的選擇。

相关文章