自 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 是更好的选择。

相关文章