Häromveckan släpptes ett av det senastes årtiondens mest efterlängtade spel – Cyberpunk 2077. Vid sidan om lovord av recensenter och kritik för buggar, har spelet uppmärksammats då det med dagens mått mätt kräver mycket av hårdvaran. Som ett led i detta framgår nu att spelet inte drar nytta av Simultaneous Multithreading (SMT) i AMD Ryzen-processorer, något som ger sämre prestanda med modeller som har färre kärnor.

Tekniken SMT infördes av AMD med arkitekturen Zen år 2017, men har dessförinnan under lång tid använts av Intel under marknadsföringsnamnet Hyperthreading. Tekniken gör att en kärna kan exekvera kod i två trådar istället för en, vilket gör att outnyttjad kapacitet kommer till användning och det ofta med stora prestandafördelar.

Innan Zen baserades samtliga AMD-processorer på Bulldozer och efterföljande iterationer. Samtliga hade två kärnor i ett kluster, där det flitigt debatteras huruvida det var en eller två kärnor, som delade resurser – något AMD kallade Clustered Multithreading (CMT). Oavsett teknik kräver både SMT och CMT speciell handpåläggning i schemaläggare för att använda korrekt antal trådar och kärnor.

Efter ett inlägg av Reddit-användaren CookiePLMonster och gräv i koden av Techpowerup framgår att gammal kod ligger bakom problemen med Ryzen. För Cyberpunk 2077 används AMD GPUOpen-kod som ursprungligen är avsett för att låta applikationer använda samtliga kärnor/trådar med Bulldozer. När koden hittar processorns ID-slinga "AuthenticAMD" och "family = 0x15" (Bulldozer och senare derivat), aktiveras att samtliga "Logical processors" (trådar) ska användas.

amd_ryzen_5000-26.jpg

När nyare processorer baserade på Zen och senare derivat identifieras med beteckningen "AuthenticAMD", utan tillägget "family = 0x15", begränsas antalet logiska processorer/trådar till processorns antal kärnor. Det är på grund av detta som SMT inte används med Ryzen-processorer, medan motsvarande Hyperthreading-teknik utnyttjas tillsammans med Intel-processorer.

Enligt tester hos PC Games Hardware har problemet ingen större inverkan på AMD:s processorer med åtta eller fler kärnor, då dessa helt enkelt har tillräckligt många kärnor och tillgängliga trådar för att spelet ska prestera bra. Däremot märks problemet tydligt med bolagets sexkärniga Ryzen 5 5600X, som placerar sig jämsides med Intel Core i5-10400F som kan dra full nytta av sina sex kärnor och tolv trådar.

Samtidigt som problemet uppdagats finns lösningar att tillgå, där bland annat Reddit-användaren chaosxk har lagt upp en guide, som steg för steg visar hur du genom att ändra kodens parametrar med en hexeditor gör att samtliga trådar kan användas. För den som inte vill göra detta är det ingen högoddsare att CD Projekt RED åtgärdar detta med en kommande uppdatering av Cyberpunk 2077.

SweClockers testar grafikprestandan i Cyberpunk 2077