Hlavní navigace

Rychlejší než blesk...

Michal Krause 13. 5. 1999

...by mohl být běh všech programů, pokud používáte některý z procesorů Pentium, případně K6. To vše díky kompilátoru PentiumGCC, který by měl produkovat kód optimalizovaný právě pro zmiňované procesory. Slibované zrychlení je 2 až 30%. A jak to vypadá v praxi?

Kompilátor PentiumGCC (pgcc) vychází z gcc a egcs a zaměřuje se na podporu x86 procesorů. Na počátku byla snaha Intelu dokázat, že lze kompilátor gcc optimalizovat pro procesory Pentium tak, že dojde až ke 30% nárůstu výkonu aplikací. Poté, co se jim to povedlo, ukončili vývoj a uvolnili zdrojové kódy, jejichž přímým následníkem pgcc je.

Pgcc lze získat jak v podobě zdrojových kódů, tak i jako binárky pro různé platformy. Já jsem použil binární distribuci a musím zkonstatovat, že navzdory tomu, co se píše ve FAQ, jsem měl s instalací celkem problémy. Podle autorů stačí rozpakovat archív na správné místo a tím by mělo být vše hotovo. V mém případě však ještě bylo nutné nastavit korektně proměnnou prostředí COMPILER_PATH.

Po instalaci jsem se už mohl vrhnout na testování. Jako ideální testovací subjekt se mi jevil linuxový port benchmarku BYTEmark verze 2. Vytvořil jsem si testovací binárky pomocí gcc, egcs a pgcc a ty jsem pak jednu po druhé za více méně stejných podmínek spustil. Tyto testy probíhali na počítači s procesorem AMD K6 200MHz. Počítač s originál Pentiem jsem bohužel neměl k dispozici. Výsledky vidíte v následující tabulce:

Tabulka č. 4
 test   gcc 2.7.2.3   egcs 1.0.2   pgcc 1.1.3 
NUMERIC SORT 107.600 107.920 110.96
STRING SORT 12.044 11.741 11.287
BITFIELD 1.6504e+07 2.2624e+07 2.3688e+07
FP EMULATION 5.9952 5.9761 6.2647
FOURIER 1393.2 1865.4 1871.1
ASSIGNMENT 0.99682 1.01900 0.8259
IDEA 186.43 186.15 151.63
HUFFMAN 89.734 81.619 100.840
NEURAL NET 1.0523 1.1219 1.1062
   LU DECOMPOSITION    22.037 24.771 *)

hodnoty v tabulce značí počet cyklů provedených za jednu vteřinu
*) při výpočtu této hodnoty padal benchmark na SIGSEGV



Popis jednotlivých testů

NUMERIC SORT – třídění pole 32bitových celých čísel
STRING SORT – třídění pole řetězců různých délek
BITFIELD – souhrn různých bitových operací
FP EMULATION – softwarové výpočty s plovoucí desetinou čárkou
FOURIER – číselná analitická rutina pro výpočet série aproximací křivek
ASSIGNMENT – algoritmus alokace úloh
IDEA – bloková šifra
HUFFMAN – kompresní algoritmus
NEURAL NET – malý simulátor neuronové sítě
LU DECOMPOSITION – robustní algoritmus pro řešení lineárních rovnic


Z uvedených výsledků jsou zřejmé dvě věci. Jednak podobnost výsledků egcs a pgcc a jednak to, že pgcc je výrazně rychlejší zejména u celočíselných a bitových operací (NUMERIC SORT, HUFFMAN, BITFIELD). V operacích s plovoucí desetinou čárkou je pgcc srovnatelné s egcs, ale zcela selhává v testech IDEA a ASIGNMENT, které prověří hlavně paměť a cache.

Celkově vzato mám z pgcc tak trochu rozpačité dojmy. Některé výsledky jsou příjemné, ale z celkového hlediska nejde o žádný zázrak. Pokud píšete specializovanou aplikaci, která převážně provádí opakované úkony, může volba kompilátoru vést k solidnímu zrychlení. Zřejmě na tom něco bude, když například TCX kompiluje MySQL pro binární distribuce právě pomocí pgcc. Navíc jsem při testech pozoroval, že mezi verzemi 1.1.1 a 1.1.3 byl ve výkonu kompilovaných programů poměrně značný rozdíl, takže se zdá, že vývoj pgcc jde rychle kupředu. Uvidíme, jak budou vypadat budoucí verze…

Našli jste v článku chybu?

21. 12. 2006 16:40

hafik (neregistrovaný)
Ziadna chyba nebude. Kompilator je robeni na pentium a tak neni divu ze s AMD mu to moc nejde.

14. 5. 1999 13:58

Mikulas Patocka (neregistrovaný)

Pokud pgcc krachne na jednom z deseti testu,
tak musi byt uplne nepouzitelne, ne? Uz se vidim,
jak ve svem programu hystericky hledam chybu,
ktera je v kompilatoru...




Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Root.cz: Pinebook: linuxový notebook za 89 dolarů

Pinebook: linuxový notebook za 89 dolarů

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami