Nvidia: "Moores lag är död – grafikkretsar kommer ersätta processorer"

Permalänk
Medlem

Han är bara sur över att Tesla ska byta från dem till Intel

Visa signatur

i7-2700K 5GHz | 32GB DDR3-1600 | ASUS Maximus V Gene | GTX 980

Permalänk
Medlem
Skrivet av Gramner:

Nej, CPU:er kommer inte att ersättas av GPU:er för generella ändamål då majoriteten av sådana beräkningar som utförs till en betydande del är seriella i sin natur. Jen-Hsun Huang skulle behöva studera Amdahl's law.

I vissa specifika HPC-applikationer och liknande däremot görs det redan i dagsläget.

Jensen har kanske läst Gustafson's law

Permalänk
Medlem
Skrivet av dagas:

Även innan dess fanns det konsoler med fler processorer. T.ex Sega Saturn som förlorade mot PS1 bland annat för att det var så krångligt att programmera till den för det var fler processorer.

Men att prestandan i processorer har börjat planar ut har man ju sett länge nu. Aldrig har så många suttit med 5-6 år gamla processorer. Hade man suttit här 2004 med en 266mhz P2 hade man blivit utskrattad.

Skickades från m.sweclockers.com

Ja du för enklare spel och vanligt office fungerar ju till och med en i7 920 med 6Gb minne ganska bra och den släpptes enligt intel slutet 2008. Det är snart 9år sedan. Fast den är ju på gränsen till pinsam.

Det häftigaste Nvidia hade då var G92.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Medlem
Skrivet av Flopper:

HAR man ingen egen CPU att tillverka så försöker man framhävda sin egen begränsning.......dvs AMD och Intel är helt enkelt före Nvidia så ceo försöker naturligtvis höja snacket för sina aktieägare

Att AMD och Intel är före NVIDIA är väl något av en förenkling av situationen. NVIDIA skulle säkert gärna tillverka x86-processorer för att konkurrera med AMD och Intel, men tyvärr har de inte möjlighet till det. Intel äger majoriteten av alla x86-patent och bestämmer i stort sett vem som får tillverka x86-processorer. AMD och VIA har fått licens av Intel eftersom de också äger många x86-patent, men VIA är ju inte direkt med i leken. Det har varit snack om att NVIDIA skulle köpa VIA just för att komma över x86-licensen, men det verkar inte som att deras licens skulle fortsätta gälla om de blir uppköpta.

Så om inte Intel plötsligt skulle få för sig att lite mer konkurrens skulle vara trevligt att ha så kan NVIDIA inte göra så mycket på den fronten. NVIDIA har ju sysslat lite med ARM-processorer, men x86 är än så länge för dominant bland vanliga datorer för att kunna ersättas särskilt enkelt.

Permalänk
Skrivet av hACmAn:

Off:
Borde fortfarande vara creative labs som äger namnet APU då de köpte upp Aureal efter lyckats få dem att gå i konkurs.
Vad man suktade efter en Vortex 3 med en APU. (hade 2an)
Audio Processing Unit.

hehe, användes dock förkortningen?

Visa signatur

PC #1 CPU: R5 1600 @3.8 Motherboard: B350-A PRIME GPU: EVGA 1080 Ti
PC #2 CPU: i7 3770K @4.2 Motherboard: P8P67 GPU: AMD R9 290X

Permalänk
Medlem
Skrivet av Mithras:

Sanning med modifikation.

Processorer som har varit mångkärninga har funnits i miljontals hem under en otroligt lång period.

PS3: 8 kärnor, release 2006
PS4: 8 kärnor, X86-64 CPU, release 2013
XBONE: 8 kärnor, X86-64 CPU, release 2013

Ska man vara schysst och räkna bort PS3s otroligt komplexa uppsättning så ser vi alltså att PS4 + XBONE har frälst oss med octacore där PS4 sålt ca 60 miljoner kopior och XONE 26 miljoner kopior. Till ganska billiga priser.

De maskiner du räknar upp skalas det friskt, tror knappt de gör annat än försöka parallelisea arbeten om applikationen (spelet) skall köras på de processorerna. Problemet har varit applikationer för vanliga PC

Permalänk
Medlem
Skrivet av Bloodstainer:

hehe, användes dock förkortningen?

Ja faktisk i en hel del marknadsförings material och i de sista drv som var gemensamma med vortex 3 (släpptes aldrig publikt) så fick den biten gå på cpu sidan på vortex 2 korten.

Har svårt att hitta det då jag googlar idag däremot. Men de kallade Co Professorn APU, eftersom att de räknade polygoner för att beräkna ljudavstånd, studdsningar av ljud mm i ett 3d rum.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Datavetare

Självklart försöker han spetsa till det och i det generella fallet är han helt ute i spenaten med sitt påstående om att GPU kan ersätta CPU.

En GPU är extremt effektiv på problem som uppfyller kraven

  • latens är relativt oviktigt

  • bandbredd är väldigt viktigt

  • problemet är dataparallellt, d.v.s. man har massor med indata där en (gärna relativt dyr) transform ska appliceras och varje indata resulterar i en separat mängd utdata

  • transformen som appliceras är lika eller nästan lika för all data som behandlas av en viss "warp" (grupp om 32 trådar i Nvidias GPUer)

För att ge en liten fingervisning om exakt hur effektiv en GPU är jämfört med en CPU på problem som matchar ovan kan man notera att ett GT 1030 (en 30 W TDP GPU för < 1000 kr) matchar rätt bra kapaciteten hos ThreadRipper 1950X (en 180 W TDP CPU för 10k).

Notera också att det kvittar om det handlar om flyttal eller heltal då dagens GPUer från Nvidia, AMD och Intel kan alla hantera både och. Men framförallt för Nvidia är allt hårdoptimerat för 32-bitars heltal/flyttal, så jämförelsen ovan gäller bara 32-bitars tal.

GPGPU

GPGPU har funnits i ca 10 år nu. Det används en hel del på superdatorer, men det har gått väldigt trögt för "vanliga" PC. Verkar ändå som det börjar hända lite saker den senaste tiden, Blender får allt bättre GPGPU stöd, allt fler bild- och film-redigeringsprogram får allt mer GPGPU stöd. Detta är bra specifikt då vissa uppgifter passar en GPU, även relativt enkla GPUer springer ju förbi de snabbaste HEDT CPUerna här!

Ersätta CPU

Att helt ersätta CPUn med något som liknar en GPU har ju redan hänt. Var inte riktigt med på exakt hur Xeon Phi används i praktiken, det man oftast sett på bild är denna CPU i form av ett PCIe-kort.

Grejen är att Intel har lagt ned tillverkningen av Xeon Phi "co-processor", det då nästan ingen köpte detta i form av ett PCIe. Det som används av en rad top-500 superdatorer är i stället system där Xeon Phi CPUn kör hela OSet, inklusive all I/O.

Även om man får massor med GFLOPS ur ett Xeon Phi system och att Nvidia säker håller på att bygga något liknande med sina GPUer lär det inte vara ett hot mot traditionella CPUer. En Xeon Phi kan ha upp till 72 kärnor och totalt 288 trådar (4 trådar per kärna), prestanda per tråd är alltså bedrövligt så en Xeon Phi är hopplös som desktop CPU (fast går rent tekniskt att använda den som desktop CPU).

Andra typer av problem

Många problem på skrivbordet är strikt sekventiella, de fungerar uselt på en GPU och enda parallellism man kan extrahera ur dessa är den som moderna CPUer får via ILP (Instruction Level Parallelism). Är ILP som moderna CPUer utnyttja för att öka "IPC", d.v.s. antal instruktioner som utförs per cykel och kärna.

Andra typer av problem är de där man har många oberoende uppgifter, men där de olika uppgifterna skiljer sig åt (man gör olika transform på indata). Dessa kallas uppgiftsbaserad parallellism och även moderna GPUer har visst stöd för detta är de inte i närheten att matcha moderna multicore CPUer på denna punkt.

Dataparallella problem som är latenskänsliga passar inte heller bra för GPU, här är ett område där SSE/AVX är den optimala lösningen. Andra fall där SIMD är bättre idé jämfört med GPU är de där man ofta växlar mellan seriell och parallella uppgifter, egentligen en form av latenskritisk last då det i teorin skulle gå att köra med en GPU men i praktiken skulle vinsten med parallellism ätas upp av kostnaden för att hoppa mellan CPU och GPU.

SIMD finns på i princip alla större CPU-designer, t.ex. ARM har sitt NEON. Så en annan fördel över GPU är "install base", alla x86 tillverkade de senaste 10 åren har stöd för upp till SSE4.2 så program skrivna mot det fungerar ju på väldigt många system.

Använder man Nvidias CUDA (deras miljö för GPGU) är man bunden till Nvidias GPUer. Nu finns även OpenCL, men det behandlas rätt styvmoderligt av Nvidia + efter att nu använt både OpenCL och CUDA begriper jag varför CUDA dominerar. På tekniskt nivå är det så mycket enklare att jobba med CUDA, lättare att få till bra prestanda och långt mindre boilerplate-kod jämfört med OpenCL för att göra samma sak. Utvecklingsverktygen i CUDA är också betydligt mognare. "Öppet" betyder ingenting om det är dyrare att använda och ger sämre resultat

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

De maskiner du räknar upp skalas det friskt, tror knappt de gör annat än försöka parallelisea arbeten om applikationen (spelet) skall köras på de processorerna. Problemet har varit applikationer för vanliga PC

Må så vara. Men att säga att flerkärnigt har varit dyrt länge är helt enkelt inte sant. Så länge man inte anser att en PS4 är "dyrt". Eller om man ska vara riktigt petig, en äldre generations i7 som är fyrkärnig, vilket absolut är flerkärnigt.

Lägg då till att både XBONE och PS4 använder sig av samma jävla prolle och fortfarande faktiskt inte är optimerat i de flesta spelens fall för mer än 2 kärnor, så inser man då snabbt att idén om att spelutvecklarna helt plötsligt skulle börja optimera för 4 kärnor som minst är rätt långsökt.

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Medlem
Skrivet av dagas:

Även innan dess fanns det konsoler med fler processorer. T.ex Sega Saturn som förlorade mot PS1 bland annat för att det var så krångligt att programmera till den för det var fler processorer.

Men att prestandan i processorer har börjat planar ut har man ju sett länge nu. Aldrig har så många suttit med 5-6 år gamla processorer. Hade man suttit här 2004 med en 266mhz P2 hade man blivit utskrattad.

Skickades från m.sweclockers.com

Håller med dig helt. Finns egentligen ingen större anledning för mig att byta ut 2600K, som är nu 6-7 år gammal. Den tuffar på bra i de flesta spel på en GTX980 i 1440p.

Det kommer krävas någon typ av ny teknik för att sätta 4-kärnigt åt sidan helt, t.ex. just AI-utveckling eller dyl

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Skrivet av hACmAn:

Ja du för enklare spel och vanligt office fungerar ju till och med en i7 920 med 6Gb minne ganska bra och den släpptes enligt intel slutet 2008. Det är snart 9år sedan. Fast den är ju på gränsen till pinsam.

Det häftigaste Nvidia hade då var G92.

Inget pinsamt med den processorn. Jag har en i7 930 klockad till 3.8.den kom året efter Funkar på alla spel fortfarande. Har bara bytt ut grafik kortet då det gamla rasade. Har ett original titan. Funkar klockrent i 1080p på allt jag kastat på den.

Skickades från m.sweclockers.com

Permalänk
Medlem

-Moores lag är död! Grafikkretsar är framtiden!!

*Släpper en re-brandad, 16 månader gammal GTX 1070 mid-range krets med marginellt bättre prestanda*

Visa signatur

Ryzen 7 3800X, Asus Prime X370 Pro, 32 GB LPX 3600, Gainward RTX 3060 Ti Ghost, 7 TB SSD + 4 TB HDD

Permalänk
Medlem
Skrivet av Mithras:

Må så vara. Men att säga att flerkärnigt har varit dyrt länge är helt enkelt inte sant. Så länge man inte anser att en PS4 är "dyrt". Eller om man ska vara riktigt petig, en äldre generations i7 som är fyrkärnig, vilket absolut är flerkärnigt.

Lägg då till att både XBONE och PS4 använder sig av samma jävla prolle och fortfarande faktiskt inte är optimerat i de flesta spelens fall för mer än 2 kärnor, så inser man då snabbt att idén om att spelutvecklarna helt plötsligt skulle börja optimera för 4 kärnor som minst är rätt långsökt.

Flerkärnigt ha varit dyrt och det är korrekt att beskriva det så.
För problemet uppstår när man skalar något och det körs på en procesor som kanske har två eller i värsta fall bara en kärna. Då får man sämre prestanda jämfört med att anpassa efter en kärna. Programmeraren kan då självklart kolla, finns en processor så kör koden X, finns det flera så kör koden Y men då snackar vi röra. Det måste till väldigt mycket för att göra något sådant

När man kan räkna med att användaren har 4 kärnor eller fler så är det så många att det bara är att skala på

Permalänk
Medlem

Som .NET-utvecklare förlitar jag mig på Task. Jag bryr mig knappast om implementationen

Visa signatur

8700K | MAXIMUS X HERO | 1080TI | 960 EVO | 16GB 3600 G.SKILL | PG279Q

Permalänk
Medlem
Skrivet av klk:

Flerkärnigt ha varit dyrt och det är korrekt att beskriva det så.
För problemet uppstår när man skalar något och det körs på en procesor som kanske har två eller i värsta fall bara en kärna. Då får man sämre prestanda jämfört med att anpassa efter en kärna. Programmeraren kan då självklart kolla, finns en processor så kör koden X, finns det flera så kör koden Y men då snackar vi röra. Det måste till väldigt mycket för att göra något sådant

När man kan räkna med att användaren har 4 kärnor eller fler så är det så många att det bara är att skala på

Jag håller helt enkelt inte med. Fyrkärnigt har funnits sedan 2013 på konsoler i x86-x64-format och jag anser inte alls att varken PS eller XBOX är dyra. Att uveckla mot dessa två konsoler har dessutom gått mot exakt samma processor, AMD's jaguar. Där kan utvecklarna räkna med att de har 4 kärnor, och dessutom räkna på exakt hur mycket RAM etc. man utvecklar mot. Ändå har inget hänt där alls. Dina teoretiska situationer har helt enkelt inte fungerat i verkligheten.

Dessutom har det varit enkelt att få tag på 4kärniga prollar för 2000 kr väldigt länge, helt enkelt inte dyrt.

Men men, "dyrt" är väl subjektivt.

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Medlem

Att gpu'er skulle ta över är långt bort. Sen vem vet, kanske kommer något annat i stället för både gpu och cpu om 5 år.

Visa signatur

Intel Core i7 8700K, MSI GeForce GTX 1080 Ti 11GB Gaming X, Samsung 960 EVO 1TB, MSI Z370 GAMING M5, Corsair 32GB (4x8GB) DDR4 3200MHz CL16 Vengeance, EVGA Supernova G3 850W

INTEL CORE I7 3930K 3.20GHZ 12MB S-2011, FRACTAL DESIGN MIDITOWER DEFINE R3, CORSAIR HX 1050W, ASUS RAMPAGE IV FORMULA, Asus STRIX GTX970, CORSAIR 16GB DDR3 DOMINATOR QUAD 1866MHZ CL9 (4X4GB) Ljud: ASUS Xonar D2X/XDT 7.1 | Elac 5.1 +förstärkare | Cambridge dacmagic plus | Astro gaming A40 | Sennheiser HD 650
You ask me if I have a god complex? Let me tell you something, I am god!

Permalänk
Medlem
Skrivet av Mithras:

Jag håller helt enkelt inte med. Fyrkärnigt har funnits sedan 2013 på konsoler i x86-x64-format och jag anser inte alls att varken PS eller XBOX är dyra.

Du pratar om konsoller, och kopplar det till applikationer på PC. Det är två olika typer där de som gör applikationer för konsoller försöker skala så mycket som går.
När man gör applikationer till Windows för en bredare kundgrupp går man efter vad som är vanligast. Anpassar efter det, endast de applikationer som kan se merföräljning av att skala till fler kärnor gör det. I annat fall är det onödigt att jobba sig, speciellt som de flesta kör portabla med två kärnor, ofta en.

Gör serverapplikationer, då kan du säga till kunden "köp en server med minst 8 kärnor". Det kan man inte till vanliga användare

Permalänk
Medlem

GPUer vill ha massa data (helst streams) och en eller fåtal instruktioner att applicera på dem.

En CPU kan behöva göra allt möjligt och har en betydligt större instruktionsuppsättning.
Något som hela tiden växer med AVX, AES m.m.

Jag tror faktiskt det finns en del sanning i det han säger, om "grafikkärnorna" blir tillräckligt flexibla och självgående. Skulle inte förvåna mig om man ser betydligt bättre APUer i framtiden där CPU och GPU delar cache och CPUn kanske funkar mer som en scheduler och "trådmanager" och GPU kärnorna gör grovjobbet.

Visa signatur

Ryzen 9 5950X, 32GB 3600MHz CL16, SN850 500GB SN750 2TB, B550 ROG, 3090 24 GB
Har haft dessa GPUer: Tseng ET6000, Matrox M3D, 3DFX Voodoo 1-3, nVidia Riva 128, TNT, TNT2, Geforce 256 SDR+DDR, Geforce 2mx, 3, GT 8600m, GTX460 SLI, GTX580, GTX670 SLI, 1080 ti, 2080 ti, 3090 AMD Radeon 9200, 4850 CF, 6950@70, 6870 CF, 7850 CF, R9 390, R9 Nano, Vega 64, RX 6800 XT
Lista beg. priser GPUer ESD for dummies

Permalänk
Medlem
Skrivet av klk:

Du pratar om konsoller, och kopplar det till applikationer på PC. Det är två olika typer där de som gör applikationer för konsoller försöker skala så mycket som går.
När man gör applikationer till Windows för en bredare kundgrupp går man efter vad som är vanligast. Anpassar efter det, endast de applikationer som kan se merföräljning av att skala till fler kärnor gör det. I annat fall är det onödigt att jobba sig, speciellt som de flesta kör portabla med två kärnor, ofta en.

Gör serverapplikationer, då kan du säga till kunden "köp en server med minst 8 kärnor". Det kan man inte till vanliga användare

Vänta nu här, när har jag snackat om PC? Vi har snackat om x86-processorer med flera kärnor, that's it. Ingenstans har vi begränsat oss till endast PC-optimering.

och återigen; om du vill begränsa oss till PC så har i5 och i7 kostat ungefär densamma ända sedan Sandy Bridge, från 2500-3500 kr och jag anser fortfarande inte att någon av dem har varit dyra i den bemärkelsen, speciellt inte om man tar i beakting begagnade prollar. Så argumentet att flerkärninga skulle vara dyra håller inte, även om man nu avgränsar till PC.

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Medlem
Skrivet av Mithras:

Vänta nu här, när har jag snackat om PC? Vi har snackat om x86-processorer med flera kärnor, that's it. Ingenstans har vi begränsat oss till endast PC-optimering.

och återigen; om du vill begränsa oss till PC så har i5 och i7 kostat ungefär densamma ända sedan Sandy Bridge, från 2500-3500 kr och jag anser fortfarande inte att någon av dem har varit dyra i den bemärkelsen, speciellt inte om man tar i beakting begagnade prollar. Så argumentet att flerkärninga skulle vara dyra håller inte, även om man nu avgränsar till PC.

Vet inte exakt vad du pratar om, du jämför i vart fall låst hårdvara med hårdvara för öppnare platfformar. Hade alla PC sett exakt likadana ut hade utvecklingsarbetet för olika applikationer varit mycket annorlunda

i5 och i7 är på gränsen för att utvecklare skall tycka "det är bara att köra på med trådar". Enligt mig måste man upp över 4 kärnor för att alltid förska skala lösningar till flera trådar (att det är fritt fram). 4 kärnor är minimum.

Många typer av arbeten skalar inte speciellt bra även om de kan få en liten ökning om det finns ledig hårdvara att använda sig av.

Mängden processorer anpassade för portabla säljer väl dessutom mer än de högpresterande inom PC fram till att AMD släppte spärrarna för fler än 4 kärnor. Även stationära med portabla processorer säljer bra (barebones)

Permalänk
Medlem
Skrivet av hACmAn:

Ja du för enklare spel och vanligt office fungerar ju till och med en i7 920 med 6Gb minne ganska bra och den släpptes enligt intel slutet 2008. Det är snart 9år sedan. Fast den är ju på gränsen till pinsam.

Det häftigaste Nvidia hade då var G92.

Har svårt att se att en i7 920 inte skulle hänga med i 60fps gaming idag med lite lätt OC.

Permalänk
Medlem
Skrivet av Chrisj:

Har svårt att se att en i7 920 inte skulle hänga med i 60fps gaming idag med lite lätt OC.

Ganska stor IPC skillnad jämför mer en 2600k som inte ens är oc.

Tyvär så gör inte i7 920 det längre. 60fps gaming? vi räknar min samt låg medel. Slowdowns är inte ok.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Medlem
Skrivet av hACmAn:

Ganska stor IPC skillnad jämför mer en 2600k som inte ens är oc.

Tyvär så gör inte i7 920 det längre. 60fps gaming? vi räknar min samt låg medel. Slowdowns är inte ok.

Så om 1%en är 59 så är det ospelbart?

Permalänk
Medlem
Skrivet av Chrisj:

Så om 1%en är 59 så är det ospelbart?

I sammanhanget JA. Tyvärr.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Medlem

Drar du upp en 920 till 4.3 så kör en oklockad sandy 2600k över den. 920 är ingen dålig cpu snarare det motsatta. men ipc sedan 3-5r i final fantasay. Fin CPU åldrats väl.

Visa signatur

CPU: 5900x. Mem:64GB@3200 16-17-17-34-1T. (ImDIsk)
GPU: 1080 Ti@ca 6-7%OC. Sound: SB-Z -> toslink (DTS)-> old JVC. MB Realtek to Z-2300 for VOIP.

Permalänk
Medlem

Jag tycker uttalandet verkar rimligt: GPGPU tar över alla parallella beräkningsuppdrag från CPU. Finns ingen anledning att köra beräkningen på en CPU med bara 30 kärnor när grafikkortet har över 100 som jobbar effektivare. Självklart kommer en enklare CPU att finnas kvar för att sköta bakgrundsuppgifter och fåtrådade beräkningar.
Denna utveckling har redan börjat: Titta på kryptovalutorna!

Permalänk
Medlem
Skrivet av klk:

Vet inte exakt vad du pratar om, du jämför i vart fall låst hårdvara med hårdvara för öppnare platfformar.

Eh, Ja. Exakt det som är poängen. öppna plattformen har samma grundstruktur i sina CPU'er som den låsta som jag jämför med. Som du själv implicerar, så är en låst plattform mycket enklare att programmera emot. När då utvecklarna inte har anpassat flerkärnigt på en låst plattform, varför skulle de då göra det mot en öppen plattform med liknande cpu men med otroligt mycket mer komplex arbetsbörda?

Skrivet av klk:

Hade alla PC sett exakt likadana ut hade utvecklingsarbetet för olika applikationer varit mycket annorlunda

Nej. Det är just därför jag ger dig konsoler. För att konsoler är exakt vad PC hade sett ut om de allihop varit exakt samma. Och där finns ingen utveckling mot 4kärnor+ att snacka om.

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Datavetare
Skrivet av klk:

Du pratar om konsoller, och kopplar det till applikationer på PC. Det är två olika typer där de som gör applikationer för konsoller försöker skala så mycket som går.
När man gör applikationer till Windows för en bredare kundgrupp går man efter vad som är vanligast. Anpassar efter det, endast de applikationer som kan se merföräljning av att skala till fler kärnor gör det. I annat fall är det onödigt att jobba sig, speciellt som de flesta kör portabla med två kärnor, ofta en.

Gör serverapplikationer, då kan du säga till kunden "köp en server med minst 8 kärnor". Det kan man inte till vanliga användare

Precis som @RFRFRF nämner så skriver man i dagens läge inte program som använder explicit trådning, det specifikt då det blir helt orimligt att försöka anpassa sig till alla tänkbara CPU-konfigurationer. Antar här referensen är till dotnet "Thread Parallell Library", TPL. Tyvärr har MS lyckats messa upp detta en del då man använder samma namngivning (betydelsen för klassen "Task" är överlagrad) både för parallell programmering (som specifikt handlar om att utnyttja flera kärnor) och för asynkronprogrammering (som egentligen inte har något alls med multicore att göra, tvärtom är det ofta mer användbart i enkeltrådade fall).

Vad speltillverkare använder sig av är i grunden exakt samma teknik som TPL i dotnet, Executors i Java och mer HPC-inriktade ramverk som OpenMP/Cilk+.

I dessa beskriver jag som programmerare potentiell parallellism, d.v.s. jag har uppgiften att dela upp saker i enheter som kan beräknas separat. Ramverken ger sedan verktyg för att även kunna beskriva hur olika enheter beror av varandra. Ingenstans behöver jag bry mig om systemet har två CPU-trådar eller hundra CPU-trådar.

Detta matas in i en algoritm som kallas "work-stealing scheduler", det maskineriet är den enda del som bryr sig om hur många CPU-trådar systemet har.

I nästan alla lägen kan man styra ramverket till att använda färre än maximalt antal CPU-trådar, är användbart om man vet att just det specifika fallet inte har jättemycket parallellism. Att försöka använda för många CPU-trådar med begränsad faktiskt parallellism leder ofta till lägre prestanda eller att man drar mer CPU-kraft utan att det positivt påverkar prestanda (vilket är orsaken till att man inte kan kolla på CPU-last för att avgöra hur mycket kraft som "finns kvar").

Vi ser ju faktiskt att spel skalar ända till 10C/20T, i alla fall när man klockar ner CPUn till 2,8 GHz (som SweClockers gör i sitt "IPC" test). Grejen är bara att spel skalar väldigt dåligt med CPU-kärnor efter 3-4 st, samtidigt som spel skalar i det närmaste perfekt med ökad enkeltrådprestanda upp till punkten där GPUn tar över som primär flaskhals (som för PC ofta är så pass tidigt att de flesta moderna x86 CPUer inte är den primära flaskhalsen).

Dagens konsoler skalar rätt bra till de 6-7 kärnor som spelen använder (är 1-2 kärnor som är reserverade för systemet hos XBO/PS4), det då spelmotorerna gick över till "work stealing" i samband med PS3/360 (360 har tre kärnor och sex trådar).

På PC är CPU-delen så stark att den ytterst sällan är flaskhals + spel skalar långt bättre med ökad prestanda per kärna än med fler kärnor och fram till nästa torsdag har det varit så att de modeller med högst prestanda per kärna varit Intels 4C/8T modeller.

Skrivet av Olle P:

Jag tycker uttalandet verkar rimligt: GPGPU tar över alla parallella beräkningsuppdrag från CPU. Finns ingen anledning att köra beräkningen på en CPU med bara 30 kärnor när grafikkortet har över 100 som jobbar effektivare. Självklart kommer en enklare CPU att finnas kvar för att sköta bakgrundsuppgifter och fåtrådade beräkningar.
Denna utveckling har redan börjat: Titta på kryptovalutorna!

Uttalandet är helt rimligt för den delmängd av parallella problem som specifikt är dataparallella och där varje delberäkning utför samma (eller nästan samma) uppsättning instruktioner. GPUer är löjligt mycket mer effektivt jämfört med CPUer på detta.

Men det är ju bara en delmängd av alla problem som enkelt kan parallelliseras, som i sin tur är en delmängd av alla tänkbara problem man vill lösa på en dator.

Strikt sekventiella problem löses bäst på den CPU med högst enkeltrådprestanda.

Uppgiftsparallella problem (urtypsproblem på servers) löses bäst på CPUer med maximal aggregerad prestanda över flera CPU-kärnor.

Dataparallella problem med högre grad av villkorad körning löses bäst med SIMD (SSE/AVX på x86).

Ett exempel är beräkning av Mandelbrotmängden. Varje pixel kan beräknas helt i isolation, men antal iterationer beräkningen tar kan variera kraftigt mellan två angränsade pixels vilket kraftigt reducerar effektiviteten att utföra det med GPGPU (men är absolut fullt möjligt). SSE/AVX kan ändå används med bra effektivitet då bredden på en "wave-front" är 2-8 i stället för 32/64 (Nvidia GPU/AMD GPU) + SIMD generellt sett bättre hanterar fall där tiden att utföra beräkningen har hög varians (p.g.a. noll latens mellan SIMD-enheten och den "vanliga" CPUn).

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

Må så vara. Men att säga att flerkärnigt har varit dyrt länge är helt enkelt inte sant. Så länge man inte anser att en PS4 är "dyrt". Eller om man ska vara riktigt petig, en äldre generations i7 som är fyrkärnig, vilket absolut är flerkärnigt.

Lägg då till att både XBONE och PS4 använder sig av samma jävla prolle och fortfarande faktiskt inte är optimerat i de flesta spelens fall för mer än 2 kärnor, så inser man då snabbt att idén om att spelutvecklarna helt plötsligt skulle börja optimera för 4 kärnor som minst är rätt långsökt.

Nu tror jag du missat poängen helt och hållet.
En PS4 är inte direkt dyr nej. Men den är dels inte särskillt gammal. Dels är det en spelkonsoll.
Det görs en hel del utveckling på konsollerna som utnyttjar parallellisering ja. Men då pratar vi om dedikerad utveckling av spel till en faststrälld uppsättning hårdvara.

det är knappast relevant att ta det som exempel när man pratar om programvara för PC.
Ifråga om att flerkärnigt kostar pengar så tar du som exempel en i7 vilket ju är Intels flaggskepp. Dvs den dyraste processorserien dom har i konsumentsegmentet och säger att den inte är dyr. Jämfört med vad. Låt går för att du tar upp en äldre generation av i7 men det är fortfarande flaggskepsserien.

Den absoluta majoriteten av datorer som du hittar ute i hemmen är bestyckade med i3 eller möjligen i5 pricessorer, dessutom med några år på nacken, och en stor andel av dom har i bästa fall hyperthreading men inte särskillt många kärnor.

Eftersom den stora majoriteten av datorer under väldigt lång tid varit bestyckade med billigare processorer som inte har jättemånga kärnor så har det helt enkelt inte varit intressant för utvecklare av programvara till PC plattformen att fokusera på att parallellisera särskillt mycket.

Nu på senare tid så har det börjat komma mer och mer processorer som faktiskt har flera kärnor även i dom lägre prisklasserna och då kommer det också att bli mer intressant att utveckla mot det.

en utvecklare som inte har obegränsade resurser måste någonstans prioritera vad man lägger resurserna på. Om majoriteten inte har flera kärnor så får kan fokusera på att utveckla mot scenarion där man bara har en kärna. Idag börjar allt fler system få flera kärnor och då skiftas fokus naturligt mot att utveckla för det scenariot.

Permalänk
Datavetare
Skrivet av sba74:

Nu tror jag du missat poängen helt och hållet.
En PS4 är inte direkt dyr nej. Men den är dels inte särskillt gammal. Dels är det en spelkonsoll.
Det görs en hel del utveckling på konsollerna som utnyttjar parallellisering ja. Men då pratar vi om dedikerad utveckling av spel till en faststrälld uppsättning hårdvara.

det är knappast relevant att ta det som exempel när man pratar om programvara för PC.
Ifråga om att flerkärnigt kostar pengar så tar du som exempel en i7 vilket ju är Intels flaggskepp. Dvs den dyraste processorserien dom har i konsumentsegmentet och säger att den inte är dyr. Jämfört med vad. Låt går för att du tar upp en äldre generation av i7 men det är fortfarande flaggskepsserien.

Den absoluta majoriteten av datorer som du hittar ute i hemmen är bestyckade med i3 eller möjligen i5 pricessorer, dessutom med några år på nacken, och en stor andel av dom har i bästa fall hyperthreading men inte särskillt många kärnor.

Eftersom den stora majoriteten av datorer under väldigt lång tid varit bestyckade med billigare processorer som inte har jättemånga kärnor så har det helt enkelt inte varit intressant för utvecklare av programvara till PC plattformen att fokusera på att parallellisera särskillt mycket.

Nu på senare tid så har det börjat komma mer och mer processorer som faktiskt har flera kärnor även i dom lägre prisklasserna och då kommer det också att bli mer intressant att utveckla mot det.

en utvecklare som inte har obegränsade resurser måste någonstans prioritera vad man lägger resurserna på. Om majoriteten inte har flera kärnor så får kan fokusera på att utveckla mot scenarion där man bara har en kärna. Idag börjar allt fler system få flera kärnor och då skiftas fokus naturligt mot att utveckla för det scenariot.

Fast vad spelar det för roll hur många kärnor majoriteten har?

Att hålla på med explicit trådning fungerar om man förväntar sig hyfsad skalning till två CPU-trådar. Spel skalar absolut förbi två CPU-trådar, vissa startar ju inte ens med färre än fyra CPU-trådar.

Så fort man kliver förbi steget "fler än två CPU-trådar" är det i princip ingen som jobbar med explicit trådning utan man har designer som dynamiskt sprider ut lasten över tillgängliga CPU-trådar. I det läget är det konceptuellt ingen skillnad på att stödja vilket antal CPU-trådar som helst. Naturligtvis kommer fokus av testning utföras på det vanligaste systemet så självklart kan det förkomma patologiska fall för otestade konfigurationer.

En mycket viktigare frågeställning i sammanhanget är: hur mycket potentiell parallellism finns i problem man försöker lösa? Här i ligger problemet för spel, 4 starka PC CPU-kärnor är i de flesta fall mer än nog för att täcka in just detta problem!

Visa signatur

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