Citat:
Ursprungligen inskrivet av Hummus
Till att börja med är x86 ett gammal härk from 70-talet. Intel och AMD har visserligen lyckats hålla prestandan uppe ändå, men det är långt ifrån gratis, vare sig i form av chip-yta eller utvecklingskostnader. Vare ny core Intel lägger till sitt chip kommer därför att ha onödigt overhead i form av en x86-decoder.
Läs igenom x86 dokumentationen så ser man varför det instruktions-settet inte är ett särskilt bra val. Finns alla möjliga skumma instruktioner, dolda beroenden och sidoeffekter av instruktionerna.
Jo att x86 för med sig en hel del bagage håller jag med om. Det är ju knappats den enklaste och renaste instruktionsuppsättning man kan tänka sig. Men jag tror ändå att det kan komma att löna sig för Intel att de gjort det valet med tanke på vad jag uppfattar som deras långsiktiga mål. Att bygga en generell accelerator arkitektur. Vinsten blir ju att de kan få en enda instruktionsuppsättning för alla processorer (om vi bortser från vektorinstruktioner men jag misstänker att de kan konvergera i framtiden). Att bara ha ett ISA ger fördelen att samma utvecklingsverktyg och metoder som används för att skriva prestandakod på deras traditionella CPU:er kan användas till Larrabee och det blir lättare för utvecklarna. Speciellt trevligt är det ju att Larrabee har samma minnesordningsmodell och "coherency"-modell som en vanlig x86 CPU.
Men jag heller fullständigt med om att det inte är gratis, de kommer ju få betala ett pris. Frågan är hur högt det blir. Det borde ju vara ok att implementera det stökigaste med microkod eller andra trick för att göra det lite lättare. Om det visar sig att kostnaden är för hög kanske de helt enkelt låter ett antal kärnor dela på en x86 dekoder och använder nått enklare för de applikationer som är kompilerade rätt.
Jag tror dock inte att sånna ninja fasoner kommer bli nödvändiga för de har övat länge på att bygga x86 decoders nu och de kan nog göra dem rätt billiga. Det ska bli väldigt spännande att se hur det går när de väl släpper den.
Citat:
Ursprungligen inskrivet av Hummus
För det andra så även om det är x86 så kan man inte direkt koda som vanligt på dom. Ska du få ut någon prestanda alls måste du använda deras nya SIMD extensions, som alltså inte är samma som SSE, utan helt nya.
Ja det kommer ju krävas att man vektoriserar koden och det är inte heller SSE kompatibelt. Men vektorisering är ju en väldigt beprövad och välkänd teknik för de utvecklare som de riktar chipet mot. Och att det inte är exakt SSE eller AVX tror jag inte gör så mycket då det förmodligen sköts av intrinsics eller liknande. Bara man vet hur man strukturerar sitt problem så det går att vektorisera borde själva instruktionsuppsättningen spela mindre roll. Intel har ju länge stöttat HPC utvecklare med kompilatorer och andra verktyg för att skriva bra vektoriserad kod.
Citat:
Ursprungligen inskrivet av Hummus
För det tredje så kommer Intel att bli tvungen att vara binär-kompatibel med Larrabee när de kommer med Larrabee 2. Och trean måste ha stöd för allt som ettan och tvåan hade. osv. Man målar alltså in sig i ett hörn redan nu, ungefär som med x86 på CPU sidan. Grafikkort å andra sidan har inte det problemet, och ett Radeon HD2900 är på inget sätt kompatibelt med t.ex. Radeon X1900.
För grafikkortstillämpningar är det ju förmodligen ett minus men för allt annat är det ett gigantiskt plus. Man kan vara säker på att programmet man skriver kommer fungera på framtida versioner, om än kanske inte optimalt. Även Nvidia har ju målat in sig lite när de garanterar att CUDA kommer bete sig exakt lika mellan generationer även om de fortfarande har viss frikoppling då mycket sker i kompileringen.
Citat:
Ursprungligen inskrivet av Hummus
För det fjärde är specialiserad hårdvara alltid är mycket effektivare än generell. Det gäller såväl rå prestanda, som prestanda per watt, prestanda per chip-yta, och då förstås i slutändan prestanda per krona. Många av variablerna är ganska låsta, så Intel kan inte bara "feta på mera" för att konkurrera. Chipet ska ju helst inte brinna upp eller bränna din nätdel.
För det femte, allt du får "gratis" på grafikkort måste Larrabee hantera i mjukvara. Intel verkar utgå från att pixelshadern är allt som räknas.
Ja helt klart kan man gör en ASIC mer effektiv än en CPU men som jag skrev i ett tidigare inlägg hur stor del av en modern GPU är egentligen ren fixfunktionshårdvara? Jag vet inte svaret på det men jag tror inte att det är majoriteten med tanke på vad som krävs av dx10. Hur kommer det se ut då dx12 kommer? Speciellt med tanke på att det kommer ett exempel på en fullständigt programmerbar "GPU" i form av Larrabee? Larrabee har ju också viss grafikspecifik hårdvara för att dra nytta av de största vinsterna med dedikerad hårdvara.
Citat:
Ursprungligen inskrivet av Hummus
Öh, det här är annars traditionella grafikkorts styrka. När en shader core t.ex. samplar en textur så sitter den ju inte och idlar och väntar på resultatet. Tvärtom, den börjar istället på nästa pixel, och när den också samplar så hoppar den till en tredje, så länge det finns plats i dess register file. Sen när man kommit varvet runt så ligger de samplade texturvärdena färdiga att räkna på.
På Larrabee å andra sidan kommer mjukvaran att behöva hantera det här manuellt.
Ja Ati/Nvida är nog väldigt duktiga på att utnyttja sin hårdvara maximalt men det kommer alltid att finnas situationer då ökad flexibilitet kan ge vinster. Ta tex exemplet med hur det förut var skillnad på geometri- och pixelshaders. Vissa applikationer maxade den ena resursen medans den andra gick på halvfart. När man ökade flexibiliteten och slog samman dem så kunde man alltid använda hela resursen oavsett var tyngdpunkten i applikationen fanns. Det lär finnas fler liknande möjligheter kvar för intel att leka med, frågan är hur mycket vinster det finns att hämta hem.
Citat:
Ursprungligen inskrivet av Hummus
Glöm alla "det är bara att slänga in ett till chip". Det funkar inte så. Ett till chip betyder dubbelt så dyr, dubbel strömförbrukning och dubbla värmeutvecklingen. Om man inte redan ligger rimligt lågt på de variablerna så går det inte att bara feta på mera. T.ex. så är det osannlikt att vi kommer att få se någon X2-variant av GTX 280, just för att chippet redan är väldigt stort och tar för mycket ström.
Nä helt klart är ju att intel måste träffa hyffsat rätt för att kunna var med och slåss utan att det ska bli en ny p4 historia. Men p4:an visade också att man kan vara konkurrenskraftig med en rätt dålig lösning om man verkligen vill och har resurser.
Citat:
Ursprungligen inskrivet av Hummus
Mer generella kommer vi säkert att få, men man måste alltid väga in prestanda och kostnad i ekvationen. Ett plocka över x86 till grafikkorten är helt fel approach. Bättre att ta beprövade koncept på GPU-sidan och göra allt mer programmerbara.
Om det bara hade handlat om att göra grafikkort hade jag hållit med till 100% men som du märker är jag betydligt mer intresserad av att se vad kretsen kan göra utanför grafikområdet. Och därför tycker jag inte att de är helt fel ute. Dock är det ju klart att det är lite av en chansning och vi får se hur bra de lyckas men jag tycker att trenderna talar lite för att det borde gå.
Citat:
Ursprungligen inskrivet av Hummus
Fast det är väl inte till Intels fördel heller. Halva ekvationen är ju mjukvaran. Intel har inte direkt imponerat med drivrutiner och som deras chip är nu är det ju mångadubbelt mer svårkodat än ATI och Nvidias. Har svårt att se hur dom ska lyckas. Sen även om Intel har bättre hårdvaruteknik generellt så räcker det ju bara en gång. Ett halvår senare har ATI och Nvidia släppt nya kort, och sen om ett halvår igen, och igen. Intel måste ju hänga med i takten som råder på GPU sidan också om det ska ha någon chans. Om de då sitter och småpillar med custom logic och manuellt routing så kommer de att hamna efter rätt fort.
Ja när vi pratar drivrutiner till grafikkretsar springer nog de flesta på Intel och skäms i ett hörn. Helt klart har de mest att bevisa här och det är kanske inte så mycket som talar för att de ska lyckas jättebra första gången även om de bevisat att de kan bygga bra mjukvara i andra sammanhang.
Ev tror jag du kanske underskattar Intels process övertag (jag spekulerar ju bara så jag kan ju vara helt fel ute). I min mening har de ju gång på gång bevisat att ingen rår på dem när det gäller prestanda och yields.
Avslutningsvis så tror jag att du har rätt när du säger att den väg Intel valt inte är det mest optimala om man vill bygga ett grafikkort men det tror jag inte var tanken heller. Jag tror de siktar på att bygga en "GPU" som är tillräckligt bra för att kunna sälja i hyfsade volymer inledningsvis och därefter slå sig in på många fler marknader. Och när de väl lärt sig av sitt första försök så kan de nog rätta till de största problemen även på "GPU" sidan.
Det tråkiga är nog att Intel iskallt räknar med att hur fel de än satsat så har de pengar och resurser nog att ta sig in på vilken marknad som helst. Hur tekniskt intressant jag än tycker att Larrabee är sitter jag ju och småhoppas på att den inte blir för bra på just grafik. Vi behöver ju inte ett monopol till...
edit:
Glömde tacka för att du skrev ett väldigt sansat och bra svar, det är tyvärr lite sällsynt här på forumet. Och så ska jag nog be om ursäkt för den här jätteposten...