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

Nowa wersja NVIDIA GeForce RTX 3050 zamiast 8 GB dostanie 6 GB VRAM. Poznaliśmy nieoficjalną specyfikację
64
Wzrost dostaw układów graficznych w trzecim kwartale może zwiastować koniec kryzysowego okresu w branży
34
ASUS GeForce RTX 4070 Turbo - nowa karta graficzna z prostym systemem chłodzenia. Gracze nawet nie zwrócą na nią uwagi
37
GeForce RTX 3060 wiecznie żywy? NVIDIA nie planuje kończyć produkcji swojej wysłużonej karty graficznej
41