[gcc46| gcc47| clang.xcode.46| clang.32] + mplayer + benchmark, #2


 sz | 2013. február 26., kedd - 12:13 )
Vannak-e abban a h264 decoderben kézzel hegesztett assembly betétek?

Volt, mmx-ig visszamenőleg kivettem mindet (olybá tűnik jelenleg az az elvárt minimum).

Még ilyen differencia mellett is úgy vélem, h clang már jobb választás ha fejlesztésről van szó. Ha felettéb szükségeltetik az utolsó óra jel is (egyre kevesebb ilyen project van), akkor esetleg egy prod. kódot még érdemes lehet gcc-vel lefordítani. Viszont maradok az eredeti megállapításnál: gcc -> csá.



hw: core-i7 @ 2.6GHz, rmbp 2012 late, 10.8.2

---
cmd: ./mplayer.* Carousel\ \(DirCut\).mp4 -benchmark -vo null -nosound

gcc.463
BENCHMARKs: VC:  16.618s VO:   0.001s A:   0.000s Sys:   0.105s =   16.725s
BENCHMARK%: VC: 99.3648% VO:  0.0088% A:  0.0000% Sys:  0.6264% = 100.0000%

gcc.472
BENCHMARKs: VC:  16.655s VO:   0.001s A:   0.000s Sys:   0.104s =   16.761s
BENCHMARK%: VC: 99.3682% VO:  0.0087% A:  0.0000% Sys:  0.6231% = 100.0000%

clang.default
BENCHMARKs: VC:  19.092s VO:   0.001s A:   0.000s Sys:   0.104s =   19.198s
BENCHMARK%: VC: 99.4521% VO:  0.0073% A:  0.0000% Sys:  0.5406% = 100.0000%

clang.32
BENCHMARKs: VC:  18.218s VO:   0.002s A:   0.000s Sys:   0.110s =   18.329s
BENCHMARK%: VC: 99.3930% VO:  0.0091% A:  0.0000% Sys:  0.5979% = 100.0000%

clang.33svn.debug
BENCHMARKs: VC:  18.214s VO:   0.002s A:   0.000s Sys:   0.110s =   18.326s
BENCHMARK%: VC: 99.3892% VO:  0.0091% A:  0.0000% Sys:  0.6017% = 100.0000%

clang.33svn.release
BENCHMARKs: VC:  18.247s VO:   0.002s A:   0.000s Sys:   0.122s =   18.371s
BENCHMARK%: VC: 99.3271% VO:  0.0092% A:  0.0000% Sys:  0.6637% = 100.0000%

clang.33svn.release (-fvectorize -fslp-vectorize)
BENCHMARKs: VC:  18.215s VO:   0.002s A:   0.000s Sys:   0.110s =   18.327s
BENCHMARK%: VC: 99.3899% VO:  0.0095% A:  0.0000% Sys:  0.6006% = 100.0000%

diff: 8.7%

---
cmd: ./mplayer.* Carousel\ \(DirCut\).mp4 -benchmark -vo null -nosound -lavdopts threads=2

gcc.463
BENCHMARKs: VC:   9.380s VO:   0.002s A:   0.000s Sys:   0.152s =    9.533s
BENCHMARK%: VC: 98.3860% VO:  0.0193% A:  0.0000% Sys:  1.5946% = 100.0000%

gcc.472
BENCHMARKs: VC:   9.391s VO:   0.002s A:   0.000s Sys:   0.151s =    9.544s
BENCHMARK%: VC: 98.4007% VO:  0.0208% A:  0.0000% Sys:  1.5785% = 100.0000%

clang.default
BENCHMARKs: VC:  10.717s VO:   0.002s A:   0.000s Sys:   0.157s =   10.876s
BENCHMARK%: VC: 98.5339% VO:  0.0209% A:  0.0000% Sys:  1.4452% = 100.0000%

clang.32
BENCHMARKs: VC:  10.206s VO:   0.002s A:   0.000s Sys:   0.155s =   10.364s
BENCHMARK%: VC: 98.4802% VO:  0.0199% A:  0.0000% Sys:  1.5000% = 100.0000%

clang.33svn
BENCHMARKs: VC:  10.305s VO:   0.002s A:   0.000s Sys:   0.155s =   10.462s
BENCHMARK%: VC: 98.5028% VO:  0.0204% A:  0.0000% Sys:  1.4768% = 100.0000%

clang.33svn.release
BENCHMARKs: VC:  10.277s VO:   0.002s A:   0.000s Sys:   0.157s =   10.436s
BENCHMARK%: VC: 98.4766% VO:  0.0200% A:  0.0000% Sys:  1.5034% = 100.0000%

clang.33svn.release (-fvectorize -fslp-vectorize)
BENCHMARKs: VC:  10.261s VO:   0.002s A:   0.000s Sys:   0.156s =   10.419s
BENCHMARK%: VC: 98.4822% VO:  0.0203% A:  0.0000% Sys:  1.4975% = 100.0000%

diff: 8%

---
cmd: make -j 8

gcc.463: 39s
gcc.472: 40s
clang.default: 32s
clang.32: 30s
clang.33svn.debug: 2m27s (valoszunleg a debug verzioju clang+llvm miatt)
clang.33svn.release: 26s

Hozzászólások

Mit szerettel volna mondani ? Azt, h a gcc fejlesztoi eveken at folytatott csesztetes utan vegre hajlandoak voltak egy kicsit megemberelni magukat es a legujabb verzio talan mar kepes arra amire a clang elejetol kezdve ? Nabumm. Meg jo, h a clang+llvm nem csak egy compiler. Mert pl. CSA-hoz kepest meg mindig sovany az amit a gcc nyujt.

---
pontscho / fresh!mindworkz

ha mar esz es fogalom nelkul idezgetsz, akkor legyszi korrektul:

It should be noted that this page does not show Clang's diagnostics in colour, a feature which GCC does not have built in, but which is available by using various colorgcc scripts. GCC does not yet highlight ranges. (1)

*nalam* ez egy killer feature, olyannyira, hogy irtam ra gcc plugint (sokkal primitivebb, kozel nincs clang-hez, de legalabb a lenyeg azonnal kiemelodik egy hosszu kernel forditasnal). nem mellesleg eleg inkorrekt az idezett oldal reszerol, hogy kihagytak a szineket, html-ben azert nem akkora kunszt megcsinalni.

> Vannak-e abban a h264 decoderben kézzel hegesztett assembly betétek?

> Volt, mmx-ig visszamenőleg kivettem mindet (olybá tűnik jelenleg az az elvárt minimum).

ize, ezt a reszt nem ertem, miert kellett(?) kiszedni az asm-et? integrated-as elhasalt rajta?

Mert abban igaza volt a problemat felveto uriembernek, h ebben az esetben kivesszuk a kepletbol annak az uriembernek az asm kepessegeit aki az adott reszletet elkovette, csak a gcc/clang kodgeneratora dolgozik helyette mindenfele barkacsolas es trukkozes nelkul.

---
pontscho / fresh!mindworkz

Igazabol direkt mentem ra a stabil verziokra, elsosorban egy projecthez kellett egy normalis (ertsd, letoltestol szamitva forditassal egyutt 8 percen belul felelesztheto) compiler kozepesen teljesitmenyigenyes feladathoz, ilyen kornyezetben egy beta sw problemas. De keritek majd egy kis idot kiprobalni.

---
pontscho / fresh!mindworkz

Hala a nagyteljesitmenyu modern gepeknek amig dolgoztam elszuttyogott a kerdessel a hatterben. Nem szignifikans az amit a 33svn tud a 32-hoz kepest.

Szerk: -fvectorize -fslp-vectorize-zal sincs szignifikans kulonbseg. Erre meg gyurniuk kell. :)
Szerk2: lemertem rendesen forditott clang.33svn-nel is, igy sincs sem a 3.2-hoz, sem a -fvectorize-hoz kepest kulonbseg. De legalabb 15%-kal gyorsabban fordit. :)

---
pontscho / fresh!mindworkz