Vícero CPU na různých taktech/ velikostech cache, atd.
Napsal: stř 4. črc 2012, 17:43
Kdysi dávno když jsem se poprvé zabýval multi-CPU systémy (zhruba léta páně 2003), jsem četl zajímavou teorii, že SMT a celá ta věc se vůbec nemusí skládat z mnoha těch samejch CPU. Teoreticky prý neni problém kombinovat CPU s různo ufrekvencí (jinej násobič) a klidně i různé velikosti cache, atd.
Ale dnes jsem něco takového viděl poprvé v praxi. Na Aukru jsem koupil 2x slot 1 desku a byly k ní přibaleny 2 naprosto různé CPU. PII 450Mhz made in Malaysie a 350Mhz made in Irreland. Oba dva FSB100 oba dva HW locknutej násobič. Jaké mé překvapení když se mi je v desce podařilo rozject oba dva najednou a na různejch taktech. Jeden CPU (ověřeno v CPU-Z) běží na 450 a druhej 350Mhz, win je normálně vidí oba dva. A krom trošku popleteného task managera kterej nedovede tuhle situaci pochopit a ačkoliv system idle process je 99% tak hlásí CPU load 50% v poměru tak 2/3 mezi jádry, tak vše funguje (při vyloadování už hlásí i poměr správně). OS je svižnej, stable, a dokonce jsem zkoušel spustit CPUmark s aifinitou na CPU0 = 18,6 bodu, CPU1 = 15,3 bodu. Takže to tak opravdu funguje. V budoucnu se chystám dále s tím experimentovat když mam tuhle desku co neřeší že se CPU nehopděj do páru, dam tam P3ku s P2 najednou, ala jeden CPU co umí SSE a druhej ne a spustim v multithreadu aplikaci co to vyžaduje (třeba dnešní FFDshow kodeky), co se stane, atd.
Ale pointa je taková že to funguje a ani se tomu niak nemusí přizpůsobovat OS či aplikace.
A i dnes už tu máme CPU které maj nevyrovnanej výkon na thread ( Intely s aktivnim HT při full loadu, nebu buldozer díky sdílenému Front endu a FPU), tak proč prostě nenavrhnout CPU co by byl defakto jako výpočetní blok skládající se z různejch čipů. Ten prototyp Larabe co byl do socketu pro CPU neni až tak nesmyslná myšlenka. Já bych si v systému dovedl představit třeba jedno čtyřjádro nebo i jen 2, které by mělo 5Ghz 2MB L2 20MB L3, široká pipeline, silná FPU, něco na stylu Inteláckejch CPU ale ještě víc optimalizovaný s decap ringem, atd. A vedle toho další křemík s třeba 32-minijádry na 2Ghz, architektury něco jako je bobcat. + Klidně to udělat modulárně, třeba na 4ALU jednu FPU. Singhle thread limited aplikace by mohly těžit z toho silného a neomezně multithread aplikace by naopak mohly těžit z tuny těch malejch co by pro takovej SW dost možná podaly lepší výkon vs WAtt vs plocha. Klidně by to šlo dát na jeden kus křemíku vše společně. Proč tohle zatím Intel nebo AMD neudělali? Technicky tam nevidim překážku a dovedu si představit poměrně fajn výkon.
Ale dnes jsem něco takového viděl poprvé v praxi. Na Aukru jsem koupil 2x slot 1 desku a byly k ní přibaleny 2 naprosto různé CPU. PII 450Mhz made in Malaysie a 350Mhz made in Irreland. Oba dva FSB100 oba dva HW locknutej násobič. Jaké mé překvapení když se mi je v desce podařilo rozject oba dva najednou a na různejch taktech. Jeden CPU (ověřeno v CPU-Z) běží na 450 a druhej 350Mhz, win je normálně vidí oba dva. A krom trošku popleteného task managera kterej nedovede tuhle situaci pochopit a ačkoliv system idle process je 99% tak hlásí CPU load 50% v poměru tak 2/3 mezi jádry, tak vše funguje (při vyloadování už hlásí i poměr správně). OS je svižnej, stable, a dokonce jsem zkoušel spustit CPUmark s aifinitou na CPU0 = 18,6 bodu, CPU1 = 15,3 bodu. Takže to tak opravdu funguje. V budoucnu se chystám dále s tím experimentovat když mam tuhle desku co neřeší že se CPU nehopděj do páru, dam tam P3ku s P2 najednou, ala jeden CPU co umí SSE a druhej ne a spustim v multithreadu aplikaci co to vyžaduje (třeba dnešní FFDshow kodeky), co se stane, atd.
Ale pointa je taková že to funguje a ani se tomu niak nemusí přizpůsobovat OS či aplikace.
A i dnes už tu máme CPU které maj nevyrovnanej výkon na thread ( Intely s aktivnim HT při full loadu, nebu buldozer díky sdílenému Front endu a FPU), tak proč prostě nenavrhnout CPU co by byl defakto jako výpočetní blok skládající se z různejch čipů. Ten prototyp Larabe co byl do socketu pro CPU neni až tak nesmyslná myšlenka. Já bych si v systému dovedl představit třeba jedno čtyřjádro nebo i jen 2, které by mělo 5Ghz 2MB L2 20MB L3, široká pipeline, silná FPU, něco na stylu Inteláckejch CPU ale ještě víc optimalizovaný s decap ringem, atd. A vedle toho další křemík s třeba 32-minijádry na 2Ghz, architektury něco jako je bobcat. + Klidně to udělat modulárně, třeba na 4ALU jednu FPU. Singhle thread limited aplikace by mohly těžit z toho silného a neomezně multithread aplikace by naopak mohly těžit z tuny těch malejch co by pro takovej SW dost možná podaly lepší výkon vs WAtt vs plocha. Klidně by to šlo dát na jeden kus křemíku vše společně. Proč tohle zatím Intel nebo AMD neudělali? Technicky tam nevidim překážku a dovedu si představit poměrně fajn výkon.