Nya detaljer läckta om Ryzen 9900X3D och 9950X3D

Permalänk
Medlem

Inget spel är väl nästan sant - nästan inga är närmare sanningen - MS direct storage api på windows gör som Sony löste det men så gott som ingen har implementerat det i spelen ännu https://www.corsair.com/us/en/explorer/diy-builder/storage/th...

Så möjligheterna finns. Men har många äldre hårdvara så vad är nyttan att lägga tid på att implementera det. I den ljusa framtiden kanske pc-ägarna får någon nytta av det.

Permalänk
Medlem
Skrivet av Maximo:

Trots det finns det inget spel på PC som laddar så snabbt som PS5 ännu... konstigt. PS5s ssd lösning var och är fortfarande snabbast för spel även fast diverse youtubeprofiler som inte förstog tekniken försökt håna Sony för det uttalandet.

(ledtråd, det handlar inte om PCIe 4.0)

Hårdvarumässigt så är det PCIe 4.0

När först Sony började prata om PS5 så var det långt innan lansering och då fanns det inte PC att köpa med PCIe 4.0
Sen kör PS5 även andra optimeringar med någon komprimering.
Men om man säger okomprimerad data, "RAW", Då är det PCIe 4.0 med 4 banor.
Så motsvarande att ladda hem eller ladda upp en packad fil så kan inte PS5 komma upp i mer än teoretiska 8GB/s med 7,något i verkligheten.
Men sen med komprimering så kan det motsvara mer okomprimerad data.
RAM minnet har ju mycket högre bandbredd. Så om du kopierar komprimerad data från SSD till RAM och sen packar upp det i RAM så kan det gå snabbare om du har tillräckligt utrymme att bolla runt saker.

Men rent fysiskt så är det fortfarande PCIe 4.0 gränssnitt mot SSD.

Men 'tricket' där är ju om man pratar om en framtidsprodukt.
"Den produkten vi släpper i framtiden blir bättre än de produkter som finns idag"

Alltså jag menar inte att PS5 är en framtidsprodukt idag.
Men första gången PS5 nämndes var långt innan lansering.

Permalänk
Medlem

Ett exempel på något jag nog egentligen inte behöver... Men om 9950X3D inte tappar för mycket i multitrådat så finns det en risk att min 7950X blir utbytt. För... ja... jag har ett problem
Om vi håller det mellan oss och ni lovar inte säga något till min fru... I en låda ligger en 3950X, 128GB ram och ett Aorus X570 Master som gav väg för mitt 7950X sytstem... så om det blir en 9950X3D så antar jag att jag behöver hitta en bättre lösning än att lägga saker i en låda.

Ungarna har haft rätt ok system som de fått ärva, men nu sitter nog någon på typ en 4970K eller något så det kanske är dags att låta saker vandra ner i familjeträdet igen

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 96gb DDR5 6000 | Ryzen 9950X3D | 5090
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem
Skrivet av Swedishchef_90:

Nu är väl laddtid inget problem i någon spel? Eller?

Det är väl upp till var och en, att PS5 laddar instant hela tiden är riktigt skönt enligt mig och jag hade gärna sett det i mina PC spel.

Möjliggör ju också speldesigner där spelaren byter miljö ögonblickligen ala portal portaler.

Permalänk
Medlem
Skrivet av GuessWho:

Hårdvarumässigt så är det PCIe 4.0

När först Sony började prata om PS5 så var det långt innan lansering och då fanns det inte PC att köpa med PCIe 4.0
Sen kör PS5 även andra optimeringar med någon komprimering.
Men om man säger okomprimerad data, "RAW", Då är det PCIe 4.0 med 4 banor.
Så motsvarande att ladda hem eller ladda upp en packad fil så kan inte PS5 komma upp i mer än teoretiska 8GB/s med 7,något i verkligheten.
Men sen med komprimering så kan det motsvara mer okomprimerad data.
RAM minnet har ju mycket högre bandbredd. Så om du kopierar komprimerad data från SSD till RAM och sen packar upp det i RAM så kan det gå snabbare om du har tillräckligt utrymme att bolla runt saker.

Men rent fysiskt så är det fortfarande PCIe 4.0 gränssnitt mot SSD.

Men 'tricket' där är ju om man pratar om en framtidsprodukt.
"Den produkten vi släpper i framtiden blir bättre än de produkter som finns idag"

Alltså jag menar inte att PS5 är en framtidsprodukt idag.
Men första gången PS5 nämndes var långt innan lansering.

Jo fasst det är ju inget trick. Sony sa aldrig att PCIe 4.0 var snabbare än något på PC. Deras lagringslösning med inbyggd komprimering, egna controllers och mjukvarustöd gör det snabbare för speländamål än något annat till PC är vad dom sa och det var aldrig ett trick.

Permalänk
Medlem
Skrivet av Maximo:

Det är väl upp till var och en, att PS5 laddar instant hela tiden är riktigt skönt enligt mig och jag hade gärna sett det i mina PC spel.

Möjliggör ju också speldesigner där spelaren byter miljö ögonblickligen ala portal portaler.

Dem 5 sekunder jag brukar vänta är ju inte olidliga... Iofs
ratchet and clank har ju DS och då är det knappt laddtider heller.

Visa signatur

Intel i5 12600k OC 5.2GHz | Arctic Freezer II 240 | MSI Pro Z690 A | 2x 16Gb Corsair LPX 3200MHz | Asus Tuf 4070 Ti | Corsair Rm850x V3 | 2x 1Tb Samsung 980 m2 | 4x Noctua A14x25 2xT30, 1x Noctua A12x25, 3x ek loop

Permalänk
Datavetare
Skrivet av DST:

högre ipc i vissa applikationer, dock ej högre ipc i alla applikationer inkluderat spel.

sen att arm cpuer inte ens kan köra alla applikatiner som en gammel x86 cpu kan är oxå en stor nackdel, även när man kör genom rosetta eller vad det nu heter.

Korrekt då det än bara finns M3 som fläktlös, ställer man desktop Zen 5 vs M3 är det rätt jämnt skägg i absolut prestanda per kärna och varierar från fall till fall vem som "vinner".

Däremot är M4 rätt konsekvent snabbare, även i spel (i de spel som faktiskt finns som "native ARM64", t.ex. WoW, BG3, d.v.s inte så många så kanske inte superrelevant). Enda Zen 5 kanske vinner är det som är AVX-512 optimerat, men inte ens det är säkert då M4 gick till ARMv9 så den har SVE2 stöd ("AVX-512 done right").

Tycker just det är en av 2024 största händelser, att snabbaste desktop x86 CPUerna inte längre är världens snabbaste CPU-kärna. I många fall är de inte ens tvåa, utan hamnar även efter Arm X925 och Qualcomm Oryon 2 (båda CPU-kärnor som kommer sitta i 2025 års high-end Androider, SoC:ar med dessa släpptes i oktober i år).

Men PC och kanske specifikt X3D har ändå relevans just då PC-spel rätt mycket fortfarande är rätt hårt bundet till Windows/x86.

Visa signatur

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

Permalänk

Verkar som många tolkar den här nyheten som att 9950X som har 4.3 GHz BAS och 5.7 GHz med turbo att 9950X3D skulle nå upp till 5,7 turbo på båda CCD. Läser man noga står det endast att de har samma bas på 4.3, vilket är ganska ointressant?

Visa signatur

I've somehow been WASDing my whole life

www.swecloker.com klick bait och betalda annosner. Om du vill veta något om överklockning dröm vidare till 90-talet

Permalänk
Medlem
Skrivet av hölmiz:

Tvärsega? Även billigaste MacBook Air har ju högre IPC än någon processor från Intel eller AMD. Lägg till en fläkt i MacBook Pro och även laster över tid går fint. Sedan så kommer de ju med ganska lite ram och ssd, men det är ju en annan sak.

Har bara erfarenhet av Macbook från 2010ish, det var ju inte riktigt jämförbart med vad man använde hemma trots att den var väldigt naken systemmässigt och ganska dyr dessutom. Den erfarenheten och att jag vet att det jag använder en dator till är svårt / omöjligt att göra på en Mac så har jag aldrig blickat bakåt.

Visa signatur

PSU: Corsair HX1200i Case: Phanteks NV9
GPU:
RTX 4090 TUF OC CPU: Ryzen 9800X3D RAM: Corsair Dominator 96GB
Motherboard: Asus TUF X870-Plus Wifi Cooler: Noctua NH-D15 G2

Permalänk
Medlem

En 9900X3D eller 9950X3D blir mer och mer intressant. Beroende på pris tror jag en 9900X3D räcker för mig, nuvarande 12 trådar (5900X) duger för typ allt jag gör, men man vill åt den där extra prestandan per kärna. Och man har ett "vill-ha-problem" som är bankkontots fiende.

Visa signatur

Skrivet med hjälp av Better SweClockers
PC: Ryzen 9 5900X | RTX 4080 Super 16GB | G.Skill Trident Z Neo 64GB 3600MHz CL16 | 12TB NVMe SSD - 4TB SATA SSD = total 16TB SSD + Seagate IronWolf 10TB internal HDD | Synology DS920+ w/20GB RAM SHR 48TB
Skärmar: ASUS PG32UCDM 32" 4K OLED 240Hz, Acer Predator XB323UGX 32" 1440p 270Hz
Foto:
Canon 80D & 60D + Canon 17-55/2.8 IS, Canon 10-22, Canon 70-200/2.8L IS II, Canon 100/2.8L IS Macro

Permalänk
Medlem
Skrivet av Maximo:

Jo fasst det är ju inget trick. Sony sa aldrig att PCIe 4.0 var snabbare än något på PC. Deras lagringslösning med inbyggd komprimering, egna controllers och mjukvarustöd gör det snabbare för speländamål än något annat till PC är vad dom sa och det var aldrig ett trick.

Man kan säga att helheten består av flera delar och för PS5 så var/är en av dessa delar PCIe 4.0

Sony visste om att de hade planer på att utveckla, producera och sälja PlayStation 5 långt innan releasedagen.

Det är möjligt att göra en produkt och bara göra en "tyst lansering"
Att man inte nämner produkten före försäljningsstart.
Men många företag pratar om sina kommande produkter innan de finns att köpa för att bygga en hype och öka köpintresset.

Alltså "tricket" är att prata om produkter innan lansering för att bygga hype.
Det är väldigt vanligt att företag gör det.

Sony visste att de skulle använda AMD Zen 2 baserad krets i PS5 långt innan försäljningsstart.

Man kan säga att vi båda kommer med en del av sanningen. Att vi båda har åtminstone delvis rätt.

Men om du vill vinna i en slags du har 100% rätt och jag har 100% fel sätt, så...

Bevisa då dessa saker;

1. M.2 NVME SSD PCIe 3.0 är lika snabb eller snabbare än M.2 NVME SSD PCIe 4.0

2. Bevisa att Sony inte visste att de skulle använda Zen 2 baserad krets före Zen 2 (Ryzen 3000 serien) processorer och datorer börjat säljas till slutkonsument.

3. Att marknadsföring bara är ett hittepå som inte existerar.

Permalänk
Medlem
Skrivet av 13ers3rk:

Har bara erfarenhet av Macbook från 2010ish, det var ju inte riktigt jämförbart med vad man använde hemma trots att den var väldigt naken systemmässigt och ganska dyr dessutom. Den erfarenheten och att jag vet att det jag använder en dator till är svårt / omöjligt att göra på en Mac så har jag aldrig blickat bakåt.

2010 fanns inte ens Sandy Bridge på PC,
Sandy Bridge lanserades 2011.

Jag skaffade en begagnad Mac Book Pro 15" 2011 med Sandy Bridge quad core.
Tror det var den första portabla Quad core Macen ?
Men mitt exemplar började strula efter några dagar och sen ville den inte boota alls.
Man kan tänka sig att den hade något strul och om förra ägare hade "bakat" moderkortet eller något, jag vet inte.
Var privat via Tradera och den fungerade när jag mottog den så svårt att göra något.
Så Jag skaffade en helt ny Mac Book Pro 13" (Coffe Lake) med garanti istället (fungerar fortfarande).

Apple hade även två olika "generationer" Sandy Bridge.
Om det var early 2011 och late 2011 eller något sånt.
Där den tidigare (som jag skaffade begagnad) bara hade USB 2.0 och den senare hade USB 3.0
Sandy Bridge var sista generationen för Apple där man kunde uppgradera både RAM och HDD som man ville (2.5" SATA, går att använda SSD).
Önskade lite att Apple hade fortsatt med uppgraderingsbara datorer någon generation till.
Hade hellre tagit en med Ivy Bridge eller Haswell där jag fortfarande kunde byta minne och lagring.
Men hade ju inte varit så snabb idag ändå.

Känns som att även inom PC så var Sandy Bridge - Kaby Lake en era,
Att jämföra en före 2011 Mac blir inte riktigt rättvist om man inte jämför med en PC som är ännu mer retro.

Säg om du någon gång de senaste åren har använt en Core 2 PC så tror jag inte att du tyckte den var speciellt snabb heller.

Permalänk
Medlem
Skrivet av GuessWho:

Man kan säga att helheten består av flera delar och för PS5 så var/är en av dessa delar PCIe 4.0

Sony visste om att de hade planer på att utveckla, producera och sälja PlayStation 5 långt innan releasedagen.

Det är möjligt att göra en produkt och bara göra en "tyst lansering"
Att man inte nämner produkten före försäljningsstart.
Men många företag pratar om sina kommande produkter innan de finns att köpa för att bygga en hype och öka köpintresset.

Alltså "tricket" är att prata om produkter innan lansering för att bygga hype.
Det är väldigt vanligt att företag gör det.

Sony visste att de skulle använda AMD Zen 2 baserad krets i PS5 långt innan försäljningsstart.

Man kan säga att vi båda kommer med en del av sanningen. Att vi båda har åtminstone delvis rätt.

Men om du vill vinna i en slags du har 100% rätt och jag har 100% fel sätt, så...

Bevisa då dessa saker;

1. M.2 NVME SSD PCIe 3.0 är lika snabb eller snabbare än M.2 NVME SSD PCIe 4.0

2. Bevisa att Sony inte visste att de skulle använda Zen 2 baserad krets före Zen 2 (Ryzen 3000 serien) processorer och datorer börjat säljas till slutkonsument.

3. Att marknadsföring bara är ett hittepå som inte existerar.

Jag hänger inte med dina tankegångar. Sony sa aldrig att deras SSD skulle vara snabbare än någon SSD på PC med eller utan PCIE 4, det var en medveten felcitering som några clickbaitjournalister lanserade.

Finns mycket tvivelaktig pr som Sony håller på med, deras "8K gaming" t.ex. men att dom har den snabbaste tekniken för att ladda spel i deras PS5 är en korrekt produktbeskrivning och givetvis gör dom rätt i att poängtera detta i deras marknadsföring.

Permalänk
Medlem
Skrivet av Yoshman:

Enda Zen 5 kanske vinner är det som är AVX-512 optimerat, men inte ens det är säkert då M4 gick till ARMv9 så den har SVE2 stöd ("AVX-512 done right").

M4 har inte stöd för SVE/SVE2 däremot finns det stöd för SME (Scalable Matrix Extension) (och SSVE).
Jag blir lite nyfiken på vad du menar med "AVX-512 done right"?
Båda instruktionsuppsättningarna innehåller bra saker men det är inte direkt så att man sitter på x86 och önskar att man hade tillgång till SVE istället. Det finns en hel del "problem" med SVE också t.ex. är det betydligt krångligare att skriva algoritmer som använder permutes när man inte har en fast registerlängd, sorting networks osv. Det finns luckor i vilken elementstorlek man stödjer för vissa instruktioner t.ex. arms motsvarighet till compress som bara går ner till 32 bitar, AVX512 har stöd för 8/16 bitars element vilket är väldigt användbart om man skriver simd algoritmer för text (expand motsvarighet saknas helt). Hur man hanterar maskning/predication känns mer enhetligt på x86.
Dessutom verkar de flesta nöja sig med att implementera 128 bitars SVE med några enstaka 256 bitars undantag. Det hade kanske varit bättre med neon256 + maskning istället för att krångla till det variabel vektorlängd för simd och bara haft det för streaming varianterna.

Permalänk
Datavetare
Skrivet av jclr:

M4 har inte stöd för SVE/SVE2 däremot finns det stöd för SME (Scalable Matrix Extension) (och SSVE).
Jag blir lite nyfiken på vad du menar med "AVX-512 done right"?
Båda instruktionsuppsättningarna innehåller bra saker men det är inte direkt så att man sitter på x86 och önskar att man hade tillgång till SVE istället. Det finns en hel del "problem" med SVE också t.ex. är det betydligt krångligare att skriva algoritmer som använder permutes när man inte har en fast registerlängd, sorting networks osv. Det finns luckor i vilken elementstorlek man stödjer för vissa instruktioner t.ex. arms motsvarighet till compress som bara går ner till 32 bitar, AVX512 har stöd för 8/16 bitars element vilket är väldigt användbart om man skriver simd algoritmer för text (expand motsvarighet saknas helt). Hur man hanterar maskning/predication känns mer enhetligt på x86.
Dessutom verkar de flesta nöja sig med att implementera 128 bitars SVE med några enstaka 256 bitars undantag. Det hade kanske varit bättre med neon256 + maskning istället för att krångla till det variabel vektorlängd för simd och bara haft det för streaming varianterna.

Huvudanledningen till att det är bättre är för att SIMD rent generellt är en nischfunktion och väldigt bred SIMD i en CPU är en extrem nisch på konsumentprodukter.

Vilket man också ser i att endast 2 st ARM64 implementationer så här långt har valt en SVE-implementation som är >128 bitar. Att då samma binär kan användas oavsett om det fysiskt är 128-bit, 256, 512, etc är högst värdefullt. Det kommer bli ännu mer värdefullt om/när C++, Rust, Go, C#, m.fl. någonsin får in sitt respektive standard-SIMD någongång, för när man använder det behöver man sikta på minsta gemensamma nämnare ändå.

AVX-512 har städad upp flera saker och mask-registeret är helt klart värdefull. Vilket säker är orsaken till att Intel tycker det är värt besväret att skapa AVX10 där 512-bit fysisk bred inte är ett krav. Så konsumentmodellerna lär bara få 256-bit AVX10, men även det kräver anpassning i binären.

Är övertygad att utanför specifika nischer är det mer värt att ha 4 st 128-bit SIMD "fulla" ALUs per kärna (vilket M-serien och senare modeller av Cortex X samt även Intel Skymont har) jämfört med 2 st 256/512-bit fulla ALUs + några till med specifika funktioner, som Lion Cove / Zen 4 (256-bit) samt Zen 5 (512-bit) har. Men självklart finns undantag!

NEON-256 hade varit sämre än som nu trycka in fler 128-bit ALUs! Kapaciteten hos 4 st 128-bit ALUs är ju samma som 2 st 256-bit, men flexibiliteten är högre hos den första. Nackdelen är att det tar fler transistorer, så där ligger kostnaden i flexibiliteten.

Designen av SVE gör att konsumentmodeller kan stanna på 128-bit SIMD utan att hindra binärer från att utnyttja nischade CPU-designer. För saker som kan utnyttja stor SIMD-bredd är GPGPU nästan alltid att föredra (den är typiskt heltalsfaktorer snabbare), men även här finns så klart undantag med de är extrema nischer och för det tillåter SVE specialdesigner (finns ju en superdator med 512-bit fysisk SVE).

Hade missat att SVE2 är valbart även för ARMv9 då alla ARMv9 implementationer innan M4 (M3 och tidigare än ARMv8) har SVE2 stöd. Då det är valbart känns det rätt rimligt för Apple att skippa stödet då de inte behöver tänka på några andra än sig själv + SVE2 har väldigt begränsad nytta i en konsumentdator (framförallt i de med världens just nu snabbaste iGPUer med väsentligt bättre SIMD-kapacitet än CPUn). Att de ändå implementerat SME2 har garanterat något med AI-hypen att göra, SME2 lär vara mer värdefull där än SVE2.

Då lär det vara just SVE2 optimeringar i de enstaka fall där M4 ser större hopp över M3 (mot de normala 15-20 %), vilket är rätt mycket samma nischfall som Zen 5 ser extra stort hopp över Zen 4 i (för där handlar det om 256->512 bit fysiskt AVX-512 stöd). Skymont ser ju enorm ökning över Gracemont i SIMD som del i att den gick till 4 st 128-bit SIMD ALUs (var väl bara 3 st innan, varav 2 med FMA (mot 4/4 i Skymont)?).

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 Yoshman:

Huvudanledningen till att det är bättre är för att SIMD rent generellt är en nischfunktion och väldigt bred SIMD i en CPU är en extrem nisch på konsumentprodukter.

Vilket man också ser i att endast 2 st ARM64 implementationer så här långt har valt en SVE-implementation som är >128 bitar. Att då samma binär kan användas oavsett om det fysiskt är 128-bit, 256, 512, etc är högst värdefullt. Det kommer bli ännu mer värdefullt om/när C++, Rust, Go, C#, m.fl. någonsin får in sitt respektive standard-SIMD någongång, för när man använder det behöver man sikta på minsta gemensamma nämnare ändå.

AVX-512 har städad upp flera saker och mask-registeret är helt klart värdefull. Vilket säker är orsaken till att Intel tycker det är värt besväret att skapa AVX10 där 512-bit fysisk bred inte är ett krav. Så konsumentmodellerna lär bara få 256-bit AVX10, men även det kräver anpassning i binären.

Är övertygad att utanför specifika nischer är det mer värt att ha 4 st 128-bit SIMD "fulla" ALUs per kärna (vilket M-serien och senare modeller av Cortex X samt även Intel Skymont har) jämfört med 2 st 256/512-bit fulla ALUs + några till med specifika funktioner, som Lion Cove / Zen 4 (256-bit) samt Zen 5 (512-bit) har. Men självklart finns undantag!

NEON-256 hade varit sämre än som nu trycka in fler 128-bit ALUs! Kapaciteten hos 4 st 128-bit ALUs är ju samma som 2 st 256-bit, men flexibiliteten är högre hos den första. Nackdelen är att det tar fler transistorer, så där ligger kostnaden i flexibiliteten.

Designen av SVE gör att konsumentmodeller kan stanna på 128-bit SIMD utan att hindra binärer från att utnyttja nischade CPU-designer. För saker som kan utnyttja stor SIMD-bredd är GPGPU nästan alltid att föredra (den är typiskt heltalsfaktorer snabbare), men även här finns så klart undantag med de är extrema nischer och för det tillåter SVE specialdesigner (finns ju en superdator med 512-bit fysisk SVE).

Hade missat att SVE2 är valbart även för ARMv9 då alla ARMv9 implementationer innan M4 (M3 och tidigare än ARMv8) har SVE2 stöd. Då det är valbart känns det rätt rimligt för Apple att skippa stödet då de inte behöver tänka på några andra än sig själv + SVE2 har väldigt begränsad nytta i en konsumentdator (framförallt i de med världens just nu snabbaste iGPUer med väsentligt bättre SIMD-kapacitet än CPUn). Att de ändå implementerat SME2 har garanterat något med AI-hypen att göra, SME2 lär vara mer värdefull där än SVE2.

Då lär det vara just SVE2 optimeringar i de enstaka fall där M4 ser större hopp över M3 (mot de normala 15-20 %), vilket är rätt mycket samma nischfall som Zen 5 ser extra stort hopp över Zen 4 i (för där handlar det om 256->512 bit fysiskt AVX-512 stöd). Skymont ser ju enorm ökning över Gracemont i SIMD som del i att den gick till 4 st 128-bit SIMD ALUs (var väl bara 3 st innan, varav 2 med FMA (mot 4/4 i Skymont)?).

Jag skulle inte kalla parsning av t.ex. json, xml, uft-8.. sortering, filtrering, sökning, hashing osv.. för nischfunktion eller extrem nisch.

Jag är inte helt säker på att jag uppfattat det rätt men om jag tolkar de delar som faktiskt handlade om AVX512 vs. SVE2 rätt så är det själva scalability delen med variabel vektorlängd som du menar gör SVE "AVX-512 done right"?

På pappret verkar det väldigt smidigt med variabel vektorlängd men det gör det betydligt krångligare att programmera vissa typer av algoritmer. Allt handlar inte om enkla fp algoritmer där man kan använda SoA layout. Det finns många problem man kan optimera med simd som använder AoS och då är det enklare med fast vektorlängd. Använder man SVE måste man komma på nåt smart sätt att försöka beräkna index för shuffles dynamiskt utifrån vilken hårdvara man kör på och i vissa fall använda olika kodvägar beroende på vilket stöd för vektorlängd som faktiskt finns i hårdvaran. Problemet är att man måste se till att det fungerar hela vägen från 128 bitar upp till 2048 vilket innebär att den typen av kod måste testas via en emulator. Just nu ser det ut som framtiden för SVE är 128 bitar så det är mycket krångel för kod som antagligen aldrig kommer köras på något annat än 128 bitars SVE. Att man kan köra samma binär på utstickare som fujitsus 512 bitars versioner är helt ointressant eftersom det handlar om HPC och då programmerar man mot specifik hårdvara.

Det blir också lita av ett hönan och ägget problem. Varför skriva om neon kod till sve idag om vinsten är ganska liten? Därför jag är inne på att det kanske hade varit bättre att bara lägga till instruktioner till neon med maskning och en storlek större vektorer som tillval och lämna resten åt acceleratorer som t.ex. SME, NPU, GPU beroende på latens.

Varför är just 4 x 128 bitar det som är mest flexibelt och bäst? Varför inte gå ner till 8 x 64?
Det handlar inte bara om fler transistorer och sämre energieffektivitet när man går ner i vektorstorlek utan varje instruktion tar ju även upp OoO resurser i form av en reorder slot, 128 stores? du har även en store queue..

Jag skulle nog säga att AVX512 faktiskt är "AVX-512 done right". Det största problemet med AVX512 är hur Intel valde att hanterar utrullningen och osäkerheten för stöd i framtiden för olika plattformar. Nu har AMD AVX512 och Intel har sitt AVX10.2 förslag på gång så det är inte längre ett problem. Jag hade helt klart föredragit om Intel skippat 10.2 och kört zen4 varianten för e-cores med full shuffle enhet, resten inklusive load/store som 256 bitar och dragit ner på antalet register. Uppenbarligen fungerar det väldigt bra vilket AMD har bevisat.

Permalänk
Datavetare
Skrivet av jclr:

Jag skulle inte kalla parsning av t.ex. json, xml, uft-8.. sortering, filtrering, sökning, hashing osv.. för nischfunktion eller extrem nisch.

Jag är inte helt säker på att jag uppfattat det rätt men om jag tolkar de delar som faktiskt handlade om AVX512 vs. SVE2 rätt så är det själva scalability delen med variabel vektorlängd som du menar gör SVE "AVX-512 done right"?

På pappret verkar det väldigt smidigt med variabel vektorlängd men det gör det betydligt krångligare att programmera vissa typer av algoritmer. Allt handlar inte om enkla fp algoritmer där man kan använda SoA layout. Det finns många problem man kan optimera med simd som använder AoS och då är det enklare med fast vektorlängd. Använder man SVE måste man komma på nåt smart sätt att försöka beräkna index för shuffles dynamiskt utifrån vilken hårdvara man kör på och i vissa fall använda olika kodvägar beroende på vilket stöd för vektorlängd som faktiskt finns i hårdvaran. Problemet är att man måste se till att det fungerar hela vägen från 128 bitar upp till 2048 vilket innebär att den typen av kod måste testas via en emulator. Just nu ser det ut som framtiden för SVE är 128 bitar så det är mycket krångel för kod som antagligen aldrig kommer köras på något annat än 128 bitars SVE. Att man kan köra samma binär på utstickare som fujitsus 512 bitars versioner är helt ointressant eftersom det handlar om HPC och då programmerar man mot specifik hårdvara.

Det blir också lita av ett hönan och ägget problem. Varför skriva om neon kod till sve idag om vinsten är ganska liten? Därför jag är inne på att det kanske hade varit bättre att bara lägga till instruktioner till neon med maskning och en storlek större vektorer som tillval och lämna resten åt acceleratorer som t.ex. SME, NPU, GPU beroende på latens.

Varför är just 4 x 128 bitar det som är mest flexibelt och bäst? Varför inte gå ner till 8 x 64?
Det handlar inte bara om fler transistorer och sämre energieffektivitet när man går ner i vektorstorlek utan varje instruktion tar ju även upp OoO resurser i form av en reorder slot, 128 stores? du har även en store queue..

Jag skulle nog säga att AVX512 faktiskt är "AVX-512 done right". Det största problemet med AVX512 är hur Intel valde att hanterar utrullningen och osäkerheten för stöd i framtiden för olika plattformar. Nu har AMD AVX512 och Intel har sitt AVX10.2 förslag på gång så det är inte längre ett problem. Jag hade helt klart föredragit om Intel skippat 10.2 och kört zen4 varianten för e-cores med full shuffle enhet, resten inklusive load/store som 256 bitar och dragit ner på antalet register. Uppenbarligen fungerar det väldigt bra vilket AMD har bevisat.

Det kvittar faktiskt om något på pappret är bättre, och argumenterar inte emot att AVX-512 mycket väl kan vara mer effektiv för specifika fall (tvärtom vet jag att det är så), om tekniken är utformad så att dess tillgänglighet blir begränsad.

DÄR ligger den huvudsakliga fördelen hos SVE2 över AVX-512. RISC-V gänget hade ju alla möjligheter att titta på båda varianterna och de valde att göra rätt mycket samma sak som SVE2.

AVX-512 är i sig inte dåligt designad, tvärtom fick Intel till något riktigt bra efter ett gäng försök. Men hur stort kommer det praktiska värdet vara om en allt för stor del av av marknaden saknar stödet?

Intel har i flera bibliotek gjort en heroisk arbetsinsats för att på ett bra dynamiskt välja bästa SIMD-implementation på den aktuella plattformen. Uppenbara problemet med det är just att det krävs en stor arbetsinsats.

Sen varför inte 8x 64-bit? Allt är avvägningar, bl.a. som du skriver så krävs mer utrymme i ROB och andra buffertar om fler instruktioner behöver vara in-flight. Men går man åt andra hållet får man istället problem med att vissa fall inte har någon nytta av den fulla bredden + väldigt breda ALUs kommer power-gate:a delar av sin bredd.

Det sista gjorde ju AVX-512 netto negativt i de flesta av Intels tidiga CPU-modeller med AVX-512 om man relativt sporadiskt behövde använda AVX-512. Det tog ~10µs för CPUn att aktivera fulla bredden + ändra Vcore, under den tiden var kapaciteten mindre än man skulle fått om man bara kört med 128-bitar istället.

Här verkar AMD ha gjort ett bättre jobb än Intel. Vad jag sett så är Zen 5 bättre på att inte droppa frekvenser allt för mycket när den kör AVX-512 jämfört med Intel. Fast Intel ska även de ha blivit mycket bättre i senaste generationerna av Xeons på detta.

Med tiden lär gränsen pushas uppåt, men det verkar att givet dagens teknik så har 128-bit ALUs inte dragit mer ström än att deras hela bredd kan vara aktiverad hela tiden, medan bredare ALUs har typiskt power-gate:at den övre delen om man inte använt SIMD på ett tag. Fungerar lysande om man endera inte kör SIMD alls (eller bara 128-bit) eller har stort behov av det, passar inte bra om man sporadisk vill använda SIMD med stor bredd (vilket är rätt typiskt för klientsystem).

Tror också att AVX10.2 kommer öka användningen då man med det kommer få in AVX-512 (fast bara med 256-bit register som garanti) i alla x86-baserade datorer. Är ju först nu som t.ex. spel börjat kräva AVX, vilket indikerar att "mainstream" inte kommer kräva något innan i praktiken "alla" (enligt steam survey har >97% av alla CPUer nu stöd för detta, medan 14 % har stöd för AVX-512).

Finns ju många fördelar med AVX-512 över AVX/AVX2, gissar att man missar rätt få av dessa genom på klient-sidan genom att begränsa sig till 256-bitars register. Och för E-kärnorna gör ju Intel precis det AMD initialt gjorde i Zen för AVX och för AVX-512 i Zen4: internt är de 128-bit men de har ändå 256-bit register.

Och ja, mycket tyder på att SVE2 har fått ett rätt svalt mottagande även på Linux/Android-sidan (alla Arm Cortex A/X med ARMv9 stöd implementerar SVE2). En viktig orsak verkar ju vara att redan NEON var väldigt bra designad. Så kanske mer värt att fokusera på NEON+SME där (rimligen är SME implementerad som en systolic array vilket lär minska trycket mot RAM, vilket är önskvärt då SIMD lätt blir bandbredd-begränsat när kapaciteten skruvas upp).

TL;DR är ändå "done right" kommer ned till: om det finns en instruktionsuppsättning som alla kan använda är det bättre än att behöva skriva en version per implementationsbredd, även om det förra på pappret inte är lika optimalt.

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 Yoshman:

Det kvittar faktiskt om något på pappret är bättre, och argumenterar inte emot att AVX-512 mycket väl kan vara mer effektiv för specifika fall (tvärtom vet jag att det är så), om tekniken är utformad så att dess tillgänglighet blir begränsad.

DÄR ligger den huvudsakliga fördelen hos SVE2 över AVX-512. RISC-V gänget hade ju alla möjligheter att titta på båda varianterna och de valde att göra rätt mycket samma sak som SVE2.

AVX-512 är i sig inte dåligt designad, tvärtom fick Intel till något riktigt bra efter ett gäng försök. Men hur stort kommer det praktiska värdet vara om en allt för stor del av av marknaden saknar stödet?

Intel har i flera bibliotek gjort en heroisk arbetsinsats för att på ett bra dynamiskt välja bästa SIMD-implementation på den aktuella plattformen. Uppenbara problemet med det är just att det krävs en stor arbetsinsats.

Sen varför inte 8x 64-bit? Allt är avvägningar, bl.a. som du skriver så krävs mer utrymme i ROB och andra buffertar om fler instruktioner behöver vara in-flight. Men går man åt andra hållet får man istället problem med att vissa fall inte har någon nytta av den fulla bredden + väldigt breda ALUs kommer power-gate:a delar av sin bredd.

Det sista gjorde ju AVX-512 netto negativt i de flesta av Intels tidiga CPU-modeller med AVX-512 om man relativt sporadiskt behövde använda AVX-512. Det tog ~10µs för CPUn att aktivera fulla bredden + ändra Vcore, under den tiden var kapaciteten mindre än man skulle fått om man bara kört med 128-bitar istället.

Här verkar AMD ha gjort ett bättre jobb än Intel. Vad jag sett så är Zen 5 bättre på att inte droppa frekvenser allt för mycket när den kör AVX-512 jämfört med Intel. Fast Intel ska även de ha blivit mycket bättre i senaste generationerna av Xeons på detta.

Med tiden lär gränsen pushas uppåt, men det verkar att givet dagens teknik så har 128-bit ALUs inte dragit mer ström än att deras hela bredd kan vara aktiverad hela tiden, medan bredare ALUs har typiskt power-gate:at den övre delen om man inte använt SIMD på ett tag. Fungerar lysande om man endera inte kör SIMD alls (eller bara 128-bit) eller har stort behov av det, passar inte bra om man sporadisk vill använda SIMD med stor bredd (vilket är rätt typiskt för klientsystem).

Tror också att AVX10.2 kommer öka användningen då man med det kommer få in AVX-512 (fast bara med 256-bit register som garanti) i alla x86-baserade datorer. Är ju först nu som t.ex. spel börjat kräva AVX, vilket indikerar att "mainstream" inte kommer kräva något innan i praktiken "alla" (enligt steam survey har >97% av alla CPUer nu stöd för detta, medan 14 % har stöd för AVX-512).

Finns ju många fördelar med AVX-512 över AVX/AVX2, gissar att man missar rätt få av dessa genom på klient-sidan genom att begränsa sig till 256-bitars register. Och för E-kärnorna gör ju Intel precis det AMD initialt gjorde i Zen för AVX och för AVX-512 i Zen4: internt är de 128-bit men de har ändå 256-bit register.

Och ja, mycket tyder på att SVE2 har fått ett rätt svalt mottagande även på Linux/Android-sidan (alla Arm Cortex A/X med ARMv9 stöd implementerar SVE2). En viktig orsak verkar ju vara att redan NEON var väldigt bra designad. Så kanske mer värt att fokusera på NEON+SME där (rimligen är SME implementerad som en systolic array vilket lär minska trycket mot RAM, vilket är önskvärt då SIMD lätt blir bandbredd-begränsat när kapaciteten skruvas upp).

TL;DR är ändå "done right" kommer ned till: om det finns en instruktionsuppsättning som alla kan använda är det bättre än att behöva skriva en version per implementationsbredd, även om det förra på pappret inte är lika optimalt.

Poängen var att det på pappret verkar vara smidigt med variabel vektorlängd och att man kan skriva en implementation som skalar automatiskt med hårdvaran. När man sen tittar på verkligheten så ser det annorlunda ut och man kan behöva skriva olika implementationer för olika fysisk vektorlängd även på SVE och då har man fem (arm tog som tur var bort galenskapen med valfri multipel av 128) olika vektorlängder att ta hänsyn till vilka det för tre i princip inte finns hårdvara att testa på idag. Avx512 har bara en storlek (två med 10.2) där du som utvecklare själv fritt kan välja att jobba med kortare register. Ibland t.ex. vid parsning kan det vara smidigt att använda olika vektorlängd i samma algoritm.

Jag vet inte om rvv är ett bra exempel. Finns det någon som gillar rvv utom de som skrev specifikationen? Rvv har ännu mer likheter med traditionella vektorprocessorer som cray med elementstorlek som global state. Väldigt smidigt för traditionella HPC laster men mindre smidigt för mycket av det man använder simd till idag.

Valet av design av ISA påverkas nog mer av fast instruktionslängd än något annat. x86 kan lägga till några tusen nya instruktioner om man behöver det men det kan inte ARM göra. Det finns egentligen inte så många val om man vill kunna använda längre vektorer i framtiden. Men frågan om det behovet egentligen finns.

Själva designen av avx512 har väl inte ändrats förutom tillägg? Larrabee 1 använde LRBNI och sen bytte man kodning till LRBNI2 för Larrabee 2 korten det var först i steget till Knights Landing som man ändrade till dagens EVEX kodning/avx512 och då passade man på att plocka bort saker som inte fungerade så bra som t.ex. swizzling och la till permute funktioner istället.

SME på apple använder AMX enheten som är en delad resurs per processorkluster och använder väl cache för kommunikation. Ett vettigt mellansteg innan GPU. Olika typer av acceleratorer tror jag mer på än att skala upp vektorlängd till 2048 och det är en av orsakerna till att jag anser att ett smidigt att programmera simd ISA med fast vektorlängd som enklare kan lösa fler problem är att föredra istället för eventuell framtida skalbarhet.

Tittar man på faktiska implementationer och tillgänglighet så har avx512 fungerat bra på Intel serverprocessorer i några generationer nu och det finns "löfte" om avx512 överallt iom avx10.2. AMD har två generationer av bra implementationer även för klientcpus. Tyvärr inte fp16 stöd i Zen 5 vilket hade gjort den avx10.1 kompatibel. Det är först nu man börjar se SVE i arm processorer och det är osäkert hur framtiden för SVE på apple ser ut.

Förutom en framtid där avx10.2 finns överallt så är det lite av en besvikelse. Temtioelva nya ai fp format men inte så mycket annat nytt. Jag hade gärna sett mer funktioner som inte har med fp att göra, pext/pdep (som faktisk arm har), scan/segmented scan, nån form av un-permute/grade..

Permalänk
Datavetare
Skrivet av jclr:

Poängen var att det på pappret verkar vara smidigt med variabel vektorlängd och att man kan skriva en implementation som skalar automatiskt med hårdvaran. När man sen tittar på verkligheten så ser det annorlunda ut och man kan behöva skriva olika implementationer för olika fysisk vektorlängd även på SVE och då har man fem (arm tog som tur var bort galenskapen med valfri multipel av 128) olika vektorlängder att ta hänsyn till vilka det för tre i princip inte finns hårdvara att testa på idag. Avx512 har bara en storlek (två med 10.2) där du som utvecklare själv fritt kan välja att jobba med kortare register. Ibland t.ex. vid parsning kan det vara smidigt att använda olika vektorlängd i samma algoritm.

Jag vet inte om rvv är ett bra exempel. Finns det någon som gillar rvv utom de som skrev specifikationen? Rvv har ännu mer likheter med traditionella vektorprocessorer som cray med elementstorlek som global state. Väldigt smidigt för traditionella HPC laster men mindre smidigt för mycket av det man använder simd till idag.

Valet av design av ISA påverkas nog mer av fast instruktionslängd än något annat. x86 kan lägga till några tusen nya instruktioner om man behöver det men det kan inte ARM göra. Det finns egentligen inte så många val om man vill kunna använda längre vektorer i framtiden. Men frågan om det behovet egentligen finns.

Själva designen av avx512 har väl inte ändrats förutom tillägg? Larrabee 1 använde LRBNI och sen bytte man kodning till LRBNI2 för Larrabee 2 korten det var först i steget till Knights Landing som man ändrade till dagens EVEX kodning/avx512 och då passade man på att plocka bort saker som inte fungerade så bra som t.ex. swizzling och la till permute funktioner istället.

SME på apple använder AMX enheten som är en delad resurs per processorkluster och använder väl cache för kommunikation. Ett vettigt mellansteg innan GPU. Olika typer av acceleratorer tror jag mer på än att skala upp vektorlängd till 2048 och det är en av orsakerna till att jag anser att ett smidigt att programmera simd ISA med fast vektorlängd som enklare kan lösa fler problem är att föredra istället för eventuell framtida skalbarhet.

Tittar man på faktiska implementationer och tillgänglighet så har avx512 fungerat bra på Intel serverprocessorer i några generationer nu och det finns "löfte" om avx512 överallt iom avx10.2. AMD har två generationer av bra implementationer även för klientcpus. Tyvärr inte fp16 stöd i Zen 5 vilket hade gjort den avx10.1 kompatibel. Det är först nu man börjar se SVE i arm processorer och det är osäkert hur framtiden för SVE på apple ser ut.

Förutom en framtid där avx10.2 finns överallt så är det lite av en besvikelse. Temtioelva nya ai fp format men inte så mycket annat nytt. Jag hade gärna sett mer funktioner som inte har med fp att göra, pext/pdep (som faktisk arm har), scan/segmented scan, nån form av un-permute/grade..

Givet att det nu var SME2, som även den har skalbar längd på data, som introducerades i M4 (inte SVE2) och att det verkar vara hyfsat bra överlapp mellan vad man ser stora lyft på x86-sidan mellan modeller utan AVX-512 och modeller med så är det uppenbarligen ingen omöjlighet att skriva kod för detta.

Sen angående att AVX-512/SVE2 är en nisch. Säger inte att SIMD i sig är en smal nisch, där kan man idag göra rätt bra jämförelser mellan RISC-V CPUer som saknar RVV-stöd och motsvarande ARM64 CPUer som har NEON stöd för att få ett bra idé om vad SIMD faktiskt ger.

Det man ändå slås av är att i majoriteten av fallen gör total avsaknad av SIMD ingen direkt relevant påverkan, det trots att som du skrev ovan används ju tekniken inom så fundamentala saker som sträng-operationer hos moderna standardbibliotek.

Men är ändå en hyfsat stor andel, storleksordningen 1/5-1/4 av fallen som testas i benchmarks som SPECint/SPECfp samt GB6 där NEON ger heltalsfaktorer bättre prestanda när man jämför på pappret annars rätt likvärdiga mikroarkitekturer. Så SIMD-stöd är idag en självklar sak att stoppa in i en high-end CPU.

Om man däremot jämför säg Zen3 med Zen4, avsaknad av AVX-512 vs AVX-512 med 256-bit intern databredd, och än mer Zen4 med Zen5, så blir det väldigt väldigt få fall där just AVX-512 stödet ger någon relevant boost i prestanda på applikationsnivå. Är helt med på att det garanterat går att se rejäla vinster i mikrobenchmarks, men det är en extrem nischfunktion i det stora hela.

Och tittar man på vad man ändå verkar få utdelning med AVX-512 är ett typfall där man jobbar med stora matriser. Och att jobba med stora matriser är ett fall som är relativt lätt att skala med den lösning SVE och RVV använder -> AVX-512 "done right" då detta är ett viktigt use-case för väldigt specifika laster men rätt hyfsat irrelevant för normalanvändaren (irrelevant i bemärkelsen: det lär vara "good enough" även med en enklare SIMD-implementation + om problemet är lite större kommer det ändå gå snabbare att köra med GPGPU).

För just 128-bit bredd finns ju ett hyfsat vanligt specialfall som passar tekniken exceptionellt väl: 3D med homogena koordinater. Väldigt lätt att nå nära "perfekt speedup" där utan att ens behöva tänka på SOA/AOS, men skalar inte självklart uppåt med undantag för om man vill köra 64-bit flyttal då 256-bit bredd blir "perfekt match". Så SIMD kan ju helt klart vara supervärdefullt.

Finns ju flera sätt att skala SIMD-kapaciteten, de har alla sina för- och nackdelar. AMD har med Ryzen varit snabba att få in funktioner, medan de väntat en generation med att anamma full databredd. Intel har istället pushat för större databredd direkt. Båda har dock hållit fast vid relativt få SIMD-portar.

Tycker både Arm/Apple och nu också Intel (Skymont) visar att det kanske var bättre utväxling på att ha fler, men smalare, SIMD-enheter. I alla fall på konsumentsidan. Och rimligen bör det vara lättare att ha det fokuset med en ISA som ändå tillåter bredare implementation för produkter som används där det är värt transistorbudget.

SVE2 och AVX-512, samt än mer AVX10.2, har ju alla samma problem: de finns idag i en väldigt liten andel av CPUer på marknaden så "ingen" kommer kräva stöd för dessa (vilket minskar deras genomslag oavsett hur bra de är) närmaste ~10 åren. Är ju runt ett decennium det tagit för SSE/AVX att gå från introduktion till att vara något som börjar krävas av program.

Tror ändå "bred" SIMD hos CPU är och förblir en nisch, för när problemen blir "tillräckligt stora" lämpar de sig bättre för GPGPU + det är rätt mycket dimishing-returns att gå bredare. Men det finns självklart viktiga undantag inom speciella branscher!

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 Yoshman:

Givet att det nu var SME2, som även den har skalbar längd på data, som introducerades i M4 (inte SVE2) och att det verkar vara hyfsat bra överlapp mellan vad man ser stora lyft på x86-sidan mellan modeller utan AVX-512 och modeller med så är det uppenbarligen ingen omöjlighet att skriva kod för detta.

Sen angående att AVX-512/SVE2 är en nisch. Säger inte att SIMD i sig är en smal nisch, där kan man idag göra rätt bra jämförelser mellan RISC-V CPUer som saknar RVV-stöd och motsvarande ARM64 CPUer som har NEON stöd för att få ett bra idé om vad SIMD faktiskt ger.

Det man ändå slås av är att i majoriteten av fallen gör total avsaknad av SIMD ingen direkt relevant påverkan, det trots att som du skrev ovan används ju tekniken inom så fundamentala saker som sträng-operationer hos moderna standardbibliotek.

Men är ändå en hyfsat stor andel, storleksordningen 1/5-1/4 av fallen som testas i benchmarks som SPECint/SPECfp samt GB6 där NEON ger heltalsfaktorer bättre prestanda när man jämför på pappret annars rätt likvärdiga mikroarkitekturer. Så SIMD-stöd är idag en självklar sak att stoppa in i en high-end CPU.

Om man däremot jämför säg Zen3 med Zen4, avsaknad av AVX-512 vs AVX-512 med 256-bit intern databredd, och än mer Zen4 med Zen5, så blir det väldigt väldigt få fall där just AVX-512 stödet ger någon relevant boost i prestanda på applikationsnivå. Är helt med på att det garanterat går att se rejäla vinster i mikrobenchmarks, men det är en extrem nischfunktion i det stora hela.

Och tittar man på vad man ändå verkar få utdelning med AVX-512 är ett typfall där man jobbar med stora matriser. Och att jobba med stora matriser är ett fall som är relativt lätt att skala med den lösning SVE och RVV använder -> AVX-512 "done right" då detta är ett viktigt use-case för väldigt specifika laster men rätt hyfsat irrelevant för normalanvändaren (irrelevant i bemärkelsen: det lär vara "good enough" även med en enklare SIMD-implementation + om problemet är lite större kommer det ändå gå snabbare att köra med GPGPU).

För just 128-bit bredd finns ju ett hyfsat vanligt specialfall som passar tekniken exceptionellt väl: 3D med homogena koordinater. Väldigt lätt att nå nära "perfekt speedup" där utan att ens behöva tänka på SOA/AOS, men skalar inte självklart uppåt med undantag för om man vill köra 64-bit flyttal då 256-bit bredd blir "perfekt match". Så SIMD kan ju helt klart vara supervärdefullt.

Finns ju flera sätt att skala SIMD-kapaciteten, de har alla sina för- och nackdelar. AMD har med Ryzen varit snabba att få in funktioner, medan de väntat en generation med att anamma full databredd. Intel har istället pushat för större databredd direkt. Båda har dock hållit fast vid relativt få SIMD-portar.

Tycker både Arm/Apple och nu också Intel (Skymont) visar att det kanske var bättre utväxling på att ha fler, men smalare, SIMD-enheter. I alla fall på konsumentsidan. Och rimligen bör det vara lättare att ha det fokuset med en ISA som ändå tillåter bredare implementation för produkter som används där det är värt transistorbudget.

SVE2 och AVX-512, samt än mer AVX10.2, har ju alla samma problem: de finns idag i en väldigt liten andel av CPUer på marknaden så "ingen" kommer kräva stöd för dessa (vilket minskar deras genomslag oavsett hur bra de är) närmaste ~10 åren. Är ju runt ett decennium det tagit för SSE/AVX att gå från introduktion till att vara något som börjar krävas av program.

Tror ändå "bred" SIMD hos CPU är och förblir en nisch, för när problemen blir "tillräckligt stora" lämpar de sig bättre för GPGPU + det är rätt mycket dimishing-returns att gå bredare. Men det finns självklart viktiga undantag inom speciella branscher!

Som jag skrev från början är både SVE och avx512 bra. Det var din generalisering "AVX-512 done right" som jag reagerade på. Det känns som många trådar här som från början handlar om annat än arm/apple tillslut ändå bara handlar om hur mycket bättre arm/apple är. Att SVE skulle vara "AVX-512 done right" stämmer helt enkelt inte. Vissa saker gör avx512 bättre och andra saker är enklare med SVE. Med SVE kan man eventuellt få skalbarhet i framtiden. Vissa problem blir enklare och resulterar i kompaktare kod eftersom man inte behöver skriva en extra loop för de element på slutet som inte fyller ett helt vektorregister. Tittar man på ett enkelt exempel som axpy så blir det nästan dubbelt så många instruktioner om man använder avx512 och räknar med tailloop. Tittar man på inre loopen är avx512 version en instruktion kortare men förlorar ändå i koddensitet om man jämför bytes med ~30%. En hybrid skulle vara klart bäst. Om avx512 hade instruktioner för att skapa en mask utifrån kvarvarande element i ett loop räknar register och en hopp instruction för icketomt maskregister så skulle man kunna skriva ännu kompaktare kod än SVE. Nu finns det tyvärr inga hybrid ISA utan antingen mer traditionell simd med fast vektorlängd som avx512 eller mer åt vektorprocessor hållet med skalbar längd som ARM/risc-v. Vilket man föredrar har nog mest med den kod man skriver att göra.

M3 vs. M4 resultaten i geekbench är intressanta. SVE/SVE2 optimeringar kan vi helt utesluta eftersom geekbench inte använder de instruktionerna och M4 inte har SVE stöd förutom några funktioner via SSVE (vilket ändå inte skulle ge några fördelar över neon eftersom kärnorna delar AMX enhet). Det intressanta är att hårdvaran bakom SME inte är ny. AMX finns i alla apple M cpuer men man kommer bara åt det via apples egna bibliotek som geekbench inte verkar använda. I en riktig applikation som använder apples bibliotek kanske skillnaden mellan M3 och M4 är betydligt mindre. Andra tester som den för text är väl i princip python 3.9 så där finns den knappast några simd optimeringar. Man ska nog inte försöka läsa in allt för mycket i geekbench resultat.

Ett stort problem med simd ligger hos de som programmerar. De som kodar vill fortsätta skriva enkeltrådad C liknande kod som en kompilator/processor automagiskt försöker klämma ut så mycket parallellitet ur som möjligt. Titta bara på hur trögt det gick när cpu tillverkarna sa att nu kommer processorerna inte öka i hastighet lika mycket varje år men här har ni flera kärnor att använda istället. Samma problem finns med simd. Det är väldigt mycket beräkningskraft som de flesta utvecklare inte alls använder eller inte ens vet hur de ska använda. Många utbildningar lär ut kurser i datastrukturer och algoritmer för en värld som cpu:er lämnade för länge sedan. Mycket kod som skrivs idag är 100-1000x långsammare än vad den skulle kunna vara även fast den är skriven i snabba språk och inte gör korkade saker. Simd är något som kompilatorer överlag är dåliga på och många algoritmer kräver att man skriver koden helt annorlunda. Nu har i princip alla populära programmeringsspråk stöd för simd programmering på gång. Vissa ser mindre användbara ut som C++ förslag t.ex. och andra fungerar redan hyffsat för vissa saker som t.ex. java. Förhoppningsvis ökar simd användandet i framtiden.

Permalänk
Medlem

@Yoshman @jclr Kan ni ta er offtopic-diskussion till en egen tråd? Ni har spammat denna tråd mer än tillräckligt nu.

Visa signatur

Antec P280 | FSP Hydro Ti Pro 1000W | MSI X670E Carbon | Ryzen 7 9800X3D | Kingston Fury Beast 6000MT/s CL30 2x32GB | Nvidia RTX 4090 FE | 2x Samsung 990 Pro 4TB | Kingston KC3000 4TB | Samsung 970 Pro 1TB | 2x Samsung PM863a 3.84TB | 2x ASUS PG279Q