自 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 的尾巴。不過有但書,只有搭配三星 HBM2 記憶體的 56 能刷。如果搭配的是 Hynix (海力士)的 HBM2 記憶體,那麼這張 56 就幾乎肯定刷不上 64。 56 的記憶體工作頻率預設 800 MHz, 64 預設為 945 MHz。前期的 Hynix HBM2 是超級大雷包,市場上多以「海雷」稱之,對岸有人超到 890 MHz 就不行了,能超到 920 MHz 更是極少數,只有到後期(2018 年夏季)才有零星可上 980MHz 的 Hynix 記憶體。至於三星 HBM2 記憶體,據說隨隨便便都能上 1000 MHz 以上。

我買的是微星 Radeon RX Vega 56 Air boost 8G OC,用的就是 Hynix (海力士)晶片,刷了 64 就直接死機,電腦一開電就直接黑畫面,連開機 BIOS POST 畫面都沒有。後來刷回 56 進 Windows 用 Watterman 測體能,測到 850 MHz 畫面就開始閃爍,久仰大名不如親眼目睹,Hynix HBM2  的「海雷」果然是名符其實 。

若不能刷 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 輸入,畫面錯亂的現象是黑蘋果環境下, Vega56 以 HDMI 輸出到螢幕上才發生的。我想起原先使用的 R9-280X 在某一次升級黑蘋果之後,HDMI 埠就突然黑屏國防布的歷史,後來是改用 R9-280X 的 mini-DP 埠輸出,再透過 mini-DP 轉 HDMI 接到螢幕上解決的,所以上 PCHome 24H 買一條 DP 轉 mini-DP 轉接線,用 Vega 56 [DP] -- [DP 轉 mini-DP] -- [miniDP 轉 HDMI] -- [HDMI] 螢幕 很搞剛的把整個串起來就好了。後來又淘了一條等級更好的 mini-DP 轉 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 下載)。

2019-06-20 補充:HWSensor 環境插件無法監測 Vega 的問題,日前在 Tonymacx86 上有人發表了一篇解法(文章),做法是自行編譯一個可以用的插件。經實測後有效,終於可以用回原來的插件了。

快速寫一下做法如下:

準備工作:

安裝 Xcode

步驟:

1. 開啟網址 https://bitbucket.org/RehabMan/os-x-fakesmc-kozlek/src/master/ 。

螢幕快照 2019-06-20 下午10.57.28.png

2. 點擊右上角的 Clone 按鈕,彈出視窗選擇「Clone in Xcode」。之後選擇下載路徑。

螢幕快照 2019-06-20 下午10.58.40.png

3. 下載完成後,會自動開啟 Xcode。

螢幕快照 2019-06-20 下午11.02.07.png

 

4. 修改以下程式碼:

radeon_family.h: 在 enum radeon_family {... 段新增「CHIP_FAMILY_VEGA, /* VEGA */」

螢幕快照 2019-06-20 下午11.05.03.png

RadeonSensors.cpp (317): 新增三行

case CHIP_FAMILY_VEGA: /* VEGA */
   card.int_thermal_type = THERMAL_TYPE_VEGA;
   break;

螢幕快照 2019-06-20 下午11.08.25.png

radeon_chipinfo_gen.h: static RADEONCardInfo RADEONCards[] = {... 區段新增「{ 0x687F, CHIP_FAMILY_VEGA, 0, 0, 0, 0, 0 }, /* VEGA */」

螢幕快照 2019-06-20 下午11.11.42.png

以及將 HWSensor 的專案設定中,SDK 設定為 macOS。

螢幕快照 2019-06-20 下午11.13.37.png

5. 編譯:

activate schema 設定為 Build Kexts

螢幕快照 2019-06-20 下午11.15.53.png

工具列 Product -> Build For -> Profiling 

螢幕快照 2019-06-20 下午11.16.33.png

開始編譯。編譯完成可在 DerivedData 目錄下找到編譯完成的 FakeSMC.kext 與若干插件。

螢幕快照 2019-06-20 下午11.22.53.png

將插件放到 FakeSMC.kext 內部 Contents/PlugIns 底下,

螢幕快照 2019-06-20 下午11.27.14.png

再把 FakeSMC.kext 放到 EFI/CLOVER/kexts/Others 底下即可。

2019-05-14 補充:此問題已於釋出的 macOS 10.14.5 Mojave 中解決,已不再需要注入定義表,或是加掛 VegaTab_56.kext 。

2020-04-19 補充:根據文章(德文版簡中版)說到,VEGA 的風扇問題導因於 SMU 韌體的問題。由於 SMU 韌體需透過驅動程式載入,蘋果的 SMU 驅動程式會有風扇異常轉動的現象。然而蘋果在 10.14.5 解決風扇異常的方法,竟是簡單粗暴地將 SMU 停用,導致 VEGA 顯卡的圖形效能下降,比 Windows 環境低了約 20% 。

10.14.5 以後可透過 RadeonBoost.kext ( <=1.1 版)加載 SMU 韌體, 但載入後也讓風扇問題再度重現。

雷三:機械學習出包(已解決)

最後,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 4XX/5XX 的用戶,甚至有幾個用戶上蘋果官方 Github 靠邀,用戶花大錢買有獨顯的 MBP 的原因就為了跑這玩意,結果卻不能用。這問題從留言時間看來至少卡了一個月以上,至今仍然無解,換回 R9-280X 就恢復正常。不懂蘋果到底在搞什麼飛機?

2018-01-26 補充:蘋果官方於 2019-01-25 釋出 macOS 10.14.4 Beta(18E174f)Mojave,終於解決上述 Object Detection 訓練的 BUG。據說是 AMD 驅動層級的問題,導致 Metal 的 Framework 出現 BUG,得透過 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 不至於受到太嚴厲的摧殘。也因此反而不敢選購三星 HBM2 的 Vega 56,寧願選擇一個與我個人判斷相近、坦承挖過礦的賣家。試問有一批 2017 年底或 2018 年初生產搭配三星 HBM2 的 Vega 56,現在拿出來賣的時候跟你說不是礦卡,沒挖多久,賣得比 Hynix 礦卡貴,從各種時間跡象來看,賣家說謊的機率極高,你敢相信、敢買嗎?

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

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

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

arrow
arrow

    benjenq 發表在 痞客邦 留言(0) 人氣()