Az AMD és az Intel is ősszel gyorsít
Jelentkezz be a hozzászóláshoz.
1. A P4 celeron rettenetesen lassú. Ilyenen láttam akadozni divx lejátszást is (nem HD), ami azért már elég durva.
2. A P2 korszakban a cache-optimalizáció nem sokat számított, ma viszont az egyik legfontosabb dolog. Óriási sebesség különbséget jelenthet csak az, hogy hogyan és milyen sorrendben olvasod az adatokat a memóriából.
3. Valami gond van a mérésse.
4. Valami, amire nem gondoltunk.
Amit tehetsz:
1. Nézd meg a progit egy Core2-n, vagy X2-n. Mindkettõ szanaszét alázza a P2-ket minden szempontból. Én nemrég pár régi P1-P2 korszakban írt progimat néztem meg csak egy vacak A64 3000+-on, és azok az emlékeimhez képest embertelen gyorsuláson mentek át. Pl. az egyik a régen 10-20 másodpercig tartó számolást valós idõben produkálta.
2. Nézd át a kódot, és igazítsd a mai igényekhez. Fõként a memória elérést érdemes átnézni. A legfontosabb, hogy legalább 32-bites egységekben olvass, és 32-bites regiszterekkel számolj, a tömb elemeket növekvõ sorrendben olvasd, és akkora adatblokkokkal dolgozz egyszerre, amik bõven elférnek a cache-ben.
3. A mérésre inkább használj RDTSC-t, az sokkal pontosabb és megbízhatóbb, mint a rendszeróra (de kétmagos prociknál vigyázni kell vele).
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Ugrásbecslés, chache meghülyülés, ezekben lehet valami. Kézzel írt assembly az egész, és hát én természetesen nem igazítottam chache-line határra a subrutinokat, meg az adatokat...
A Celeronom egyébként következetesen P4 generációnak mutatkozik be, csak sokkal kisebb chache-sel. Van valami alverzió, amibõl tudni lehet hogy csak Celeron, de állítólag HyperThreadingot is tud, csak le van tiltva benne (CPUID utasításkor a visszaadott HT flag aktív).
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Az is lehet, hogy a kódod meghülyíti az ugrásbecslést, vagy a cache-kezelést, vagy más efféle.
Egyébként a P4 Celeront nem kellene P4-nek mondani, mert igencsak nagy a különbség a kettõ között.
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
nincs emulálva semmi! nincs operációs rendszer! a csupasz vason fut a program! floppyról bootol a programom. átkapcsol védett módba (a Windows XP is ebben a módban fut). Normál, 32 bites, általános integer és memóriacímzõ utasításokat használok, amik már 386-os óta megvannak. ezeket használják a programok az esetek 80%-ában (a P4-en is). Az igazi hardverórát olvasom, azt, amit IO regisztermûveletekkel lehet elérni.
ugyanaz a módosítatlan kód picit lassabb P4-en, mint P2-õn. azt tudom, hogy mindkettõ beljesében egy RISC dolgozik, de ennyire nehéz lenne P4-en értelmezni ugyanazt a kódot? én is nagyot néztem, sok tesztet csináltam után, hogy biztos lehessek benne.
Direkt kikapcsolom a megszakításokat a futásidõre, nehogy az APIC okozzon bajokat. Még a lapozást is kikapcsoltam, nehogy az MMU miatt legyen eltérés. Sõt, legmagasabb processzorprivilégiummal fut a program, tehát még jogosultságokat sem ellenõriz (hogy pl. van-e jogom IO mûvelethez, vagy sem). Annyira tudok még gondolni, hogy talán valami extra cache utasítással be kellett volna olvastatnom talán a memóriaterületet a cache-be? Ezt lehet hogy egy oprendszer elvégzi automatikusan... de ez csak tipp, megpróbáltam már utánanézni, hogy van-e ilyen, de nem találtam rá utalást az inteles dokumentációban.
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Elismerem, hogy vannak új utasítások, amik gyorsak, én általános utasításokat használtam. Azok lassúak maradtak.
dez, maxspeed2107:
Ennyire rossz lenne a P4-es Celeronom IPC-je? hát, csodálkozom, hogy két generációnyi váltás nem hozott semmilyen gyorsulást az általános utasításkészlet végrehajtásában. Ti biztos többet tudtok nálam az Intel processzorainak fejlõdésérõl, és csak tapasztaltam egy tényt, semmi több.
rád gondoltam, amikor arra kértelek, hogy aki nem érti a szavakat a hozzászólásomban, az inkább ne szóljon hozzá, de te mégis megtetted. Talán elõbb tudni kéne, hogy mirõl van szó, mielõtt belekotyogsz:
- A 633Mhz-s processzorom P2-es generációként azonosítja magát
- nem elavult utasításokat használtam, hanem általánosakat, minek részletezzem? már leírtam egyszer, ha akkor nem tudtad hogy mirõl van szó, akkor most sem fogod tudni
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Te a s.370-rõl beszélsz.
Aki úgy gondolja, hogy egy PIII 600-as gyorsabb, mint egy Core2 Duo, az próbálja már ki a Supreme Commandert egy PIII 600-as gépen. ;-)))
Olyan programot én is tudok írni, amelyik lassabban végez a PIII 600-on, mint a Core2 Duo-n, de ez csak annyit jelent, hogy vagy direkt írtam ilyennek, vagy pancser programozó vagyok. ;-)))
A P2 idején a Celeron meg a rendes P2 ugyaolyan gyors volt. A P2 dupla L2 cache mérete csak néhány alkalmazásnál volt elõny. A cerkát meg jobban lehetett húzni, igy a több cache-sel mégsem volt gyorsabb. Aztán az Intelnél ebbõl is tanultak.
A P3 óta a cerka egyértelmûen a "budget" kategória.
Amúgy a leggyorsabb P2 cerka 533MHz-es volt, korának legyorsabb, olcsó x86-os asztali procija és durván húzható állat. Simá verte az elsõ P3-kat is.
1. sokkal kisebb csíkszélesség, de
2. sokkal nagyobb Wattos fogyasztás, ezért
3. egyszerûen nem lehet lassabb. (kb. fordítottan arányos elvileg)
Ami miatt akár még lassúnak is tûnhetnek:
1. Optimalizáció hiánya: a végrehajtási optimalizáció a procin belül baromira lassíthat, ha nincs optimalizálva rá progi (stack, cache, queue opt. Olyan dolgokat számolnak ki a procik elõre, amik valószínûség alapján majd késõbb szükségesek lehetnek, addig meg elférnek a cache-ben). Tehát aki qrva gyors prg-ot akar írni, annak feltétlenül olyat kell, ami kihasználja az új utasításokat, amiket pl. egy órajel alatt végrehajt a CPU, és nem szöszmötöl sok régebbi utasításból összerakni azt amit az új CPU mondjuk ut. szinten tud. Emiatt egy régebbi utasítás végrehatási ideje akár hosszabb is lehet, mint anno.
2. Régen a 8 meg 16 bites adatokon, ma már 32 és 64 bites adatokon is tudnak pl. 1 órajel alatt számolásokat végrehajtani. Ez azért nem kis (teljesítmény)különbség. Amelyik progi ezt nem használja ki, az télleg ugyanolyan gyors a 32 meg a 64 bites rendszeren is. Az órajelnek azért kellene számítania ezeknél is. De ugye mostanában a GHz hajkurászás azért alább hagyott a technológiai korlátok miatt.
3. Sokkal inkább a párhuzamosítás a tendencia. Amelyik progi ezt sem használja ki, na az sem lesz gyorsabb, vagy max. annyival, amit az oprendszer nem vesz el elõle prociidõt, mert azt párhuzamosan megoldja pl. egy másik maggal.
szerintem
http://goo.gl/gd6Zi5
2. tán nem a celeronhoz kéne hasonlítani, fõleg a régi utasításkészlettel íródott asm progit...
http://goo.gl/gd6Zi5
"the new Penryn processors will have the same basic design as current ones, but the circuitry will be 30 percent thinner"
Tehát, akkor az órajel emelkedhet, illetve majd próbálják jobban nyomni a 4-magos példányokat (amik Intelnél továbbra is 2x 2 mag egy tokban).
"In high-performance computing and bandwidth intensive applications ... there will be up to a whopping 45 percent performance increase"
Na persze, mint tudjuk, az FSB-s megoldás (4 magra 1 FS😎 pont jó erre...
"In a prototype Penryn chip with four processing cores, that translated into 40 percent faster performance in computer games and video processing, while more mundane tasks such as image processing ran about 15 percent faster, Gelsinger said."
Ez egy kicsit zavaros... Ha pl. a videofeldolgozás 40%-kal gyorsabb, akkor a képfeldolgozás miért csak 15%-kal? Nos, úgy tûnik ebbõl, nem az órajel emelkedik 40%-ot (különben e kettõ kb. egyformán gyorsulna ugyebár), hanem a 2-mag vs. 4-mag is be van itt kalkulálva... Vagy mi...
http://bf1942.gametrack.org/sig_3210436_omaha1_times.png
A programom boot szektorból tölt be, védett módba kapcsol, és egy kis parancsor az egész, assembly-ben írtam. Kiegészítettem egy prímkeresõvel, hogy tesztelni tudjam a régi, és az új gépem processzora közötti különbséget. Elmenti a hardverórából, hogy mikor kezdte, és amikor végzett kiírja, meg a pontos idõt is. A kettõ különbsége az eltelt idõ. Ez rendre a P2-esen kevesebb (600-MHz), mint a P4-en (2GHz). Csak rendszerutasításokat használok, ami már a 386-os óta benne vannak.
Ehhez varrjatok gombot 😛
U.I.: akinek nincs fogalma róla, hogy mit jelentekek a szavak a felsõ bekezdésben, kérem hogy ne is próbáljon válaszolni... köszönöm.
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
Vain ei kuulu terroristien käsiin! CS. N. T. K. K.! SG az a hely ahol sunyi módon csöndben törölgetik a hozzászólásokat, indok nélkül. ;)
Mi van! Ha nem multi threades a játok, akkor hogy fog gyorsítani a 4 mag, vagy talán beszálnak a GPU shadereinek a futtatásába? <#vigyor>#vigyor>
NTVDM nem normális virtuális gép, csak kihasználja a i386 és ujabb procik 8086 virtualizációját, így minden memória címet sokkal magasabb értékre tol el, továbbá az in, out és int utasításokat programozott kivétellel elkap és Win32-õn hagyja végre ha lehet.
x64-es Windows-ok ugyan ezt a módszert használják 32 bites Windows-os progik futtatásához, csak azokban, nincs in, out és int helyettük függvényhívások vannak és a hívások végén csak azokat kell átvinni a 64bitten mûködõ kernel komponensek felé.
Szal kell az a gyorsulas!
Bérbe vehet? reklámfelület...
A
---
plussz ezek a procik leginkább abban fejlõdtek, hogy kibõvítették sok más utasítással õket, és valószínûleg te nem optimalizáltad a programod az újabb utasításkészletre...
Will your Soul live for Ever?
Erre mondják az öregek, hogy megeszem a kalapom, ha ennek csak a fele is igaz... Lesz itt max. 10-15%-os emelkedés nagyon jó esetben...
Vain ei kuulu terroristien käsiin! CS. N. T. K. K.! SG az a hely ahol sunyi módon csöndben törölgetik a hozzászólásokat, indok nélkül. ;)
Asus P5QL PRO motherboard | Core 2 Duo E8400 3Ghz | Kingmax 4*1 GB DDR2 1066Mhz |Asus EN7950GT 512MB | Sound Blaster Audigy 2 Value 64bit | 2*250GB Samsung Sata2 HDD
\"Holló, Hologram, Honolulu, Holokauszt, Hazugság\"
Fizikakönyvem: http://valek.webs.com/ \"Az a baj az Interneten terjedő idézetekkel, hogy nem tudod róluk megállapítani, valódiak-e.\" /Petőfi Sándor/
schrank[HUN] \"kiakirály\" \"jobb ha az okos hülyéskedik mint ha a ....\"
Ennek nagyon örülnék.
A buta embert gondolatai irányítják, a bölcs irányítja gondolatait.