Nowe procesory AMD Ryzen są na rynku i niestety wydają się brakować w grach. Procesory Intel są oczywiście jeszcze szybsze w grach. Ludzie oczywiście nie byli tego zwolennikami, a AMD oświadczyło, że aktualizuje oprogramowanie lub oprogramowanie w celu przyspieszenia Ryzen do gier.
Popraw mnie, jeśli się mylę, ale procesor musi mieć statyczne oprogramowanie wewnętrzne, aby był zgodny ze standardem x64? Jeśli tak, to czy AMD nie musiałoby optymalizować gier (oprogramowania) do swoich procesorów, co jest oczywiście niemożliwe? Co się tam mówi, jeśli wydaje się, że niemożliwe jest zobaczenie podstawowych warunków?
Ale mogę się mylić (mam taką nadzieję), więc pytanie brzmi:
Czy da się przyspieszyć procesor bez zmiany sprzętu? Jeśli to możliwe, jak to się robi? Czy oprócz oprogramowania układowego procesora jest dostępne oprogramowanie?
Odpowiedzi:
Nowoczesne procesory są znacznie bardziej skomplikowane, niż mogłoby się wydawać. Są niezwykle skomplikowane, prawie nie do pojęcia dla jednej osoby. Po rozwinięciu krótkiej uwagi przez „horta” można mieć wszystkie następujące elementy:
Na początek prawie cały wewnętrzny sprzęt można w dużym stopniu konfigurować. Istnieją tysiące rejestrów konfiguracji z milionami pojedynczych bitów, które muszą być ustawione, aby procesor działał. Wszystkie kilka warstw interakcji procesora z pamięcią podręczną mają konfigurowalne potoki, a różne opóźnienia czasowe mają oczywiście wpływ na ogólną wydajność.
Istnieją setki zaawansowanych funkcji, które zostały tam wprowadzone przez architektów, których inżynieria nie miała czasu na sprawdzenie, więc setki funkcji są wyłączone lub ustawione w bezpieczną konfigurację z „bitami kurczaka” . Ale można je dostroić i włączyć, jeśli okażą się funkcjonalne i przydatne. Te funkcje ulepszające zwykle są z czasem weryfikowane dogłębnie i mogą być stopniowo włączane przez cały okres użytkowania procesora za pomocą różnych poprawek mikrokodu.
Wszystkie najnowsze procesory mają kilka jednostek wewnętrznych, które są kontrolowane przez niezależne mikroprocesory wbudowane w procesor x86. Jedną publicznie dostępną jednostką jest P-Unit. Nowoczesne procesory nie mogą funkcjonować bez agresywnego zarządzania energią, w przeciwnym razie się stopią. Jednak głębokie zarządzanie energią jest sprzeczne z agresywną polityką zegara / napięcia wejścia-wyjścia, a zmiany w polityce silnie wpływają na ogólną wydajność systemu. Wszystkie szczegóły są kontrolowane przez P-Unit i można je zoptymalizować / dostroić, ładując kolejną łatkę mikrokodu, zgodnie z odpowiedzią tutaj.
Wiele innych aspektów wewnętrznych połączeń jest kontrolowanych przez różne dodatkowe wbudowane procesory, które można poprawić, ładując do nich łaty mikrokodu lub aktualizując BIOS, jeśli ma on dostęp do tych zasobów konfiguracyjnych.
Krótko mówiąc, podczas gdy sprzęt CPU jest rzeczywiście podłączony, konfiguracja tego sprzętu określa jego wydajność i można go dostroić, aby uzyskać lepszą wydajność systemu za pomocą aktualizacji systemu BIOS i wbudowanych poprawek mikrokodu.
źródło
Różnorodne problemy z oprogramowaniem zarówno na poziomie systemu operacyjnego, jak i aplikacji powodują obniżenie wydajności.
Ośmiordzeniowe procesory Ryzen składają się z dwóch kompleksów rdzeniowych (CCX), każdy z czterema rdzeniami i 8 MB pamięci podręcznej L3. Dostęp do pamięci podręcznej L3 na innym CCX jest wolniejszy z powodu potrzeby przenoszenia danych dalej wzdłuż Infinity Fabric (zastrzeżonego interkonektu spójnego z pamięcią podręczną AMD), co oznacza, że przenoszenie wątków z jednego CCX na inny lub komunikacja między rdzeniami na różnych CCX powoduje zmniejszona wydajność. Kara ta przypomina to, co stałoby się na serwerze z wieloma gniazdami i systemem operacyjnym innym niż NUMA .
Wygląda na to, że Windows ma tendencję do po prostu przenoszenia procesów wokół różnych rdzeni i nie rozpoznaje kary za komunikację między CCX . Oznacza to, że Windows może umieszczać wątki w różnych CCX, nawet jeśli nie jest to konieczne , zmniejszając wydajność.
Niemiecki recenzent PC Games Hardware przetestował Ryzen 7 1800X z wyłączoną zmienną liczbą rdzeni i stwierdził, że posiadanie dwóch CCX z dwoma włączonymi rdzeniami na każdym z nich działa wolniej niż włączenie jednego CCX z nienaruszonymi wszystkimi rdzeniami:
Dzieje się tak pomimo faktu, że włączenie tylko jednego CCX oznacza, że dostępne jest tylko 8 MB pamięci podręcznej L3, a nie pełne 16 MB. Z artykułu na temat sprzętu do gier komputerowych za pośrednictwem Tłumacza Google (wyróżnienie dodane):
Ten artykuł PC Perspective pokazuje, że istnieje znaczne opóźnienie komunikacji między rdzeniami na różnych CCX, ale bardzo małe opóźnienie podczas komunikacji z rdzeniami na tym samym CCX. Należy zauważyć, że ten artykuł sugeruje, że system Windows zna projekt CCX i unika planowania wątków w różnych CCX, ale członkowie społeczności znaleźli sprzeczne wyniki.
Wiele (ale nie wszystkie) testy porównawcze gier pokazują zwiększoną wydajność, gdy SMT jest wyłączony. Jednak pogłoski stwierdzające, że system Windows nieprawidłowo planuje, tak jakby każdy wątek sprzętowy jako własny rdzeń był niepoprawny . Według AMD jest to spowodowane faktem, że wiele aplikacji jest zoptymalizowanych tylko pod kątem procesorów Intela (co nie jest zaskakujące, biorąc pod uwagę, że AMD jest MIA z rynku wysokiej klasy procesorów od około pięciu lat). AMD twierdzi, że współpracuje z setkami twórców gier, aby poprawić wydajność procesorów Ryzen. Podejrzewam jednak, że aktualizacja systemu Windows nadal może pomóc w dokładniejszym dostrojeniu harmonogramu do charakterystyki architektury Zen .
Poniższy przykład ze sprzętu Toma pokazuje obniżoną wydajność przy włączonym SMT:
TechSpot przeprowadził dogłębną analizę wydajności gier z włączonym i wyłączonym SMT i przyniósł bardzo podobne wyniki:
W tych testach występują również problemy z zarządzaniem energią . To samo oświadczenie AMD zauważa, że Windows nie jest w pełni świadomy nowych funkcji w Ryzen, takich jak parkowanie rdzenia i szybkie przełączanie częstotliwości zegara. Jest to zgodne z poprawą wydajności zgłoszoną przez sprzęt Tomka podczas korzystania z planu zasilania o wysokiej wydajności (patrz wykres powyżej, HP = wysoka wydajność). Aktualizacja systemu Windows może dodać obsługę tych funkcji i poprawić wydajność.
źródło
http://wccftech.com/amd-ryzen-launch-aftermath-gaming-performance-amd-response/
Tak więc prawdziwe pytanie nie dotyczy tego, w jaki sposób aktualizacja systemu BIOS / oprogramowania układowego może przyspieszyć procesor (może to zrobić, optymalizacja mikrokodu itp.). To więcej ... jak okaleczony jest procesor przez wadliwy system BIOS / oprogramowanie układowe
źródło
BIOS jest ogólnie uważany za oprogramowanie wewnętrzne. BIOS może kręcić różne bity w sprzęcie, aby zmienić sposób działania systemu
Więc tak, jest całkowicie wykonalne, aby wypchnęli nowe oprogramowanie wewnętrzne i na przykład w zakresie taktowania zegara, czy prefiksy są włączone, lub czy określony rdzeń - lub IIO - może uzyskać pewne preferencje dla pamięci podręcznej, która może zwiększyć wydajność gier z powodu do większości gier zaprojektowanych w sposób jednowątkowy.
źródło
Aktualizacje oprogramowania przyspieszają procesor. Wszyscy oczekują, że aktualizacje oprogramowania sprawią, że oprogramowanie będzie bardziej odpowiednie dla architektury Ryzen i będzie mogło lepiej wykorzystać jego wydajność.
Prawie. W procesorze znajduje się oprogramowanie (mikrokod, jak wspomniano powyżej), które może wpływać na wydajność. Zasadniczo X86 określa tylko wyniki operacji, a to, w jaki sposób procesor osiąga te wyniki, jest problemem inżynierów. Szanse na poprawki mikrokodu odgrywające główną rolę w Ryzen są jednak niewielkie, ponieważ różnica w wydajności wydaje się dotyczyć głównie gier, które sugerują, że procesor działa dobrze, ale niektóre gry w szczególności nie wykorzystują go dobrze.
System operacyjny jest odpowiedzialny za starania, aby programy były efektywnie rozmieszczone w procesorze, co może mieć wpływ na wydajność, ale ogólnie rzecz biorąc, żaden z tych czynników nie jest głównym problemem dla nowej architektury. Większość ulepszeń wydajności w takich przypadkach wynika z pisania przez programistów kodu lepiej dostosowanego do nowej architektury. Zdarza się to nie między kolejnymi generacjami procesorów Intel, ponieważ zmiany w projekcie nie są ogromne, więc to, co działa dobrze na jednym, prawdopodobnie będzie dobrze działać na drugim.
Ryzen jest jednak zupełnie nowym projektem, więc wszystko, co z definicji napisano, aby pasowało do innych procesorów, nie zostało napisane tak, by pasowało do Ryzen.
Aby znacznie uprościć sytuację, wyobraź sobie dwa procesory:
Procesor One jest na rynku od dłuższego czasu i (z jakiegokolwiek powodu) bardzo szybko dodaje liczby. Oprogramowanie zostało zaprojektowane tak, aby w jak największym stopniu wykorzystywać dodawanie, aby skorzystać z tej możliwości.
Konkurujący procesor trafia na rynek i jest słabszy przy dodawaniu, ale silniejszy przy powielaniu. Całe oprogramowanie zoptymalizowane pod kątem użycia większej liczby instrukcji obciążających bardzo źle działa na nowym procesorze, ale oprogramowanie, które nie zostało przystosowane do korzystania z wielu dodatków, działa mniej więcej podobnie. Niektóre programy mogą już dużo powielać i będą działać lepiej na nowych procesorach niż na procesorze One, nawet w dniu uruchomienia.
Jakiś czas po uruchomieniu, programiści zaczną się dostosowywać, wykorzystując większe zwielokrotnienie w swoim oprogramowaniu, a nawet zaprojektują swoje oprogramowanie tak, aby przełączało się między ścieżkami kodu wymagającymi dodatkowego dodawania, a ścieżkami wymagającymi mnożenia w zależności od używanej architektury procesora.
To właśnie dzieje się z Ryzenem - to nowa architektura, której twórcy oprogramowania nie zoptymalizowali jeszcze do charakterystyki. Z czasem programiści zaczną dostosowywać swoje oprogramowanie, aby uzyskać lepszą wydajność. Ponieważ większość oprogramowania jest już zaprojektowana tak, aby działała dobrze na procesorach Intel (w końcu są one dość popularne!), Prawdopodobnie nie skorzystają z tych zmian.
Istnieją pewne obciążenia, w których Intel po prostu pozostanie szybszy, a niektóre, w których Ryzen jest już szybszy (i będzie jeszcze szybszy), w zależności od podstawowego zachowania. W sytuacji, którą podałem powyżej, oprogramowanie, które wystarczy tylko dodać, zawsze będzie działało lepiej na pierwszym procesorze, a oprogramowanie, które po prostu musi się zwielokrotniać, zawsze będzie działać lepiej na drugim - ale w przeważającej części oprogramowanie jest złożone i różnice te nieco się wyrównają.
Warto również zauważyć, że to, co AMD powiedziało o wydajności gier, to fakt, że współpracują z programistami w celu zoptymalizowania gier. Wysyłają systemy deweloperów do firm (obecnie jest ich na wolności 300, a do końca roku zamierzają 1000) i rozmawiają z tymi, których gry źle radzą sobie z tym problemem. O ile mi wiadomo, nie zostało stwierdzone, że AMD same optymalizują gry.
W tym szczególnym przypadku Ryzen jest również w pewnych okolicznościach powstrzymywany przez system Windows podejmujący złe decyzje dotyczące tego, które rdzenie mają zostać obciążone pracą, a obecne BIOSy są problematyczne z powodów, o których po prostu nie będę udawać, że wiem. Jednak te problemy nie mogą być odpowiedzialne za całą lukę w wydajności, ponieważ istnieją obciążenia, w których Ryzen już przewyższa Intel w przekonujący sposób, co sugeruje, że problem jest przynajmniej częściowo (jeśli nie głównie) spowodowany konkretnymi uruchomionymi programami, a nie system operacyjny lub BIOS jako całość.
źródło
Oczywiście oprogramowanie może poprawić wydajność procesora, a nawet GPU.
Jednym ze sposobów jest zdecydowanie podkręcanie lub inny rodzaj mechanizmu zmieniającego zegar. Drugim może być optymalizacja sterowników. Należą do nich lepsze metody kompresji danych, szybsze dekodowanie algorytmów itp. Zasadniczo funkcje, które pomagają lepiej wykorzystać więcej sprzętu. Funkcje te można również zaktualizować poprzez aktualizacje oprogramowania układowego, które nie są tak naprawdę (zwykłym) oprogramowaniem. Jest też oprogramowanie, które może kontrolować chłodzenie twojego komputera. Jest to bardzo przydatne w przypadku procesorów i procesorów graficznych wykorzystujących technologie zwiększające wydajność, takie jak Turbo Boost Intela i Boost GPU Nvidii. Taki sprzęt ma pewne ograniczenia temperaturowe, więc obniżają jego wydajność, gdy działają zbyt gorąco i dynamicznie się podkręcają, gdy aplikacje wymagają większej mocy obliczeniowej, dopóki nie osiągną maksymalnego poboru mocy i „
Istnieją również inne opcje, ale w większości to obejmują. Zasadniczo, o ile znasz problem i możesz programowo manipulować sposobem przetwarzania danych (np. Wprowadzając algorytm inteligentnego dekodowania, który zastępuje rozwiązanie typu „brutalna siła”) lub manipulować reakcjami procesora na różne kluczowe czynniki wpływające na jego wydajność (np. bardziej agresywnie zwiększając chłodzenie w przypadku przegrzania lub monitorowania zapotrzebowania na zasoby aplikacji i dynamicznego podkręcania się, gdy potrzebna jest większa moc obliczeniowa), możesz wiele zrobić, aby poprawić (lub pogorszyć) wydajność procesora.
W przypadku AMD jest to prawdopodobnie optymalizacja mechanizmu doładowania lub rozwiązania chłodzącego. Jeden lub oba z nich zostały prawdopodobnie zmienione, aby reagowały bardziej agresywnie na wzrost obciążenia lub temperatury.
TL; DR: Tak, oprogramowanie może poprawić wydajność procesora. Istnieje wiele sposobów, które można zrobić, takich jak optymalizacja sterowników i oprogramowania układowego, przetaktowywanie itp. Każda zmiana oprogramowania, która przygotowuje dane, aby ułatwić przetwarzanie lub sprawić, że sprzęt lepiej reaguje na obciążenie lub jego ograniczenia najprawdopodobniej doprowadzi do zwiększenia wydajności.
źródło
Aktualizacje oprogramowania mogą zdecydowanie przyspieszyć działanie systemu (w tym procesora).
Bardzo skrajnym przykładem tego są duże komputery mainframe IBM: możesz kupić więcej czasu procesora online, a wszystko, co dostajesz, to klucz licencyjny, który musisz wprowadzić do systemu operacyjnego, i boom !, system działa szybciej. Sztuczka jest prosta: harmonogram systemu operacyjnego czasami po prostu odmawia zaplanowania zadań i zamiast tego procesor przechodzi w tryb uśpienia, a nawet po prostu uruchamia pętlę NO-OP na krótki czas, aby osiągnąć określoną ogólną średnią przepustowość. Jeśli płacisz za droższą licencję, program planujący usuwa te NIE-OP.
Lub jeszcze bardziej drastycznie: jeśli kupisz system z tylko 4 lub 6 lub 8 procesorami, zwykle będzie to około 16-32 faktycznie zainstalowanych. System operacyjny po prostu wyłącza niektóre z nich, a wprowadzając klucz licencyjny, możesz je włączyć.
Podobnie, komputery mainframe IBM rozróżniają różne rodzaje procesorów: procesory Linux, procesory Java, procesory transakcyjne itp. Są to tak naprawdę wszystkie te same procesory, ale program planujący system operacyjny odmówi zaplanowania zadań transakcyjnych (które są najważniejsze) do Procesor Java lub Linux. Tylko procesory Java zostaną zaplanowane na procesory Java, a tylko procesory Linux zostaną zaplanowane na procesory Linux. Jeśli chcesz uzyskać wyższą wydajność transakcji, musisz kupić licencje dla większej liczby procesorów transakcyjnych: ponownie, są to dokładnie te same procesory, jedyną różnicą jest flaga konfiguracji w harmonogramie, która mówi „nie planuj zadań transakcyjnych dla tych procesorów „.
Kolejnym przykładem, choć nie tak skrajnym, są różne wersje systemu Windows. Różne wersje systemu Windows obsługują różną liczbę rdzeni procesora i różną ilość pamięci. Jeśli masz dużą pamięć i dużą liczbę procesorów, możesz przyspieszyć swój system, po prostu aktualizując do „większej” wersji systemu Windows. Pamiętaj, że wydania mają dokładnie ten sam kod; gdzieś jest tylko przełącznik konfiguracji, który mówi: „Jesteś Home Edition, obsługujesz tylko 1 procesor i 128 GiByte”.
źródło