Sonys ingenjörer arbetar på optimeringar för Zen-arkitekturen

Permalänk
Melding Plague

Sonys ingenjörer arbetar på optimeringar för Zen-arkitekturen

Sonys mjukvaruingenjörer jobbar på kompilatoroptimeringar för AMD:s Zen-arkitektur, vilket ökar sannolikheten för att även Playstation 5 ska inhysa AMD-komponenter.

Läs hela artikeln här

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk
Avstängd

kanske vi borde döpa nästa generations konsoler till ZenStations.

Visa signatur

New: Asus x370 prime pro, Ryzen 1700 (@3.925ghz) , Ripjaws V 16GB 3600 MHz (@3200mhz 14c). https://valid.x86.fr/curj7r
Radeon VII.

Permalänk
Medlem

Så om nu de flesta spel optimeras för detta... från grund. Hur tror ni det påverkar spel på PC?

Personligen tror jag Zen kommer plocka en hel del prestanda som Intel åter måste bruteforcea.

Permalänk
Medlem
Skrivet av Paddanx:

Så om nu de flesta spel optimeras för detta... från grund. Hur tror ni det påverkar spel på PC?

Personligen tror jag Zen kommer plocka en hel del prestanda som Intel åter måste bruteforcea.

Beror på om spelen till PC kompileras med LLVM/Clang.

Permalänk
Medlem

Jag som enbart PC-spelare tycker det är alldeles utmärkt att dom börjar gå mot nästa generations konsoler. Det innebär ju alltid att spelen som släpps kliver upp ett steg i grafik och man kan spela ännu bättre på sin PC.

Bästa vore ju förstås att allt bara släpptes för Linux och konsolföretagen helt enkelt bara släppte dedikerade Linuxkonsoler. In a perfect world....

Permalänk
Medlem
Skrivet av dlq84:

Beror på om spelen till PC kompileras med LLVM/Clang.

Tror inte det är så stort krav.

Bara titta på hur spel på dagens konsoler har ändrats från 1-4 core knapp hantering, till att idag stödea 6-8+ cores mycket bättre. Själva designen och optimeringarna man gör, blir ju baserad på detta. Ja en 4 kärnig högfrekvent CPU kan bruteforcea genom det, men det är suboptimalt på många sätt.

Permalänk
Medlem

PC plattformen har varit ute så länge så snart är spelen snyggare & bättre optimerade, tröttnade på att det tog 2 dagar att köra windows update på win7, har nu win8, nu ska det liras med mx150 på min 4:2 skärm!

Permalänk
Medlem
Skrivet av Paddanx:

Så om nu de flesta spel optimeras för detta... från grund. Hur tror ni det påverkar spel på PC?

Personligen tror jag Zen kommer plocka en hel del prestanda som Intel åter måste bruteforcea.

Tyvärr ganska lite om du inte kör Linux och spelet är kompilerat med LLVM. Det senare lär väl bli rätt vanligt om spelmakarna redan använder den kompilatorn på konsolerna, men problemet med att du måste köra Linux kvarstår då den absoluta majoriteten av spel till Windows kompileras med Microsofts egna kompilator.

Men på den ljusa sidan kan nog spelen från Croteam få en liten prestandaskjuts av förbättringarna (åter igen i Linux), de har ju länge haft utmärkt stöd för Linux och har hjälpt till att förbättra några delsystem också (som Vulkan-stödet för Radeon-kort).

Visa signatur

Mjölnir: Ryzen 9 3900X | X570-I | Ballistix Sport 32GB | Powercolor RX 5500XT 4GB ITX | Kolink Sattelite
Server: Ryzen 5 1400 | X470-F | Ballistix Sport 24GB | ASUS HD 7790 2GB | Sapphire RX 470 8GB ME | NZXT Switch 810

Permalänk
Medlem
Skrivet av Jackbob:

Jag som enbart PC-spelare tycker det är alldeles utmärkt att dom börjar gå mot nästa generations konsoler. Det innebär ju alltid att spelen som släpps kliver upp ett steg i grafik och man kan spela ännu bättre på sin PC.

Bästa vore ju förstås att allt bara släpptes för Linux och konsolföretagen helt enkelt bara släppte dedikerade Linuxkonsoler. In a perfect world....

Varför?

Visa signatur

macOS: MacBook Air 13" [M1/16/256GB], MacBook Pro 16" [M2/32/512GB], iOS: iPad Mini [128GB/LTE], iPad Pro 12,9" [M1/512GB/LTE], iPhone SE3 [128GB], Apple Watch Series 6 44mm [LTE], LG 77" OLED C2 [OLED77C25LB]
The purpose of morality is to teach you, not to suffer and die, but to enjoy yourself and live. --Ayn Rand
Skriv under ett upprop för en grönare energipolitik: https://energiupproret.se/

Permalänk
Inaktiv
Skrivet av martinot:

Varför vadå?

Permalänk
Medlem

@Paddanx: fast de optimeringarna det pratas om här är just när man kompilerar med LLVM/Clang. Att spel kan optimeras på andra sätt också är en helt annan fråga.

Permalänk
Medlem
Skrivet av martinot:

Varför Linux? Det är gratis och ett överlägset operativsystem. Hade använt det till allt om det inte vore för att spel inte finns i samma utsträckning till det. Jag nästan njuter av att måsta jobba för då använder jag Linux.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av dlq84:

@Paddanx: fast de optimeringarna det pratas om här är just när man kompilerar med LLVM/Clang. Att spel kan optimeras på andra sätt också är en helt annan fråga.

Oki, då är jag med.

Permalänk
Inaktiv
Skrivet av dlq84:

Beror på om spelen till PC kompileras med LLVM/Clang.

LLVM utgör kompilator för shader-kod i AMD's och Intel's öppna drivrutiner för bland annat Linux och FreeBSD, så optimeringar i LLVM kan vara till fördel även i grafiska applikationer som ursprungligen är kompilerade på andra sätt.

Permalänk
Medlem

Utgår ifrån att det inte kommer vara några problem för PS5 att vara bakåtkompatibelt med PS4 då vilkt jag hoppas på. Har hoppat över PS4 helt då jag mest kör på PCn, men kan tänka mig att köpa PS5 sen och bara köra titlar som är unika för PS.

Visa signatur

|ASUS Z170-A||6700K@4.6Ghz||Corsair H50 Scythe GT 1450RPM PnP||16GB Crucial DDR4 2133Mhz@2800Mhz||MSI RTX 3070||Crucial P3 2TB||Corsair HX 1050W||Fractal Design - Define R2 Black Pearl|Citera för svar
Fotoblogg: PlanetStockholm

Permalänk
Medlem
Skrivet av _Merc_:

kanske vi borde döpa nästa generations konsoler till ZenStations.

Eller varför inte PlaystaZen

Permalänk
Medlem

Det är ju helt troligt att nästa generations spelkonsoler kommer att vara Zen optimerade.

Jaguar stillar och stannar utvecklingen rejält för denna generation, den föregående hade för sin tid starkare CPU'er och mycket spel från den 7'e var revolution ifrån den 6'e.

Idag den 8'e ifrån den 7'e har snarare varit evolution.

Visa signatur

MSI X99A GODLIKE GAMING | i7-6950X 4.3GHz | 64GB RAM 3200MHz | RTX 2080

Nintendo Switch | PlayStation 5 | Xbox Series X

Min FZ Profil

Permalänk
Inaktiv
Skrivet av Jackbob:

Varför Linux? Det är gratis

Desto viktigare: Det är fritt, som i FRIhet.

Permalänk
Medlem

Jag skulle ta den här nyheten med en nypa salt till någon har kollat närmare på koden som har checkats in.
Efter vad jag har hört om Jaguar-arkitekturen så skulle den vara ganska lik Zen, så det kanske inte är så mycket som är nytt utan det kanske bara handlar om att optimeringar för Jaguar skulle vara applicerbara på Zen.

Visa signatur

För övrigt anser jag att tobak ska förbjudas.

Permalänk
Avstängd
Skrivet av Nätälskare:

Eller varför inte PlaystaZen

För att att det blir bättre med Zenbox och Zenstation.

Visa signatur

New: Asus x370 prime pro, Ryzen 1700 (@3.925ghz) , Ripjaws V 16GB 3600 MHz (@3200mhz 14c). https://valid.x86.fr/curj7r
Radeon VII.

Permalänk
Datavetare
Skrivet av Paddanx:

Tror inte det är så stort krav.

Bara titta på hur spel på dagens konsoler har ändrats från 1-4 core knapp hantering, till att idag stödea 6-8+ cores mycket bättre. Själva designen och optimeringarna man gör, blir ju baserad på detta. Ja en 4 kärnig högfrekvent CPU kan bruteforcea genom det, men det är suboptimalt på många sätt.

Går faktiskt att hitta enstaka spel från tiden när Skylake-E lanserades där man ser en viss fördel av 6 kärnor. Problemet med senare E-serie modeller var att de fick fler kärnor men deras frekvens matchade inte senare generationer S-serie.

i7-980X spöar i7-2600K, Sandy Bridge har hyfsat mycket bättre IPC jämfört med Nehalem/Westmere

En sak som är väldigt relevant att veta när man pratar om LLVM är att man satsar väldigt mycket på något som kallas auto-vektorisering.

Tekniken som sådan har funnits rätt länge, framförallt i GCC. Men GCC sätt genera kod verkar passa rätt illa för att ta "vanlig" sekventiell skalär kod och lura ut hur den kan utnyttja SIMD. För LLVM accelererade arbetet med denna teknik rejält under 2017 och den kompilatorn genererar förvånasvärt mycket SIMD både på x86 och ARM (har själv jobbat väldigt mycket med LLVM på 64-bitars ARM senaste året, bl.a. jobbat med utveckling av C++11/14/17 standardbibliotek ihop med den kompilatorn).

För att få ett lite smakprov på vad LLVM är kapabel till kring detta, testa följande kod

#include <numeric> #include <vector> int foo(std::vector<int>& v) { return std::accumulate(v.begin(), v.end(), 0); } int bar(std::vector<int>& v, std::vector<int>& w) { return std::inner_product(v.begin(), v.end(), w.begin(), 0); }

Compiler Explorer. Välj t.ex. Clang x86-64 som kompilator och lägg till switcharna "-stdlib=libc++ -O2". De två C++ standardfunktionerna ovan blir helt SIMD-optimerade (med SSE2, lägg till "-stdlib=libc++ -O2 -march=skylake" så blir det AVX kod i stället).

För den som vill se lite vettigt designad assembler, sätt switcharna till "-stdlib=libc++ -O2 -target aarch64-linux-gnu" (samma LLVM kan kompilera för en rad olika CPU-arkitekturer, en annan fördel över i princip alla andra kompilatorer där det krävs en binär per back-end).

Och kanske ännu viktigare: C++17 har till slut gett oss programmerare ett vettigt sätt att tala om för kompilatorn "den här algoritmen uppfyller de krav som ställs på SIMD optimerad kod". Det via göra det möjligt att tagga en kodsnutt som std::parallel_unsequenced_policy.

Varför är detta relevant? Jo, väldigt många saker kan inte parallelliseras över många CPU-kärnor p.g.a. att kostnaden för synkronisering mellan kärnor äter upp vinsten med att använda flera kärnor. SIMD har i princip noll synkroniseringskostnad!

Vidare, om jag kör något över två kärnor kommer de på det stora hela gå dubbelt så fort och dra ungefär dubbelt så mycket ström. Om man kör något via SIMD kommer det typiskt dra ~20-30 % mer ström och ge allt från två till >10 gånger bättre prestanda!

Självklart ska man fortsätta jobba på att kunna utnyttja flera kärnor bättre, men där har vi ändå kommit en bit på vägen. Utanför vetenskapliga beräkningar, kodning av film och några andra specialfall används SIMD idag långt mindre än vad det borde. Den absolut största orsaken är att det fram till 2017 egentligen inte fanns något enkelt sätt att utnyttja det (väldigt få skriver assembler idag, OpenCL kan utnyttja SIMD men det är primärt designat för GPGPU och har onödigt hög overhead för mindre jobb).

Sett till rå CPU-kraft använder man i runda slängar 1-2 % av totala kapaciteten i enkeltrådad skalära kod. Har man 8 kärnor och utnyttjar dessa fullt ut använder man runt 10-20 % av kapaciteten om det handlar om skalär kod. För att nå resten behöver man få ut kraften ur SIMD.

Edit: dock är SIMD mer restriktivt jämfört mer flera kärnor. Är lasten uppgiftsparallell (vilket gäller i princip alla I/O-bundna fall) är SIMD helt fel teknik, är problemet dataparallellt (vilket gäller många beräkningstunga fall) är SIMD ofta väldigt användbart.

Skrivet av Djhg2000:

Tyvärr ganska lite om du inte kör Linux och spelet är kompilerat med LLVM. Det senare lär väl bli rätt vanligt om spelmakarna redan använder den kompilatorn på konsolerna, men problemet med att du måste köra Linux kvarstår då den absoluta majoriteten av spel till Windows kompileras med Microsofts egna kompilator.

Men på den ljusa sidan kan nog spelen från Croteam få en liten prestandaskjuts av förbättringarna (åter igen i Linux), de har ju länge haft utmärkt stöd för Linux och har hjälpt till att förbättra några delsystem också (som Vulkan-stödet för Radeon-kort).

LLVM/Clang användas allt mer även på Windows. En stor orsak är att LLVM/Clang har, på Windows, en front-end som är väldigt nära 100 % kompatibel med MSVC++ vilket lett till att ett ökande antal som kör Visual Studio fortsätter med det men byter ut kompilatorn mot LLVM/Clang. (På Linux och MacOS är LLVMs front-end nästan helt kompatibel med GCC).

Varför skulle man då vilja köra LLVM på Windows? Därför att LLVM/Clang nästan alltid har bättre stöd för modern C++ jämfört med MSVC++.

Och kanske än viktigare är att LLVM har en växande skara analysverktyg som tidigare kunde användas via olika plugin, men senaste versionen av VS har faktiskt officiellt stöd direkt från Microsoft för saker som clang-tidy, clang-format, AddressSanitizer, m.m.

Ryktas om att Microsoft har en diskussion internt om de kanske ska dumpa MSVC++ till förmån för LLVM. Möjligen likt Apple, d.v.s. med lite proprietära tillägg, något som är fullt möjligt givet LLVMs licens. Företag gillar LLVM för dess licens, utvecklarna älskar LLVM för det ekosystem av utvecklingsverktyg som skapats med LLVM som bas (kompilatorn är bara ett verktyg av många)!

Finns även rykten om att Intel kanske överger ICC och flyttar över än mer resurser på LLVM (Microsoft, Intel, ARM, Google, m.fl. är alla exempel på företag som idag lägger rätt mycket resurser på LLVM).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Ok, nästa konsol borde heta PlayZensation.

Visa signatur

Asus Prime X370-Pro / AMD Ryzen 7 3700X / Corsair Vengeance LPX 32 GB DDR4 3000 CL15 / Asus Dual GeForce GTX 1070 OC (1912 MHz) / Fractal Design Define C / Cooler Master Hyper 212 Evo / EVGA SuperNOVA G2 650W ATX 80+ Guld

Permalänk
Medlem
Skrivet av Vangen:

Det är ju helt troligt att nästa generations spelkonsoler kommer att vara Zen optimerade.

Jaguar stillar och stannar utvecklingen rejält för denna generation, den föregående hade för sin tid starkare CPU'er och mycket spel från den 7'e var revolution ifrån den 6'e.

Idag den 8'e ifrån den 7'e har snarare varit evolution.

Njaaah. Tycker det varit evolution sedan den femte generationen, ty det var revolution på riktigt.

Teoretisk prestanda har liten nytta om de inte kan prestera i praktiken.

https://youtu.be/UVc6W6M64IY
Här har du ett lir från den sjätte generationen som inte är långt i från många spel ur den sjunde, exempelvis.

Skickades från m.sweclockers.com

Permalänk
Medlem

@Yoshman: Trevligt inlägg, skulle bara vilja lägga till att AMD också gjort en egen LLVM/Clang kompilator (AOCC) med proprietära tillägg samt för intern utveckling innan de pushar saker upstream och dessutom använder LLVM för shaderkompilering för OpenGL/Vulkan i sina mesa-drivrutiner och tänker även byta över till det för Vulkan på Windows i framtiden.

Permalänk
Medlem

En sak jag tänkt på gällande PS5 är att minnet kommer bli historiskt lite uppgraderat. PS1 till PS2 ökade 16x från 2MB till 32MB. PS2 till PS3 16x från 32MB till 512MB (Om man lägger ihop med VRAM) PS3 till PS4 16x från 512MB till 8GB. Men att PS5 skulle få 128GB RAM känns extremt osannolikt. Även 64GB känns osannolikt. 16-32GB lär det snarare bli. En ökning på mellan 2-4x.

Visa signatur

Asus B650 TUF, Ryzen 7600X, 32GB 6000mhz DDR5, Corsair RM1000X, Powercolor 6900XT Red Devil Ultimate, 360mm Corsair AIO, MSI Velox 100P Airflow. Kingston KC3000 M.2.

Permalänk
Datavetare
Skrivet av Zarper:

@Yoshman: Trevligt inlägg, skulle bara vilja lägga till att AMD också gjort en egen LLVM/Clang kompilator (AOCC) med proprietära tillägg samt för intern utveckling innan de pushar saker upstream och dessutom använder LLVM för shaderkompilering för OpenGL/Vulkan i sina mesa-drivrutiner och tänker även byta över till det för Vulkan på Windows i framtiden.

Är medveten om AOCC och om den primärt är tänkt för internt bruk kanske det är vettigare. För har inte ens sett någon på nätet som hävdar att de använder AOCC och prestandamässigt är det ofta minst lika bra att köra senaste LLVM jämfört med AOCC (som typiskt ligger en/två versioner efter) även på AMD.

LLVM/Clang har stöd för Nvidias, AMDs och Intels GPUer (får nog ändå ses som lite beta-stämpel just nu, men viktigaste är ju att det går framåt)! Det kan bli riktigt trevligt och är nog precis vad GPGPU-tekniken är i kraftigt behov av för att de ska rulla på lite mer.

Lite intressant att LLVM/Clang vektoriserar rätt olika om man använder -march=znver1 jämfört med t.ex. -march=bdver4 (Excavator). Just FPU-delen är på hög nivå rätt lika på Zen och Bulldozer. Alla CPUer från AMD/Intel sedan Bulldozer/SandyBridge stödjer AVX men -march=znver1 genererar nästan uteslutande SSE kod (blir i princip exakt samma assembler som för Nehalem/Westmere). Det medan Bulldozer/SandyBridge och senare genererar AVX om möjligt

(AVX är mer än bara 256-bitars instruktioner, AVX tillåter 128 och 256-bitars operationer med tre operander medan SSE endast ger två operander så man skriver alltid över ett input-argument -> inte vad kompilatordesigners vill se).

I teoretisk kapacitet är det ingen skillnad mellan att använda SSE/AVX på Jaguar, Bulldozer-serien och Zen. Men rent praktiskt borde ändå AVX ge lite bättre prestanda då det belastar avkodningsteget mindre. Något står inte helt rätt till med Zen på denna punkt, har kör ett hel del på min Ryzen och sett att man typiskt får några procent lägre prestanda med AVX jämfört med SSE (men handlar om enstaka procent, så ingen katastrof). Jaguar ser det mer förväntade, d.v.s. någon enstaka procent högre prestanda.

Intel ser nära nog dubbel prestanda med AVX (i det som är AVX optimerat, man ska inte på något sätt vänta sig att totalprestanda blir dubbelt så hög utanför saker som matrisberäkningar och liknande). Blir inte riktigt dubbelt då klockfrekvensen normalt sjunker med AVX + fallen när man inte fullt ut kan nyttja SIMD ökar ju ju "bredare" instruktioner man använder.

Det stora problemet för de som skriver kompilatorer är ju bakåtkompatibilitet. Majoriteten av alla program kompileras än idag endast med SSE2 stöd (vilket är minikravet för x86_64, men det är Pentium 4 nivå!).

En av de få undantagen är "Clear Linux" där minikravet är Nehalem, d.v.s. SSE4.2. I vissa program ser man ingen större skillnad, men finns rätt många exempel där man ser 30 % prestandavinst bara genom att låta dagens kompilatorer utnyttja lite mer moderna instruktioner.

I Linux har man ändå lite nytta av sin moderna dator. C-biblioteket använder t.ex. alltid SSE3 för att accelerera strängoperationer om man har en tillräckligt ny CPU (detekteras dynamiskt vid boot). Till och med finesser som TSX-NI används på Linux (av pthreads) om det finns stöd. Rätt mycket sämre ställt med det på Windows

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av BrottOchStraff:

Utgår ifrån att det inte kommer vara några problem för PS5 att vara bakåtkompatibelt med PS4 då vilkt jag hoppas på. Har hoppat över PS4 helt då jag mest kör på PCn, men kan tänka mig att köpa PS5 sen och bara köra titlar som är unika för PS.

Jo jag hoppas på samma sak, fast jag äger en PS4 för just dom exklusiva titlarna som jag tycker personligen är värda det. Men med tanke på hur dom hanterade bakåtkompatibilitet idag via Playstation Now så kan jag inte hjälpa att inte bli lite orolig för deras framtida hantering också. Om man nu ska ge Microsoft och Xbox ONE en klapp på axeln idag så är det ju just för hur dom hanterar bakåtkompatibilitet. Men det handlar nog om en fundamental inställning hos företagen som skiljer dem åt då Sony/Playstation vart överraskade och uttalade sig om att dom inte trodde att MS skulle utannonserade bakåtkompatibilitet överhuvudtaget. Men iom att PS4 och PS5 antagligen kommer ligga varandra närmare i grunden än vad PS3 och PS4 gör pga cellprocessorn så kanske det blir annorlunda den här gången, man får ju hoppas på det iaf.

Visa signatur

PC: Ryzen 7 7700X | Sapphire Pulse RX 7900 XTX | 6000MHz 2x16GB | ASUS X670E-F

Tillbehör: G903 | PowerPlay | G513 | Pro X | Brio 4k | LG 34GN850 | Xbox Elite Controller Series 2

Konsol: Playstation 5

Permalänk
Medlem
Skrivet av dagas:

En sak jag tänkt på gällande PS5 är att minnet kommer bli historiskt lite uppgraderat. PS1 till PS2 ökade 16x från 2MB till 32MB. PS2 till PS3 16x från 32MB till 512MB (Om man lägger ihop med VRAM) PS3 till PS4 16x från 512MB till 8GB. Men att PS5 skulle få 128GB RAM känns extremt osannolikt. Även 64GB känns osannolikt. 16-32GB lär det snarare bli. En ökning på mellan 2-4x.

Dom kan inte sälja konsoler med 32gb ram. Inte med dessa priser. Sen får man fråga sig varför dom ens skulle behöva det. Kan man ens multitaska? Om det blir någon typ av dedikerat grafikminne lär de stanna kvar på 8.

Skickades från m.sweclockers.com

Permalänk
Skrivet av aholman:

Dom kan inte sälja konsoler med 32gb ram. Inte med dessa priser. Sen får man fråga sig varför dom ens skulle behöva det. Kan man ens multitaska? Om det blir någon typ av dedikerat grafikminne lär de stanna kvar på 8.

Skickades från m.sweclockers.com

Om de ska räkna med en bra livslängd får de se till att inte snåla på ram. Om de inte är sugna att göra som nintendo med n64 och ha den redo för uppgraderings minne. Sony och MS har nog ganska bra möjligheter att förhandla priser när de kommer till samsung och ber om minne till sina nästa konsoler.

Visa signatur

Ryzen 5 7600
Rx 6650xt
32Gb

Permalänk
Medlem
Skrivet av aholman:

Dom kan inte sälja konsoler med 32gb ram. Inte med dessa priser. Sen får man fråga sig varför dom ens skulle behöva det. Kan man ens multitaska? Om det blir någon typ av dedikerat grafikminne lär de stanna kvar på 8.

Skickades från m.sweclockers.com

I så fall kan man lika gärna fråga sig varför PS4 skulle ha 8 GB RAM?

PS4 släpptes med 16 stycken då helt nya 4 Mb-moduler. Att PS5 släpps med 16 stycken 16 Mb-moduler (som är på G redan i år) är iaf inte helt otänkbart.