Anslut till Senaste Tekniska Nyheter, Bloggar, Recensioner

LINPACK: Nehalem vs Shanghai del 2

Det förra inlägget genererade några mycket intressanta kommentarer och frågor som jag ville ta upp. Tyvärr har vissa personer misstolkat inlägget som en recension av “de bästa poäng Nehalem och Shanghai kan få i Linpack”.

Så låt mig göra detta mycket tydligt: ​​det här och föregående blogginlägg är det inte menat att vara en “köparguide”. Nehalems skrivbordssystem och AMD “Shanghai”-servern är helt olika maskiner, inriktade på helt olika marknader. Normalt bör vi vänta på att Xeon 5500 ska köra den här typen av riktmärken, men betrakta detta som en förhandsvisning av nyfikenhet.

För det andra försökte vi inte få högsta möjliga LINPACK-poäng på båda arkitekturerna. Vi ville använda en binär som har bra optimeringar för både AMD:s och Intel CPU:er. Helt optimerade binärfiler kommer inte ens att köras på den andra CPU:n. Vårt enda mål är att få en uppfattning om hur Nehalem- och Shanghai-arkitekturen står sig när man kör en “LINPACK”-lik binär som är optimerad för att köras på alla maskiner.

För det tredje är detta naturligtvis inte vår recension. Det här är ett blogginlägg som berättar om några av testerna vi gör för granskningen.

MKL på AMD?

Att använda Intel Math Kernel Libraries på en AMD-processor är naturligtvis ett bra sätt att starta några tunga debatter. Som jag påpekade i förra blogginlägget, i vissa fall, gör dock de lite äldre MKL-versionerna fortfarande ett mycket bra jobb på AMD-processorer när du benchmarkar med låga matrisstorlekar. Du behöver naturligtvis inte ta mitt ord för det.

Jämför Intel Linpack 9.0 (tillgänglig mitten av 2007) med det binära det AMD tillverkad slutet av 2007. AMD skapade endast en K10-version med ACML-version 4.0.0 och kompilerade Linpack med PGI 7.0.7-kompilatorn (med följande flaggor: pgcc -O3 -fast -tp=barcelona-64).

Alla riktmärken nedan görs på en CPU med 4 GB (AMD, Intel Xeon) eller 3 GB (Intel Core i7). Speedstep, Powernow! och turboläget inaktiverades.

Som förutspått är ACML-binären som kompilerades med kompilatorn från 2007 långsammare än MKL “2007”-versionen som också kompilerades 2007. MKL-versionen körs på vilken CPU som helst som har stöd för (S)SSE-3, så det fortsätter att vara mycket intressant för oss att testa. Som du tydligt kan se från Xeon 5472 (3 GHz)-poängen är den inte helt optimerad för de senaste 45 nm Intel-processorerna med SSE-4. Det är en bra “inte för optimerad” version som kan användas på både Intel- och AMD-processorer. Du kan tydligt se detta eftersom 3 GHz Xeon 5472 ligger bakom AMD Opteron 8384. Om denna Intel Binary gav AMD-processorerna en dåligt optimerad kodväg, skulle detta inte vara möjligt.

När vi går framåt till 2008 måste vi skapa en ny binär då både AMD och Intels helt optimerade Linpack-versioner inte kommer att köras på konkurrentens CPU. Intel släppte Linpack benchmark version 10.1som inte är helt optimerad för “Nehalem”-arkitekturen, utan för 45 nm “Harpertown”-familjen.

AMD har skapat en ny Linpack binär med hjälp av ACML 4.2 och PGI 7.2-4 kompilatorn. Nedan ser du hur de två CPU:erna jämförs.

Sammanfattningsvis är att dessa LINPACK-riktmärken är rörliga mål som SPEC CPU-riktmärken, eftersom kompilatorerna och biblioteken som används är lika viktiga som processorerna. När Xeon 5500 kommer att realiseras kommer LINPACK-prestanda förmodligen att bli högre eftersom binären är byggd för Familjen “Penryn/Harpertown”.

Även om det är användbart för HPC-folket att se vilken CPU + kompilator som kan erbjuda bäst prestanda, är det också intressant att förstå vilken typ av prestanda du får när du kompilerar binärer som måste köras på alla nuvarande CPU:er. Det är ganska svårt att jämföra CPU-arkitekturer om du använder helt olika binärer.

I nästa inlägg ska vi fördjupa oss lite djupare om vad som händer med Hyperthreading, Linpack och de nya arkitekturerna.