蘋果Mojave更新當中出現的Navi 16或許不是真的,而是海市蜃樓
不知道大家在上週末的時候有沒有聽說一件很吸引眼球的新聞:據說有推特偵探(TUM_APISAK)發現或許會被用在第九世代家用機、即次世代家用機的全新半定製SoC Chip,代號“Gonzalo”。他說這顆新的晶片將會搭載八核心銳龍處理器,而且還有全新的Navi架構圖形單元。這還不算,挖掘出來的推特偵探竟然還能推測出頻率:基準1.0GHz,睿頻3.2GHz。而實際上他的根據是一串程式碼:“2G16002CE8JA2_32/10/10_13E9 AMD Gonzalo”,這名名偵探認為其中的32就是指3.2GHz,然後首個“10”就是指基礎的1.0GHz,後面的“10_13E9”就是所謂的“Navi 10 Lite”。他的“解碼”在上週末的時候佔領相當多外媒的首頁,但是在思來想去後,我覺得他的解釋可靠性不足,個人演繹的成分比較重,猶豫後決定還是不要報道為好。
這是Chris Rock的脫口秀,惡搞Tupac
而事實上這段時間還有其他類似的流言,比如說在蘋果的Mojave Version 14.12系統更新當中被找到出現神祕字樣,在網站Tonymacx86找到的程式碼當中,大家可以看到左側的“AMDRadeonX6000HWServices”並沒有問題,就算後面出現“Navi”字樣都不值得奇怪,或許日後會有搭載Radeon Navi顯示卡的Mac裝置,這是合邏輯的,但是看到右側,就有非常具體的Navi 16、Navi 12、Navi 10、Navi 9,看起來就像是非常具體的GPU,而且如果按照目前1CU=64SP的架構,能夠很輕易的推測出1024、768、640、576的SP規格,要知道RX 560顯示卡就是1024SP,因此儘管後三者的定位看起來非常低端(R7 455=768SP)且沒有出現過,但是依然給偵探控們相當的興奮。
不過昨晚的時候PCGamesn援引蘋果周邊技術站點 Netkas.org的訊息提供出另一種解鎖 ,作為的“Navi 16”或許並不是被故意寫進驅動裡面的,而是軟體工程裡的自然現象,換句話說,後面的數字是自然形成的,這可能是一種由於C++程式設計語法(Language Syntax)的帶來的烏龍,當你按照固有的規則輸入字樣後,Navi10之類的C++名稱分隔符(Name Separator),他還以下面的程式碼來舉例:
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 10 MatchTableE
AMDRadeonX6000_AMDRadeonHWServicesNavi::MatchTable
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 10 gMetaClassE
AMDRadeonX6000_AMDRadeonHWServicesNavi::gMetaClass
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 10 superClassE
AMDRadeonX6000_AMDRadeonHWServicesNavi::superClass
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 16 ProjectNameTableE
AMDRadeonX6000_AMDRadeonHWServicesNavi::ProjectNameTable
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 16 getMatchPropertyEv
AMDRadeonX6000_AMDRadeonHWServicesNavi::getMatchProperty()
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 9 MetaClassC1Ev
AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::MetaClass()
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 9 MetaClassC2Ev
AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::MetaClass()
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 9 MetaClassD0Ev
AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::~MetaClass()
__ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi 9 MetaClassD1Ev
AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::~MetaClass()
大家能夠看到在Mojave驅動裡面出現的原文其實並沒有多少含義,而是編譯——還原過程引起的海市蜃樓,原文甚至還有提供一個給你試手的 連結(點選這裡) ,或許你也能找到規律。