Так как я писал представляю результаты тестов другой программы. На
http://www.stefankrause.net/wp/?p=9 появились интересные результаты тестов которые хотя не относайась к QNX думаю очень интересны. Там я нашол ссылку на :
http://accc.riken.jp/HPC/HimenoBMT/index_e.html. Делая опыты с тестами с этой страницы я столькнулся с очень интересными резултатами.
Тестовая программа himenoBMTxp.c показывает что самые лучшие результаты получаються с компилятором qcc -V3.3.5,gcc_ntox86. В дпугих тестах этого не видно но мне заинтересовалось почнму так получаеться. Можеть оффицялный компилятор QNX V3.3.5 отличаеться от компилятора
gcc лучшей оптимализацей. Поэтому я построил компилятор i386-pc-nto-qnx6.3.0-gcc-3.3.6. Сорсы я взял с
www.qnx.com. И вот результаты:
Программа работаеть так. Сначяла проводиться цикл 3 раза чтобы вычислить сколько циклов нада на одну минуту. И патом происходит выполнение полученного количеста повторени. Сравниваеться время выполнения в секундах.
335 => qcc -V3.3.5,gcc_ntox86
336 => i386-pc-nto-qnx6.3.0-gcc-3.3.6
335 -O0 MFLOPS: 334.726067 time(s): 1.228812 1.733593e-03
MFLOPS measured : 339.939774 cpu : 58.884989 : Loop executed for 146 times
336 -O0 MFLOPS: 334.998687 time(s): 1.227812 1.733593e-03
MFLOPS measured : 340.303801 cpu : 58.821999 : Loop executed for 146 times
335 -O1 MFLOPS: 1235.366896 time(s): 0.332950 1.693779e-03
MFLOPS measured : 1320.566117 cpu : 56.064420 : Loop executed for 540 times
336 -O1 MFLOPS: 1231.671327 time(s): 0.333949 1.693779e-03
MFLOPS measured : 1305.478599 cpu : 56.607338 : Loop executed for 539 times
335 -O2 MFLOPS: 1297.721447 time(s): 0.316952 1.693779e-03
MFLOPS measured : 1393.028784 cpu : 55.805460 : Loop executed for 567 times
336 -O2 MFLOPS: 1281.552038 time(s): 0.320951 1.693779e-03
MFLOPS measured : 1394.013450 cpu : 55.077572 : Loop executed for 560 times
335 -O3 MFLOPS: 1301.828784 time(s): 0.315952 1.693779e-03
MFLOPS measured : 1392.901306 cpu : 56.007430 : Loop executed for 569 times
336 -O3 MFLOPS: 1289.588081 time(s): 0.318951 1.693779e-03
MFLOPS measured : 1393.824299 cpu : 55.478511 : Loop executed for 564 times
335 Opt MFLOPS: 1357.682711 time(s): 0.302954 1.733593e-03
MFLOPS measured : 1472.901268 cpu : 55.292539 : Loop executed for 594 times
336 Opt MFLOPS: 1357.687192 time(s): 0.302953 1.733593e-03
MFLOPS measured : 1473.194294 cpu : 55.281541 : Loop executed for 594 times
===============================
Как видно оба компиляторы не очень отличаються друг от друга.
А как выглядять компиляторы gcc 4.2 и gcc 4.3 ?
Я показываю самые лучшые результаты.
компиляторы gcc4.2.4, gcc 4.3.2 и qcc -V4.2.3,gcc_ntox86 который доступен на
http://community.qnx.com/sf/frs/do/viewSummary/projects.toolchain/frs
Opt => -O3 -DMIDDLE -msse2 -march=pentiumpro -mtune=pentiumpro
-mfpmath=387 -funroll-loops -fomit-frame-pointer
./bmt4.3.2Opt
Opt MFLOPS: 1028.445358 time(s): 0.399939 1.733593e-03
MFLOPS measured : 1088.014687 cpu : 56.706322 : Loop executed for 450 times
./bmt4.3.2native
-O3 -DMIDDLE -msse2 -march=native -mtune=native -mfpmath=sse -funroll-loops
-fomit-frame-pointer -ffast-math -fstrict-aliasing -fwhole-program
Opt MFLOPS: 1145.900926 time(s): 0.358945 1.733593e-03
MFLOPS measured : 1212.648636 cpu : 56.644333 : Loop executed for 501 times
./bmt4.2.4Opt
Opt MFLOPS: 1123.984566 time(s): 0.365944 1.733593e-03
MFLOPS measured : 1205.186047 cpu : 55.857452 : Loop executed for 491 times
./bmt4.2.4native
MFLOPS: 1142.717382 time(s): 0.359945 1.733593e-03
MFLOPS measured : 1209.310335 cpu : 56.687325 : Loop executed for 500 times
./bmt_qcc4.2.3opt => qcc -V4.2.3,gcc_ntox86
Opt MFLOPS: 1133.272005 time(s): 0.362945 1.733593e-03
MFLOPS measured : 1204.760784 cpu : 56.332380 : Loop executed for 495 times
================================
Видно что для компиляторв QNX 3.3.5 и 3.3.6 хватит толко само -O1 и резултаты лучше. Правда я не проверял компилятора
gcc3.3.5 а только версии для QNX. Былобы интересно. Все таки в чем примушество qcc -V3.3.5,gcc_ntox86. Можеть кто то найдеть время и сделает проверку на Линух. У меня на крмпютере нет линуха.
bogdan