воскресенье, 11 сентября 2011 г.

поставил Intel C++ Сompozer XE 2011

с целью проведения всяческих бесчеловечных опытов. icl.exe пишет например
Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.0.104 Build 20101006
Затем пересобрал на нем свою тестилку скорости хешей (на основе fehashmac) для 64бит:
  • на vs2008 со стандартными ключами оптимизации
  • на icl.exe со стандартными ключами оптимизации
  • на icl.exe с оптимизациями, выкрученными на максимум - например были указаны генерация кода sse4.1, global optimization & interprocedural optimization
Результаты дико угарные. Размеры .exe:
  • vs2008 - 317952 байт
  • intel - 471040 байт. Просмотр кода показывает что были тупо развернуты все циклы с константыми счетчиками циклов
  • intel opt - 472576 байт
Прирост производительности (запускалось все на corei7, цифры даны в мегабайтах в секунду)

Hash name vs2008intel%intel opt%
md574.51564880.5152981.080580.5152981.0805
md21.1494781.9811401.72351.9828681.7250
md4108.695652125.0000001.1500125.0000001.1500
ripemd12832.17503233.1564991.030532.6157861.0137
ripemd16025.35497027.5785991.087727.4725271.0835
ripemd25634.86750335.4861601.017735.6379191.0221
has-16040.61738440.9836071.009042.4808841.0459
sha127.42731829.0023201.057428.7521561.0483
sha-22422.53267222.2915740.989322.2915740.9893
sha-25623.09468822.3015170.965722.1631210.9597
sha-38431.82686233.0469271.038333.1564991.0418
sha-51231.88775532.9597891.033633.1345261.0391
snefru-1284.7169815.7372351.21635.7306591.2149
snefru-2563.1523863.8237991.21303.8232151.2128
tiger72.35890088.3392231.220888.6524821.2252
whirlpool17.63046512.3031500.697812.5849480.7138
gost9.92654410.3691411.044610.3605471.0437
blake-22430.06614636.7376931.221936.7647061.2228
blake-25630.17501536.7107201.216636.7917591.2193
blake-38452.30125544.8430490.857444.8833030.8582
blake-51253.19148944.9640290.845344.9640290.8453
groestl22413.98992714.9655791.069714.9611011.0694
groestl25613.94700114.9566261.072414.9253731.0701
groestl38410.14816310.7526881.059610.7480651.0591
groestl51210.16466810.7388321.056510.7250111.0551
jh2246.11097525.7201654.208825.7201654.2088
jh2566.24531625.7201654.118325.7201654.1183
jh3846.30437525.7334024.081825.6805344.0734
jh5126.34840025.7201654.051425.6805344.0452
keccak22422.26179924.1896471.086624.1896471.0866
keccak25621.04377123.0733731.096423.0414751.0949
keccak38416.70006717.9340031.073917.9083091.0723
keccak51211.85115012.7681311.077412.7583571.0766
skein22481.43322591.7431191.126691.5750921.1245
skein25686.50519091.7431191.060691.7431191.0606
skein38485.47008591.7431191.073491.9117651.0754
skein51283.19467691.7431191.102891.5750921.1007
skein102446.59832256.7536891.217956.8181821.2193
haval3-12883.75209491.2408761.089491.4076781.0914
haval3-16084.31703291.5750921.086191.4076781.0841
haval3-19283.75209491.4076781.091491.4076781.0914
haval3-22481.16883191.4076781.126191.4076781.1261
haval3-25683.89261791.4076781.089691.4076781.0896
haval4-12860.90134066.4010621.090366.4010621.0903
haval4-16062.11180166.4893621.070566.4010621.0691
haval4-19262.18905566.4010621.067766.4893621.0691
haval4-22462.18905566.4893621.069166.4893621.0691
haval4-25662.26650166.4893621.067866.1375661.0622
haval5-12850.20080353.0785561.057353.0222691.0562
haval5-16050.20080353.0785561.057353.0785561.0573
haval5-19250.20080353.0785561.057353.0785561.0573
haval5-22450.15045153.0785561.058453.0785561.0584
haval5-25650.25125653.0785561.056353.0222691.0551
Угарно что
  • в некоторых случаях код от icl работает медленнее чем даже от vs2008 !
  • дополнительный опции оптимизации дают копеечный выигрыш
  • sse инструкций не было замечено совершенно, даже в builtin ф-ция вроде _intel_fast_XXX

Комментариев нет:

Отправить комментарий