Po wycofaniu obsługi 32-bitowego CUDA w wersji 12.0 i nowszych, wiele technologii opartych na tej platformie, takich jak PhysX, osiągnęło koniec swojego cyklu życia. Nowe informacje opublikowane przez PassMark sugerują, że decyzja Nvidii ma dalsze konsekwencje, szczególnie dla starszego kodu OpenCL napisanego dla systemów 32-bitowych.
Efektem ubocznym tej zmiany jest spadek wydajności w teście Direct Compute firmy PassMark, co jest prawdopodobnie wynikiem użycia przestarzałych bibliotek lub modułów zawierających 32-bitowe fragmenty kodu. Nvidia nie wycofała obsługi 32-bitowego CUDA nagle – proces ten był rozłożony na kilka lat poprzez stopniowe aktualizacje. Co ciekawe, programy stworzone dla 32-bitowego CUDA nadal mogą działać na kartach RTX 40 i starszych. Jednak na nowszej serii RTX 50 aplikacje te są zmuszone do korzystania z procesora zamiast karty graficznej, co skutkuje dramatycznym spadkiem wydajności, zwłaszcza w przypadku obliczeń równoległych, jak te wykorzystywane przez PhysX.
Found the explanation for RTX 5090 and 5080 low compute performance.
— PassMark Software (@PassMarkInc) February 25, 2025
Link: https://t.co/8Rq3K3Zw1P
We found out a few hours ago that nvidia removed OpenCL 32bit support. Seems it depended on CUDA 32bit. Which is also gone. We've been unable to buy a 5090 for testing (no stock… pic.twitter.com/gIp1HiOsJN
Eksperci spekulują, że ograniczenie to wynika głównie z oprogramowania i potencjalnie mogłoby zostać rozwiązane poprzez warstwy translacji z 32-bitów na 64-bity. Jednak Nvidia nie zapowiedziała żadnych oficjalnych działań w tym kierunku.
Wpływ na starszy kod OpenCL
Według PassMark, zakończenie wsparcia dla 32-bitowego CUDA wpłynęło także na starszy kod OpenCL. Chociaż Nvidia nie wydała oficjalnego oświadczenia w tej sprawie, tweet PassMark sugeruje, że firma całkowicie zrezygnowała z obsługi 32-bitowego OpenCL.
Problem ten stał się bardziej widoczny z powodu ograniczonej dostępności nowych kart graficznych serii Blackwell, co uniemożliwiło zespołowi PassMark przeprowadzenie szczegółowych testów na procesorach graficznych RTX 50. Tymczasem dokumentacja deweloperska Nvidii dla OpenCL wciąż zawiera przykłady kodu dla środowisk 32-bitowych, który działa poprawnie na starszych GPU z serii RTX 40 (Ada Lovelace), ale powoduje błędy na kartach RTX 50. Można przypuszczać, że bez modyfikacji w kodzie źródłowym, starsze aplikacje OpenCL nie będą funkcjonować na procesorach graficznych Blackwell i nowszych generacjach.
Dostosowanie oprogramowania do nowej rzeczywistości
Chociaż większość nowoczesnych aplikacji jest zgodna z 64-bitową architekturą, niektóre testy porównawcze, takie jak PerformanceTest firmy PassMark, nadal zawierają elementy napisane w 32-bitowym kodzie. Aby testy porównawcze mogły dokładnie mierzyć wydajność, konieczne było ponowne skompilowanie w trybie 64-bitowym.
Migracja z 32-bitowego kodu na 64-bitowy nie jest jednak procesem trywialnym. W przypadku starszych bibliotek i zależności, konieczność przepisywania kodu i dostosowywania operacji niskiego poziomu może znacząco utrudnić dostosowanie się do nowych standardów. W praktyce może to oznaczać wydłużony czas pracy nad kompatybilnością oprogramowania oraz konieczność modernizacji starszych aplikacji. PassMark zdołał rozwiązać te problemy, aktualizując niezbędne komponenty do wersji 64-bitowej, a cały proces zajął około tygodnia.

Pokaż / Dodaj komentarze do: PassMark podaje przyczynę słabych wyników RTX 50. Nvidia trochę namieszała