No to jak to jest z tą tajną bronią? |
Wpisany przez Patryk yarpo Jar | |||
sobota, 02 stycznia 2010 18:19 | |||
Można by zadać proste pytanie: jaki na prawdę pożytek przynosi dzisiaj stosowanie opcji “nieuczciwej matematyki”. W celu “obiektywnego” sprawdzenia zrobiłem mały benchmark używając prostego programu wykonującego 8 zadań numerycznych. Nie są to zadania wybitnie skomplikowane, ale są one wystarczająco zawiłe, by kompilator miał okazję pokombinować, a więc są takie “w sam raz”. Drugim – równie ważnym – powodem do zrobienia takiego teściku jest ukazanie się nowej wersji kompilatora GCC (niecały miesiąc temu również ukazało się “rc” nowego kompilatora Sun Studio). Zatem: do dzieła ;-) Aktualne Sun Studio, jak również GCC, nawet po zastosowaniu “sztuczek” nie powoduje wyników różnych od oczekiwanych: sztuczki, jakie by one nie były, nie wprowadzają dodatkowych błędów. To dobrze. A jak z wydajnością? No da się odczytać z wykresu, że gcc 4.3.3, po zastosowaniu -ffast-math pozwala na wyduszenie siódmych potów ze starego Semprona. W prawie każdym teście przegania swojego młodszego brata (4.4.0), a w niektórych nawet renomowane Sun Studio używane w wielu poważnych zastosowaniach. Zastosowanie sztuczek daje nawet do 11% wzrostu wydajności programu. To bardzo dużo :) Użyte opcje kompilacji:
Nowe GCC się nie popisało, z resztą nie za bardzo miało czym: omawiany program i procesor (AMD Sempron 3000+) nie pozwoliły mu się wykazać ulepszonym wsparciem dla wielowątkowości a i technologia IRA nie zrobiła na flops.c większego wrażenia. A może po prostu gcc 4.4.0 jeszcze nie jest programem dojrzałym? Sun Studio w ogóle jakieś pokręcone sztuczki proponuje, skoro w ich efekcie program… zwalnia ;-) Autorem artykułu jest Maciej Kamiński.
|