W MacOS Mojave jednak nie ma nowych GPU AMD Navi
Wczoraj przez sieć przetoczyła się informacja o tym, że w kodzie aktualizacji systemu operacyjnego Apple MacOS Mojave odnaleziono paczkę zawierającą nazwy kodowe nowych procesorów grafiki firmy AMD, które miałyby trafić na przyszłe karty graficzne serii Radeon. Navi 16, Navi 12, Navi 10 oraz Navi 9 to nazwy zauważone przez jednego internautę, który swoim odkryciem podzielił się w sieci. Wieść przepłynęła przez serwisy IT, choć od początku była nieprawdziwa. Aktualizacja dla systemu MacOS Mojave pochodzi z listopada i tak naprawdę od paru miesięcy można było te nazwy wyłapać. Sęk w tym, że nie są to nazwy nowych GPU, a wynik stosowania i przetwarzania składni programowania.
Nowe karty graficzne AMD Radeon z architekturą Navi spodziewane są z debiutem w okolicy połowy roku i dostępnością na rynku niedługo po tym.
Pojawienie się tych samych nazw po raz drugi dla niektórych zdaje się być dowodem na to, że rynkowe debiuty nowych kart graficznych AMD Radeon z procesorami opartymi na architekturze Navi są już blisko. Informację o nazwach kodowych nowych GPU na szerokie wody wyrzucił serwis VideoCardz, nie sprawdzając wiarygodności tego przekazu. Zacznijmy od początku. W paczce sterowników o nazwie "AMDRadeon6000HWServiceskext" zauważone zostały wpisy zawierające odniesienia do potencjalnych, nowych GPU AMD - Navi 16, Navi 12, Navi 10 oraz Navi 9. Szybko zaczęto spekulować, że liczby przy nazwach GPU odnoszą się do liczby jednostek obliczeniowych. Wszystko to jedna ślepa ścieżka.
AMD Radeon RX 590 vs NVIDIA GeForce GTX 1060 - Test wydajności
Te domniemane nazwy nowych GPU to efekt działania składni w języku programowania C++. Skompilowany skrypt zawartości wspomnianej paczki stworzył jedynie pozory. Kompilatory C++ często muszą generować różne symbole bibliotek w kodzie dla funkcji i danych, o takich samych nazwach. Przykładowo w jednym programie mogą występować dwie zróżnicowane funkcje o takiej samej nazwie. Aby rozróżniać tego typu funkcje, kompilatory C++ stosują modyfikację lub przekręcanie nazw, tak aby każda nazwa wskazywała na typ informacji, argumenty czy sygnaturę funkcji. Proces ten jednak można odwrócić i tak właśnie sprawdzono, że wpisy w kodzie aktualizacji MacOS Mojave wcale nie wskazują na nowe GPU. Efekty możecie zobaczyć poniżej:
- $nm AMDRadeonX6000HWServices | grep Navi
- __GLOBAL__sub_I_AMDRadeonHWServicesNavi.cpp
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi10MatchTableE
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi10gMetaClassE
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi10superClassE
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi16ProjectNameTableE
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi16getMatchPropertyEv
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClassC1Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClassC2Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClassD0Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClassD1Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNavi9metaClassE
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviC1EPK11OSMetaClass
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviC1Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviC2EPK11OSMetaClass
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviC2Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviD0Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviD1Ev
- __ZN38AMDRadeonX6000_AMDRadeonHWServicesNaviD2Ev
- __ZNK38AMDRadeonX6000_AMDRadeonHWServicesNavi12getMetaClassEv
- __ZNK38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClass5allocEv
- __ZTV38AMDRadeonX6000_AMDRadeonHWServicesNavi
- __ZTVN38AMDRadeonX6000_AMDRadeonHWServicesNavi9MetaClassE
- __ZZN38AMDRadeonX6000_AMDRadeonHWServicesNavi16getMatchPropertyEvE18PROJECT_
NAME_COUNT
Po odkręceniu nazw z kompilatora C++ wygląda to tak:
- $ nm AMDRadeonX6000HWServices | grep Navi | c++filt
- __GLOBAL__sub_I_AMDRadeonHWServicesNavi.cpp
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MatchTable
- AMDRadeonX6000_AMDRadeonHWServicesNavi::gMetaClass
- AMDRadeonX6000_AMDRadeonHWServicesNavi::superClass
- AMDRadeonX6000_AMDRadeonHWServicesNavi::ProjectNameTable
- AMDRadeonX6000_AMDRadeonHWServicesNavi::getMatchProperty()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::MetaClass()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::MetaClass()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::~MetaClass()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::~MetaClass()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::metaClass
- AMDRadeonX6000_AMDRadeonHWServicesNavi::AMDRadeonX6000_AMDRadeonHWServicesNavi
(OSMetaClass const*) - AMDRadeonX6000_AMDRadeonHWServicesNavi::AMDRadeonX6000_AMDRadeonHWServicesNavi()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::AMDRadeonX6000_AMDRadeonHWServicesNavi
(OSMetaClass const*) - AMDRadeonX6000_AMDRadeonHWServicesNavi::AMDRadeonX6000_AMDRadeonHWServicesNavi()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::~AMDRadeonX6000_AMDRadeonHWServicesNavi()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::~AMDRadeonX6000_AMDRadeonHWServicesNavi()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::~AMDRadeonX6000_AMDRadeonHWServicesNavi()
- AMDRadeonX6000_AMDRadeonHWServicesNavi::getMetaClass() const
- AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass::alloc() const
- vtable for AMDRadeonX6000_AMDRadeonHWServicesNav
- vtable for AMDRadeonX6000_AMDRadeonHWServicesNavi::MetaClass
- AMDRadeonX6000_AMDRadeonHWServicesNavi::getMatchProperty()::PROJECT_NAME_COUNT
Powiązane publikacje

Nowe sterowniki do kart graficznych Intel Arc Battlemage poprawiają płynność w wielu popularnych grach komputerowych
19
ASUS ROG Astral GeForce RTX 5080 DOOM Edition to limitowana karta graficzna dla fanów gry DOOM: The Dark Ages
42
NVIDIA GeForce RTX 5070 Ti - Podkręcono pamięć karty graficznej. Kości GDDR7 od SK hynix osiągnęły 34 Gb/s
182
ASUS GeForce RTX 5000 ROG Astral - karty graficzne Blackwell, które posiadają akcelerometr i żyroskop
91