News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

benchmark for another Bin2Hex, pls

Started by guga, July 28, 2023, 10:32:41 AM

Previous topic - Next topic

jj2007

#30
QuoteI'm wondering how is the program calculating cycles on my machine, I have no AVX2 apparently. But looking at the cycle count results, my computer is doing something to get those results... or is that from just running the 'overhead' code? guga? jj2007?

Have a look at the source ;-)

  ; fall through
MbHxA2 proc
  mov edx, offset MbHexTable    ; edx
  cmp byte ptr [edx], "0"
  jne MbHxCT    ; create the table

Greenhorn

Quote from: TimoVJL on July 31, 2023, 05:18:29 PMAMD Ryzen 5 3400G with Radeon Vega Graphics     (SSE4)

...
1406    cycles for 100 * Bin2Hex Avx2
...

How did you achieved this result, Timo ?
Kole Feut un Nordenwind gift en krusen Büdel un en lütten Pint.

jj2007

Maybe it's time to close this thread - over 100x faster than the CRT (>170x on AMD) should be enough, right?

Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz (SSE4)

3363    cycles for 100 * dw2hex (Masm32 SDK)
1255    cycles for 100 * NoCforMe
52270   cycles for 100 * CRT sprintf
525     cycles for 100 * Bin2Hex
1900    cycles for 100 * Bin2Hex Avx2
443     cycles for 100 * Bin2Hex JJ
782     cycles for 100 * dwtoHex_Guga_SSE
818     cycles for 100 * dwtoHex_Guga

3339    cycles for 100 * dw2hex (Masm32 SDK)
1255    cycles for 100 * NoCforMe
52685   cycles for 100 * CRT sprintf
525     cycles for 100 * Bin2Hex
1900    cycles for 100 * Bin2Hex Avx2
443     cycles for 100 * Bin2Hex JJ
780     cycles for 100 * dwtoHex_Guga_SSE
817     cycles for 100 * dwtoHex_Guga

3331    cycles for 100 * dw2hex (Masm32 SDK)
1254    cycles for 100 * NoCforMe
52593   cycles for 100 * CRT sprintf
525     cycles for 100 * Bin2Hex
1899    cycles for 100 * Bin2Hex Avx2
443     cycles for 100 * Bin2Hex JJ
781     cycles for 100 * dwtoHex_Guga_SSE
816     cycles for 100 * dwtoHex_Guga

3332    cycles for 100 * dw2hex (Masm32 SDK)
1255    cycles for 100 * NoCforMe
52551   cycles for 100 * CRT sprintf
525     cycles for 100 * Bin2Hex
1899    cycles for 100 * Bin2Hex Avx2
443     cycles for 100 * Bin2Hex JJ
772     cycles for 100 * dwtoHex_Guga_SSE
818     cycles for 100 * dwtoHex_Guga

20      bytes for dw2hex (Masm32 SDK)
572     bytes for NoCforMe
29      bytes for CRT sprintf
130     bytes for Bin2Hex
182     bytes for Bin2Hex Avx2
168     bytes for Bin2Hex JJ
245848  bytes for dwtoHex_Guga_SSE
76      bytes for dwtoHex_Guga

12345678        = eax dw2hex (Masm32 SDK)
12345678        = eax NoCforMe
12345678        = eax CRT sprintf
12345678        = eax Bin2Hex
No Avx2!        = eax Bin2Hex Avx2
12345678        = eax Bin2Hex JJ
12345678        = eax dwtoHex_Guga_SSE
12345678        = eax dwtoHex_Guga

AMD Athlon Gold 3150U with Radeon Graphics      (SSE4)
5536    cycles for 100 * dw2hex (Masm32 SDK)
1390    cycles for 100 * NoCforMe
47836   cycles for 100 * CRT sprintf
680     cycles for 100 * Bin2Hex
1085    cycles for 100 * Bin2Hex Avx2
287     cycles for 100 * Bin2Hex JJ
493     cycles for 100 * dwtoHex_Guga_SSE
603     cycles for 100 * dwtoHex_Guga

5470    cycles for 100 * dw2hex (Masm32 SDK)
1405    cycles for 100 * NoCforMe
48769   cycles for 100 * CRT sprintf
671     cycles for 100 * Bin2Hex
1074    cycles for 100 * Bin2Hex Avx2
287     cycles for 100 * Bin2Hex JJ
494     cycles for 100 * dwtoHex_Guga_SSE
547     cycles for 100 * dwtoHex_Guga

5461    cycles for 100 * dw2hex (Masm32 SDK)
1428    cycles for 100 * NoCforMe
48496   cycles for 100 * CRT sprintf
669     cycles for 100 * Bin2Hex
1085    cycles for 100 * Bin2Hex Avx2
273     cycles for 100 * Bin2Hex JJ
490     cycles for 100 * dwtoHex_Guga_SSE
547     cycles for 100 * dwtoHex_Guga

5452    cycles for 100 * dw2hex (Masm32 SDK)
1413    cycles for 100 * NoCforMe
47613   cycles for 100 * CRT sprintf
668     cycles for 100 * Bin2Hex
1098    cycles for 100 * Bin2Hex Avx2
273     cycles for 100 * Bin2Hex JJ
490     cycles for 100 * dwtoHex_Guga_SSE
578     cycles for 100 * dwtoHex_Guga

20      bytes for dw2hex (Masm32 SDK)
572     bytes for NoCforMe
29      bytes for CRT sprintf
130     bytes for Bin2Hex
182     bytes for Bin2Hex Avx2
168     bytes for Bin2Hex JJ
245848  bytes for dwtoHex_Guga_SSE
76      bytes for dwtoHex_Guga

12345678        = eax dw2hex (Masm32 SDK)
12345678        = eax NoCforMe
12345678        = eax CRT sprintf
12345678        = eax Bin2Hex
12345678        = eax Bin2Hex Avx2
12345678        = eax Bin2Hex JJ
12345678        = eax dwtoHex_Guga_SSE
12345678        = eax dwtoHex_Guga

fearless

AMD Ryzen 9 5950X 16-Core Processor            (SSE4)

4696    cycles for 100 * dw2hex (Masm32 SDK)
1379    cycles for 100 * NoCforMe
26732  cycles for 100 * CRT sprintf
362    cycles for 100 * Bin2Hex
18474  cycles for 100 * Bin2Hex Avx2
587    cycles for 100 * Bin2Hex JJ
428    cycles for 100 * dwtoHex_Guga_SSE
439    cycles for 100 * dwtoHex_Guga

4699    cycles for 100 * dw2hex (Masm32 SDK)
1382    cycles for 100 * NoCforMe
26661  cycles for 100 * CRT sprintf
360    cycles for 100 * Bin2Hex
18560  cycles for 100 * Bin2Hex Avx2
284    cycles for 100 * Bin2Hex JJ
428    cycles for 100 * dwtoHex_Guga_SSE
440    cycles for 100 * dwtoHex_Guga

4708    cycles for 100 * dw2hex (Masm32 SDK)
1380    cycles for 100 * NoCforMe
26639  cycles for 100 * CRT sprintf
360    cycles for 100 * Bin2Hex
18588  cycles for 100 * Bin2Hex Avx2
284    cycles for 100 * Bin2Hex JJ
429    cycles for 100 * dwtoHex_Guga_SSE
439    cycles for 100 * dwtoHex_Guga

4699    cycles for 100 * dw2hex (Masm32 SDK)
1378    cycles for 100 * NoCforMe
26673  cycles for 100 * CRT sprintf
366    cycles for 100 * Bin2Hex
18880  cycles for 100 * Bin2Hex Avx2
289    cycles for 100 * Bin2Hex JJ
430    cycles for 100 * dwtoHex_Guga_SSE
440    cycles for 100 * dwtoHex_Guga

20      bytes for dw2hex (Masm32 SDK)
572    bytes for NoCforMe
29      bytes for CRT sprintf
130    bytes for Bin2Hex
182    bytes for Bin2Hex Avx2
168    bytes for Bin2Hex JJ
245848  bytes for dwtoHex_Guga_SSE
76      bytes for dwtoHex_Guga

12345678        = eax dw2hex (Masm32 SDK)
12345678        = eax NoCforMe
12345678        = eax CRT sprintf
12345678        = eax Bin2Hex
12345678        = eax Bin2Hex Avx2
12345678        = eax Bin2Hex JJ
12345678        = eax dwtoHex_Guga_SSE
12345678        = eax dwtoHex_Guga