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

NVIDIA GeForce RTX 5090 - źródłem problemów nie jest tylko złącze 12V-2x6. Sprawa jest bardziej skomplikowana
247
GeForce RTX 5070 Ti i RTX 5070 - mamy złe wieści o nowych kartach. Jeden model okazuje się bardzo drogi, a drugi ma zostać opóźniony
111
NVIDIA miała przygotowane prototypy kart GeForce RTX 4090 oraz GeForce RTX 5090 z kilkoma złączami 12VHPWR
30
AMD pracuje nad kartą graficzną RDNA 4 z 32 GB pamięci VRAM. To może być tania alternatywa dla układu GeForce RTX 5090
94