Skrivet av Petterk:
@Yoshman: ISA är inte värt 50 miljarder USD när de kan fortsätta att licensiera ARM, och har ju som sagt inget som helst med Windows på Nvidia att göra så där finns det ju inget att diskutera. Jag förstår att det finns värde i ISA, men det värdet finns ju tack vare att de själva utvecklar IP de säljer, så att de själva kan driva på utvecklingen och besitta kompetensen som behövs för detta.
Fortsätter de licensiera av ett fristående ARM kan de fortsätta ta del av allt arbete som läggs på kompilatorer av alla andra. Skulle de stänga ner eller uppfattas som konkurrenshämmande skulle mycket av detta arbete riktas mot RISC-V, Power och MIPS, eller t.o.m. x86-64 (AMD och VIA kan ju bistå med custom-CPUer). Förstår att du kanske vill att de satsar på RISC-V, men det är ju knappast i Nvidias intresse.
Gör detta tankeexperiment: om ISA inte är viktigt borde inte ARMs värde ändras nämnvärt om de inte längre fick behålla all IP men den var i stället tvingad till att köra MIPS64 eller PowerPC. Självklart är ARM64 värt väldigt mycket då både Apple och ARM själva visat att det är en ISA som kan ge långt bättre prestanda än x86_64 och även bättre prestanda än deras egen ARM32 på samma CPU.
Det var inte alls en självklarhet att ARMs satsning på att designa en ny ISA från scratch skulle vara en vettig idé. Det visade sig i slutändan vara värt det då ARM dels själva insåg hur kritisk programvara är så de la själva väldigt mycket resurser på ARM64 initialt för att via andra vilken potential denna ISA hade. MIPS verkar aldrig ha insett detta och för PowePC insågs det försent, PPC klarade sig bra inom embedded länge då PPC (ISA, inte specifik IP) hade en rad fördelar över x86 i realtidsapplikationer.
Om artikeln vi läser stämmer är ju uppenbarligen Nvidia intresserade av ARM, varför annars ens föra en diskussion? Finns ett par anledningar, men Nvidia är precis som Qualcomm faktiskt ett företag som backar RISC-V på högsta nivån.
Nvidia använder redan RISC-V i sina GPUer som kontrollprocessor och man har forskningsprojekt på RISC-V för att använda RISC-V i prestandakritiska delar.
Så varför visar Nvidia då överhuvudtaget intresse för ARM? Enda rimliga jag kan komma på är att om Nvidia äger ARM löser de en av huvudanledningarna att de själva kör RISC-V i kontrollprocessor: de lär ju inte behöva betala licensavgifter till sig själva vilket gör det möjligt för dem att använda ARM rakt igenom, även där licenskostnaden annars skulle göra det orimligt.
Finns ju riktigt billiga ARM-kretsar, t.ex. Arduino kompatibla mikrokontrollers för ~$10, men finns redan RISC-V baserade mikrokontrollers med liknande prestanda och egenskapar för $3-4.
Enda rimliga orsak jag kan se att Nvidia ändå ser ett intresse är att de genom att kontrollera ARM kan få tillgång till en, för dem som ägare, lika billig ISA som RISC-V fast med långt mer mogen programvara och en ISA (ARM64) som redan bevisats kunna prestera bättre än någon tidigare ISA. RISC-V bedöms kunna ge liknande fördelar som ARM64, men man vet inte om det stämmer innan någon faktiskt visat att så är fallet. Men ser hoppfullt ut på mikrokontrollsidan, där verkar RISC-V vara helt i nivå med ARM vad det gäller energieffektivitet. Det betyder inte självklart att samma gäller på high-end, jämför ARM32 och ARM64, bara den senare fungerar väl att skala upp till riktigt high-end (och orsaken ligger utanför 32 vs 64-bit).
Skrivet av Petterk:
Att rendera DX som TBR i hårdvaran kan för övrigt göra GPUn effektivare, Nvidia gör ju redan detta. Största problemet med Windows på Mali, Vivante, VideoCore eller IMG är ju dock att drivrutinerna skulle ta år att mogna. Det är egentligen inte så stort problem för desktop, där hade de kunnat börja ge stöd för diskreta kort från AMD och Nvidia på desktop-system med ARM64, precis som finns på Power (Nvidia) och och andra system i desktop-formfaktor.
Det Nvidia gör från Maxwell och framåt är inte samma sak som TBDR GPUer gör. Om så vore fallet säger du i praktiken att de som jobbade med Vulkan och Metal inte vet vad de håller på med, de hävrad ju trots allt att man måste anpassa APIet till dessa GPUer för att de ska kunna vara riktigt effektiva.
Testet som RealWorldTech på Maxwell gjorde hade en stor brist: man testade enbart väldigt stora trianglar (de täckte halva bilden) och alla trianglar renderas ovanpå varandra.
Har laddat ner programmet och ändrat så att 10x10 trianglar renderas i en grid där de bara delvis överlappa. Resultatet visar då rätt tydlige att GPUn jag kör på, RTX2070, bara försöker hålla sig till "tiles" hyfsat. Är inte längre alls så att en "tile" renderas klart innan man börjar på nästa utan verkar kunna vara upp mot ~10 tiles som renderas samtidigt. Det är fortfarande en optimering då man får bättre cache-hit-rate än att inte alls dela upp det i tiles. Men det är helt klart ett annat mönster jämfört med "riktiga" TBDR GPUer, de måste jobba sig igenom tile-för-tile då hela rastreringssteget är designat runt detta!
Vulkan/Metal tillåter en del rastreringsvarianter som drar full nytta av att t.ex. Z-buffer ligger i SRAM på TBDR-korten inom en tile. Det går att definiera render-pipeline i Vulkan/Metal att helt uppföra sig som en "vanlig" Z-buffer, så man kan därför stödja t.ex. DX12, men prestanda blir rejält lidande i det fallet! Så Mali/Adreno/PowerPR fungerar under Windows/DX12, men i det läget blir de inte mer effektiva än AMD/Intels iGPUer och de är inte speciellt imponerande...
Har som sagt ingen aning hur sannolikt det är att Nvidia faktiskt köper ARM. Men för ARM64 on Windows skulle det finnas ett par fördelar om man fick till en riktigt bra SoC med ARM64 CPU + Nvidia GPU. Jetson-korten är allt annat än optimal som SoC för Windows, de är enbart riktade på inbyggda system där man behöver GPU, datorseende och liknande. Nvidias egna CPU-design är kass som generell CPU.
Har dock ingen aning om Nvidia är så sugna på att ge sig in i laptopmarknaden, om de köper ARM lär orsaken på kort sikt ligga i att kapa åt sig större andel i datacenter. De lär också se värde i att fortsätta ARMs nuvarande affärsmodell, annars lär köpet inte bli vettigt.