Utvecklare spelar Witcher 3 på RISC‑V

Permalänk
Melding Plague

Utvecklare spelar Witcher 3 på RISC‑V

Utvecklarna av Box64 har lyckats köra The Witcher 3 på en dator med RISC-V-processor tillsammans med ett Radeon-grafikkort.

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
Medlem

"De skriver också om specifika frustrationsmoment, som hur de tvingas använda tio rader assemblykod för RISC-V för att göra samma sak som en rad för x86-64."

Jo det är väl så det fungerar med Reduced Instruction Set.
Man kanske får hoppas på att man får en chiplet med dryga instruktioner så det går snabbt medans vi begraver x86.

Permalänk
Medlem

Jag är mest fundersam hur de lyckats få till drivrutiner och annat, min spontana gissning är proton+linux, annars har jag svårt att se hur de fick igång en tillräckligt stor windows runtime på riscv

Jag snabbläste bloggen och det är definitivt linux de kör

Skrivet av Sinery:

"De skriver också om specifika frustrationsmoment, som hur de tvingas använda tio rader assemblykod för RISC-V för att göra samma sak som en rad för x86-64."

Jo det är väl så det fungerar med Reduced Instruction Set.
Man kanske får hoppas på att man får en chiplet med dryga instruktioner så det går snabbt medans vi begraver x86.

Det finns ju också specifika saker som x86 gör konstigt som minneshantering till exempel, därav vissa översättningssvårigheter

Permalänk
Medlem

Antar en del av anledningen till så låg FPS är att de har ett "serverchip" med 64 kärnor dvs inte så hög frekvens per kärna? ska bli spännande med mer risc-v alternativ för "hemma bruk".

småkollat på en visionfive2 för att börja leka lite med det. borde gå att offra M.2 slotten till en gpu om man kör os från emmc eller sd, alternativt usb3.

andra alternativ typ itx/matx formfaktor kostar skjortan än så länge.

Skrivet av medbor:

Jag är mest fundersam hur de lyckats få till drivrutiner och annat, min spontana gissning är proton+linux, annars har jag svårt att se hur de fick igång en tillräckligt stor windows runtime på riscv

Jag snabbläste bloggen och det är definitivt linux de kör

Det finns ju också specifika saker som x86 gör konstigt som minneshantering till exempel, därav vissa översättningssvårigheter

jo det är väl rätt safe att anta att det är linux+wine/proton, vi har väl inte mycket andra OS på risc-v?

Visa signatur

Xeon E5450@3.2ghz
9800GTX+

Permalänk
Medlem
Skrivet av medbor:

Det finns ju också specifika saker som x86 gör konstigt som minneshantering till exempel, därav vissa översättningssvårigheter

En väldigt specifik sak med RISC-V (Om vi jämför med processorer vi normalt sett har i persondatorer ända sedan hemdatorernas tid) är att den inte har några status-flaggor. Normalt när en CPU kör instruktioner sätts t.ex zero flaggan vid en subtraction som resultertar i 0 eller carry-flaggan om en addition inte kan lagras i resulterande register. Detta används väldigt mycket, vid varje conditional branch. RISC-V hanterar detta med lite andra instruktioner, vilket man kan tänka sig ger komplexitet i ett översättningslager.

Sen att RISC-V har 47 instruktioner medan X86 har över 1500 gör också att RISC-V knappast är lika kompakt, det behöver inte betyda att det är sämmre dock.

Permalänk
Datavetare

Från artikeln

"Men RISC-V kan i framtiden komma att utmana även på marknader för mer kraftfulla kretsar, där x86-64 är störst men ARM64 har kommit starkt de senaste åren."

Om "kraftfulla kretsar" refererar till absolut prestanda per CPU-kärna så är faktiskt inte x86-64 ens nära att vara störst längre. Dels har man tappat förstaplatsen till Apples ARM64 och dels har dagens high-end mobiler minst en CPU-kärna (Androider har typiskt en Cortex X kärna) som är helt i nivå med x86-64 i single-core prestanda.

Så det lär säljas 5-10 st högpresterande ARM64 kretsar per x86-64 krets idag.

Skrivet av Sinery:

"De skriver också om specifika frustrationsmoment, som hur de tvingas använda tio rader assemblykod för RISC-V för att göra samma sak som en rad för x86-64."

Jo det är väl så det fungerar med Reduced Instruction Set.
Man kanske får hoppas på att man får en chiplet med dryga instruktioner så det går snabbt medans vi begraver x86.

Distinktionen mellan RISC och CISC har aldrig varit glasklar. Historiskt var det inga större problem att separera dem, men idag har det skett rätt mycket konvergering.

Specifikt är både 32-bit Arm och ARM64 (som är två helt olika instruktionsuppsättningar) rejält udda i att de typiskt ger kompaktare/färre instruktioner för utföra en viss sak jämfört med x86_64. I princip alla "RISC:ar", vilket tyvärr verkar inkludera RISC-V, tar mer utrymme/fler instruktioner.

Läser man originalartikeln ser man att för just det här specifika fallet har både ARM64 och LoongArch väldigt bra match av instruktioner medan det blir rätt många instruktioner för att få till det på RISC-V.

Svårt att veta hur bra/dålig en ISA är för high-end innan man verkligen byggt ett par CPUer och fått lite erfarenhet. Men allt mer pekar på att RISC-V kanske inte är en home-run. RISC-V är redan populär i mikrokontrollers, men ser allt mer tveksamt ut att det blir någon succé för högpresterande datorer.

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

En väldigt specifik sak med RISC-V (Om vi jämför med processorer vi normalt sett har i persondatorer ända sedan hemdatorernas tid) är att den inte har några status-flaggor. Normalt när en CPU kör instruktioner sätts t.ex zero flaggan vid en subtraction som resultertar i 0 eller carry-flaggan om en addition inte kan lagras i resulterande register. Detta används väldigt mycket, vid varje conditional branch. RISC-V hanterar detta med lite andra instruktioner, vilket man kan tänka sig ger komplexitet i ett översättningslager.

Sen att RISC-V har 47 instruktioner medan X86 har över 1500 gör också att RISC-V knappast är lika kompakt, det behöver inte betyda att det är sämmre dock.

Dom valde att inte ha med statusflaggor för RISC-V för att den skulle bli enklare att bygga. Statusflaggor är trevliga när man är ute efter prestanda.
RISC-V funkar för om en tillverkare behöver 256bit adds så lägger dom till det i hårdvaran, men när man försöker göra saker hårdvaran inte är byggd för så är RISC-V riktigt dålig.

Tror personligen att RISC-V kommer ta marknad för enklare devices som ARM har idag, eftersom man slipper betala för licensering.

Vi kommer nog till slut få en open source ISA att köra på våra desktops, men kan inte se att det blir RISC-V.

Permalänk
Medlem
Skrivet av GizmoTheGreen:

Antar en del av anledningen till så låg FPS är att de har ett "serverchip" med 64 kärnor dvs inte så hög frekvens per kärna?

5500XT är ju inget monster till ett grafikkort heller, men viktigast av allt - vi har ingen aning om vilken upplösning eller inställningar man kör på. En snabbgoogling visar att 5500XT precis klarade 60 fps vid 1080p, åtminstone i medel.

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av Dyluck:

Dom valde att inte ha med statusflaggor för RISC-V för att den skulle bli enklare att bygga. Statusflaggor är trevliga när man är ute efter prestanda.

Skälet till att de skippade statusflaggorna är nästan säkert att det är lättare att parallellisera och flytta om instruktioner om man inte har dem. Intel lägger till samma möjlighet till med APX av det skälet.

Visa signatur

5900X | 6700XT

Permalänk
Medlem

Om inte annat lär det ju finnas enorm potential för optimering om engagemanget och resurserna läggs dvs

Permalänk
Medlem
Skrivet av mpat:

Skälet till att de skippade statusflaggorna är nästan säkert att det är lättare att parallellisera och flytta om instruktioner om man inte har dem. Intel lägger till samma möjlighet till med APX av det skälet.

Intressant, har du någon bra länk? Inte kollat jättenoga trodde dom skulle dubblera generial purpose register och lägga till flera conditional instruktioner (som kollar flaggor liknande CMOV)

Permalänk
Medlem
Skrivet av Dyluck:

Intressant, har du någon bra länk? Inte kollat jättenoga trodde dom skulle dubblera generial purpose register och lägga till flera conditional instruktioner (som kollar flaggor liknande CMOV)

Att Intel lägger till möjligheten att ta bort statusflaggorna?

https://www.intel.com/content/www/us/en/developer/articles/te...

Tredje paragrafen från slutet.

Att det hjälper parallellisering står inte där, men i all enkelhet handlar det om att alla instruktioner som påverkar CC-flaggorna måste exekveras i ordning. Om en instruktion som påverkar CC väntar på data från cachen, så måste alla andra instruktioner som också påverkar CC vänta även om de i övrigt använder helt olika register. Det är nog viktigt att ha den möjligheten om man skall få ut maximalt av att dubbla antalet register.

Visa signatur

5900X | 6700XT

Permalänk
Datavetare
Skrivet av mpat:

Att Intel lägger till möjligheten att ta bort statusflaggorna?

https://www.intel.com/content/www/us/en/developer/articles/te...

Tredje paragrafen från slutet.

Att det hjälper parallellisering står inte där, men i all enkelhet handlar det om att alla instruktioner som påverkar CC-flaggorna måste exekveras i ordning. Om en instruktion som påverkar CC väntar på data från cachen, så måste alla andra instruktioner som också påverkar CC vänta även om de i övrigt använder helt olika register. Det är nog viktigt att ha den möjligheten om man skall få ut maximalt av att dubbla antalet register.

Egentligen står det ju där

"These enhancements expand the applicability of if-conversion to much larger code regions, cutting down on the number of branches that may incur misprediction penalties."

Att få hög IPC är i praktiken kraftigt beroende av att faktiskt kunna göra korrekt spekulering. Ett globalt flagg-fält ett rejält sänke för den möjligheten.

Vad man gör här är exakt samma som ARM64 gör: det finns en flagg-fält (när det är användbart är fördelen att man kan göra en viss sak med färre instruktioner), men i fallet ARM64 är normalfallet för i stort sett alla instruktioner att de inte påverkar flagg-fältet. De relevanta instruktionerna har en bit som säger: du ska uppdatera flagg-fältet, vilket Intel har kopierat i APX.

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

Jag blir lite nyfiken på varför man inte ser fler sådana här nyheter för Arm64? Snapdragon X har väl en M.2 anslutning där man med lite vilja hade kunnat koppla in en GPU?

Permalänk
Medlem
Skrivet av mpat:

5500XT är ju inget monster till ett grafikkort heller, men viktigast av allt - vi har ingen aning om vilken upplösning eller inställningar man kör på. En snabbgoogling visar att 5500XT precis klarade 60 fps vid 1080p, åtminstone i medel.

vad jag vet är det en av de få generation AMD kort man fått att fungera på arkitekturer utanför x86(_64), såsom ARM64 och risc-v.

Visa signatur

Xeon E5450@3.2ghz
9800GTX+

Permalänk
Medlem
Skrivet av jaqob:

Jag blir lite nyfiken på varför man inte ser fler sådana här nyheter för Arm64? Snapdragon X har väl en M.2 anslutning där man med lite vilja hade kunnat koppla in en GPU?

Möjligheten att ansluta ett grafikkort är ingen nyhet ens för RISC-V, SiFive har t.ex. haft utvecklingskort med PCIe sen många år tillbaka. Nyheten här är istället att man för (troligtvis) första gången lyckats köra ett AAA-spel på en RISC-V-dator, vilket för ARM64 är gammal skåpmat.

Permalänk
Medlem
Skrivet av perost:

Möjligheten att ansluta ett grafikkort är ingen nyhet ens för RISC-V, SiFive har t.ex. haft utvecklingskort med PCIe sen många år tillbaka. Nyheten här är istället att man för (troligtvis) första gången lyckats köra ett AAA-spel på en RISC-V-dator, vilket för ARM64 är gammal skåpmat.

Jo, jag förstår att det är en annan sak, och det är en intressant utveckling. Men har du något exempel där man kör ett AAA-spel, med en dGPU, på en högpresterande Arm64-processor så som Snapdragon X Elite?

Permalänk
Medlem
Skrivet av jaqob:

Jo, jag förstår att det är en annan sak, och det är en intressant utveckling. Men har du något exempel där man kör ett AAA-spel, med en dGPU, på en högpresterande Arm64-processor så som Snapdragon X Elite?

Inget specifikt exempel, men t.ex. Nvidia har haft ARM64-drivrutiner för Linux sen många år tillbaka. Och t.ex. Ampere Computing har en guide för hur man kör Steam på deras Altra-plattform.

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av jaqob:

Jo, jag förstår att det är en annan sak, och det är en intressant utveckling. Men har du något exempel där man kör ett AAA-spel, med en dGPU, på en högpresterande Arm64-processor så som Snapdragon X Elite?

Att det är diskret GPU är ju en smaksak. Tegra X1, dvs Nintendo Switch är ARM + PCIe-kopplad GPU. (jag hade fel, se längre ner).
Ärligt talat är ju alla GPU:er numera PCIe kopplade så skillnaden på att det är en kontakt eller inbyggt i kislet är noll.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av perost:

Inget specifikt exempel, men t.ex. Nvidia har haft ARM64-drivrutiner för Linux sen många år tillbaka. Och t.ex. Ampere Computing har en guide för hur man kör Steam på deras Altra-plattform.

Intressant länk, tack!

Skrivet av DavidtheDoom:

Att det är diskret GPU är ju en smaksak. Tegra X1, dvs Nintendo Switch är ARM + PCIe-kopplad GPU.
Ärligt talat är ju alla GPU:er numera PCIe kopplade så skillnaden på att det är en kontakt eller inbyggt i kislet är noll.

Jag sa kraftfull

Och det var såklart inte PCIe i sig som var det intressanta, utan en diskret, utbytbar, GPU. Det ska bli väldigt intressant att se när det dyker upp en plattform med högpresterande Arm64-kärnor och PCIe-kontakter, som är rimligt tillgänglig för vanliga konsumenter. Ampere Altra är spännande, men priserna är det inte.

Permalänk
Inaktiv
Skrivet av jaqob:

Intressant länk, tack!

Jag sa kraftfull

Apple M3 Max har 92Miljarder transistorer, majoriteten av detta är till GPUn, det lär vara minst lika mycket kisel för GPUn som i ett 4080. Och finns väl en hel del spel man kan spela på mac på dessa processorer? Nu verkar ju inte direkt dessa GPU:er skala sådär superbra i spel, men poängen kvarstår.

Permalänk
Datavetare
Skrivet av DavidtheDoom:

Att det är diskret GPU är ju en smaksak. Tegra X1, dvs Nintendo Switch är ARM + PCIe-kopplad GPU.
Ärligt talat är ju alla GPU:er numera PCIe kopplade så skillnaden på att det är en kontakt eller inbyggt i kislet är noll.

iGPU i Tegra (nog i de flesta designer med iGPU) använder inte PCIe, det vore lite som att gå över ån för att hämta vatten.

Den använder en kombination av NVIDIA Coherent Interconnect (NCI) och AXI (Advanced eXtensible Interface).

Kom på att jag faktiskt har en NVIDIA Jetson TX1 liggande. Där finns PCIe (tror det är 4x PCIe 2.0). Får man tråkigt vore det intressant att stoppa dit en dGPU och ser om det fungerar... Har ett GTX 970 liggade och Nvidias Linux-drivers har sedan länge haft stöd för ARM64.

Visa signatur

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

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av Yoshman:

iGPU i Tegra (nog i de flesta designer med iGPU) använder inte PCIe, det vore lite som att gå över ån för att hämta vatten.

Den använder en kombination av NVIDIA Coherent Interconnect (NCI) och AXI (Advanced eXtensible Interface).

Kom på att jag faktiskt har en NVIDIA Jetson TX1 liggande. Där finns PCIe (tror det är 4x PCIe 2.0). Får man tråkigt vore det intressant att stoppa dit en dGPU och ser om det fungerar... Har ett GTX 970 liggade och Nvidias Linux-drivers har sedan länge haft stöd för ARM64.

Okej, jag har faktiskt inte koll på hur en AXI-enhet enumreras i hårdvarulistan i datorn när man interfacear direkt från OS, men misstänker att det inte är någon större skillnad. Lär väl dyka upp som en minnesadress och som man får skriva sin drivrutin till.

AXI till PCIe bryggor är ju inget konstigt att använda och närmast transparent när man väl klurat till alla BARs och översättningar mellan adressrymderna.

Det sagt:
ARM + PCIe, inget nytt.
ARM + Spel, inget nytt.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av DavidtheDoom:

Okej, jag har faktiskt inte koll på hur en AXI-enhet enumreras i hårdvarulistan i datorn när man interfacear direkt från OS, men misstänker att det inte är någon större skillnad. Lär väl dyka upp som en minnesadress och som man får skriva sin drivrutin till.

AXI till PCIe bryggor är ju inget konstigt att använda och närmast transparent när man väl klurat till alla BARs och översättningar mellan adressrymderna.

Det sagt:
ARM + PCIe, inget nytt.
ARM + Spel, inget nytt.

Modern ARM (inte Cortex-A57 eller dyl) + extern GPU via PCIe + AAA spel. Inte nytt, men jag hittar verkligen inte många exempel när jag söker.

Permalänk
Medlem
Skrivet av GizmoTheGreen:

vad jag vet är det en av de få generation AMD kort man fått att fungera på arkitekturer utanför x86(_64), såsom ARM64 och risc-v.

Absolut, jag menade mest att den låga frameraten måste sättas i relation till att GPUn inte är något monster ens från början.

Visa signatur

5900X | 6700XT

Permalänk
Medlem
Skrivet av mpat:

Absolut, jag menade mest att den låga frameraten måste sättas i relation till att GPUn inte är något monster ens från början.

Jag tror inte den är flaskhalsen, har ett 5500 xt hemma och vill minnas att den är rätt kapabel.
https://youtu.be/IEa6FOl87oY ca 50fps average enligt video här.
https://youtu.be/vXEbRv69lPI 40fps på ultra med intel 4770 cpu dessutom.

Visa signatur

Xeon E5450@3.2ghz
9800GTX+

Permalänk
Medlem

På Ars och osnews pratar de om att x86_64 to RISC-V behöver 7 cycles i snitt per 3 cycles på en ryzen i snitt för att köra x86_64 kod (om så är fallet vet jag inte). Så hypotetiskt även om RISC-V processorn är dubbelt så snabb så når den inte samma prestanda som en ryzen med x86_64 binärer.

OM det stämmer, så är det nog ett bra tag tills de kör sådana binärer i "full speed", och därmed får man nog förlita sig i större grad till "native" binärer.

Visa signatur

2x Xeon E5-2699 v4, 256gb Quad Channel RAM, 2x nVIDIA 980ti
----
AMD Ryzen 5950X, 128gb Dual Channel RAM, 2x AMD 6900XT
----
Massiv amiga och 3dfx-samling.

Permalänk
Medlem
Skrivet av Sinery:

"De skriver också om specifika frustrationsmoment, som hur de tvingas använda tio rader assemblykod för RISC-V för att göra samma sak som en rad för x86-64."

Frustrationen var mest för att x86-64 är lite speciell, med 8-bittars register på bittarna 15-8 inuti ett 64-bittarsregister.

Assembler-hackare på Reddit tog genast sig an problemet och fick ner det till fyra rader kod.

Visa signatur

“It is difficult to get a man to understand something, when his salary depends upon his not understanding it!”

Permalänk
Medlem
Skrivet av GizmoTheGreen:

Antar en del av anledningen till så låg FPS är att de har ett "serverchip" med 64 kärnor dvs inte så hög frekvens per kärna? ska bli spännande med mer risc-v alternativ för "hemma bruk".

Kärnan som det är 64 av, T-Head C920 är egentligen lite gammal, och saknar nyare instruktioner som skulle göra det mesta snabbare. Dessutom stödjer den inte den officiella versionen av vektor-utökningen, så alla SSE-instruktioner har fått emuleras ett element i taget.

Visa signatur

“It is difficult to get a man to understand something, when his salary depends upon his not understanding it!”

Permalänk
Medlem
Skrivet av GizmoTheGreen:

småkollat på en visionfive2 för att börja leka lite med det. borde gå att offra M.2 slotten till en gpu om man kör os från emmc eller sd, alternativt usb3.

andra alternativ typ itx/matx formfaktor kostar skjortan än så länge.

Milk-V Jupiter är inte dyr...
...men slutsåld.

Jag var sugen på att prova, men kunde inte beställa p.g.a. "Out of stock".
Vet inte när det kommer in nya i lager?