News:

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

Main Menu

DWORD to Bin$() timings

Started by jj2007, August 04, 2023, 11:07:44 PM

Previous topic - Next topic

jj2007

Can I have some benchmarks, please?

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

626     cycles for 100 * New Bin$
1027    cycles for 100 * MasmBasic Bin$
1538    cycles for 100 * Masm32 SDK bin$()

619     cycles for 100 * New Bin$
1027    cycles for 100 * MasmBasic Bin$
1557    cycles for 100 * Masm32 SDK bin$()

617     cycles for 100 * New Bin$
1028    cycles for 100 * MasmBasic Bin$
1541    cycles for 100 * Masm32 SDK bin$()

618     cycles for 100 * New Bin$
1028    cycles for 100 * MasmBasic Bin$
1540    cycles for 100 * Masm32 SDK bin$()

156     bytes for New Bin$
16      bytes for MasmBasic Bin$
19      bytes for Masm32 SDK bin$()

New Bin$                                10010010011111111100001111000011
MasmBasic Bin$                          10010010011111111100001111000011
Masm32 SDK bin$()                       10010010011111111100001111000011

AMD Athlon Gold 3150U with Radeon Graphics      (SSE4)

599     cycles for 100 * New Bin$
996     cycles for 100 * MasmBasic Bin$
1964    cycles for 100 * Masm32 SDK bin$()

772     cycles for 100 * New Bin$
1126    cycles for 100 * MasmBasic Bin$
1407    cycles for 100 * Masm32 SDK bin$()

529     cycles for 100 * New Bin$
921     cycles for 100 * MasmBasic Bin$
1335    cycles for 100 * Masm32 SDK bin$()

532     cycles for 100 * New Bin$
918     cycles for 100 * MasmBasic Bin$
1333    cycles for 100 * Masm32 SDK bin$()

156     bytes for New Bin$
16      bytes for MasmBasic Bin$
19      bytes for Masm32 SDK bin$()

P.S.: Strangely enough, there seems no bin$() macro in the Masm32 SDK. Here it is:
bin$ MACRO src
  ifndef bin$buffer
.DATA?
bin$buffer db 36 dup(?)
.CODE
  endif
  mov edx, offset bin$buffer
  push edx
  invoke dw2bin_ex, src, edx
  pop eax
  EXITM <eax>
ENDM

FORTRANS

Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz (SSE4)

692 cycles for 100 * New Bin$
1305 cycles for 100 * MasmBasic Bin$
1661 cycles for 100 * Masm32 SDK bin$()

704 cycles for 100 * New Bin$
1337 cycles for 100 * MasmBasic Bin$
1683 cycles for 100 * Masm32 SDK bin$()

719 cycles for 100 * New Bin$
1315 cycles for 100 * MasmBasic Bin$
1713 cycles for 100 * Masm32 SDK bin$()

704 cycles for 100 * New Bin$
1305 cycles for 100 * MasmBasic Bin$
1691 cycles for 100 * Masm32 SDK bin$()

160 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()

New Bin$10010010011111111100001111000011
MasmBasic Bin$10010010011111111100001111000011
Masm32 SDK bin$()10010010011111111100001111000011

--- ok ---

Intel(R) Pentium(R) M processor 1.70GHz (SSE2)

1611 cycles for 100 * New Bin$
1865 cycles for 100 * MasmBasic Bin$
3470 cycles for 100 * Masm32 SDK bin$()

1609 cycles for 100 * New Bin$
1865 cycles for 100 * MasmBasic Bin$
3451 cycles for 100 * Masm32 SDK bin$()

1611 cycles for 100 * New Bin$
1860 cycles for 100 * MasmBasic Bin$
3447 cycles for 100 * Masm32 SDK bin$()

1612 cycles for 100 * New Bin$
1864 cycles for 100 * MasmBasic Bin$
3470 cycles for 100 * Masm32 SDK bin$()

160 bytes for New Bin$
16 bytes for MasmBasic Bin$
19 bytes for Masm32 SDK bin$()

New Bin$10010010011111111100001111000011
MasmBasic Bin$10010010011111111100001111000011
Masm32 SDK bin$()10010010011111111100001111000011

--- ok ---

Antariy

Quote from: jj2007 on August 04, 2023, 11:07:44 PMCan I have some benchmarks, please?

Hi Jochen:thumbsup:


Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz (SSE4)

585     cycles for 100 * New Bin$
1095    cycles for 100 * MasmBasic Bin$
1401    cycles for 100 * Masm32 SDK bin$()

590     cycles for 100 * New Bin$
1095    cycles for 100 * MasmBasic Bin$
1403    cycles for 100 * Masm32 SDK bin$()

589     cycles for 100 * New Bin$
1096    cycles for 100 * MasmBasic Bin$
1402    cycles for 100 * Masm32 SDK bin$()

584     cycles for 100 * New Bin$
1100    cycles for 100 * MasmBasic Bin$
1401    cycles for 100 * Masm32 SDK bin$()

156     bytes for New Bin$
16      bytes for MasmBasic Bin$
19      bytes for Masm32 SDK bin$()

New Bin$                                10010010011111111100001111000011
MasmBasic Bin$                          10010010011111111100001111000011
Masm32 SDK bin$()                       10010010011111111100001111000011

--- ok ---

jj2007

Thanks, Steve & Alex! One more - New Bin$() rocks:

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

760    cycles for 100 * Mb Bin$ v2
1023    cycles for 100 * MasmBasic Bin$ (current version)
535    cycles for 100 * New Bin$()
1539    cycles for 100 * Masm32 SDK bin$()

759    cycles for 100 * Mb Bin$ v2
1023    cycles for 100 * MasmBasic Bin$ (current version)
533    cycles for 100 * New Bin$()
1537    cycles for 100 * Masm32 SDK bin$()

759    cycles for 100 * Mb Bin$ v2
1026    cycles for 100 * MasmBasic Bin$ (current version)
532    cycles for 100 * New Bin$()
1535    cycles for 100 * Masm32 SDK bin$()

156    bytes for Mb Bin$ v2
16      bytes for MasmBasic Bin$ (current version)
87      bytes for New Bin$()
19      bytes for Masm32 SDK bin$()

Mb Bin$ v2                              10010010011111111100001111000011
MasmBasic Bin$ (current version)        10010010011111111100001111000011
New Bin$()                              10010010011111111100001111000011
Masm32 SDK bin$()                      10010010011111111100001111000011

AMD Athlon Gold 3150U with Radeon Graphics      (SSE4)

550     cycles for 100 * Mb Bin$ v2
954     cycles for 100 * MasmBasic Bin$ (current version)
438     cycles for 100 * New Bin$()
1359    cycles for 100 * Masm32 SDK bin$()

556     cycles for 100 * Mb Bin$ v2
946     cycles for 100 * MasmBasic Bin$ (current version)
423     cycles for 100 * New Bin$()
1360    cycles for 100 * Masm32 SDK bin$()

549     cycles for 100 * Mb Bin$ v2
944     cycles for 100 * MasmBasic Bin$ (current version)
421     cycles for 100 * New Bin$()
1351    cycles for 100 * Masm32 SDK bin$()

553     cycles for 100 * Mb Bin$ v2
953     cycles for 100 * MasmBasic Bin$ (current version)
422     cycles for 100 * New Bin$()
1354    cycles for 100 * Masm32 SDK bin$()

mineiro

Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (SSE4)

708     cycles for 100 * Mb Bin$ v2
1177    cycles for 100 * MasmBasic Bin$ (current version)
478     cycles for 100 * New Bin$()
1494    cycles for 100 * Masm32 SDK bin$()

707     cycles for 100 * Mb Bin$ v2
1174    cycles for 100 * MasmBasic Bin$ (current version)
470     cycles for 100 * New Bin$()
1492    cycles for 100 * Masm32 SDK bin$()

707     cycles for 100 * Mb Bin$ v2
1174    cycles for 100 * MasmBasic Bin$ (current version)
475     cycles for 100 * New Bin$()
1494    cycles for 100 * Masm32 SDK bin$()

707     cycles for 100 * Mb Bin$ v2
1175    cycles for 100 * MasmBasic Bin$ (current version)
475     cycles for 100 * New Bin$()
1492    cycles for 100 * Masm32 SDK bin$()

156     bytes for Mb Bin$ v2
16      bytes for MasmBasic Bin$ (current version)
87      bytes for New Bin$()
19      bytes for Masm32 SDK bin$()

Mb Bin$ v2                              10010010011111111100001111000011
MasmBasic Bin$ (current version)        10010010011111111100001111000011
New Bin$()                              10010010011111111100001111000011
Masm32 SDK bin$()                       10010010011111111100001111000011
I'd rather be this ambulant metamorphosis than to have that old opinion about everything

coaster

Yet another
Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz (SSE4)

440    cycles for 100 * New Bin$
810    cycles for 100 * MasmBasic Bin$
1039    cycles for 100 * Masm32 SDK bin$()

441    cycles for 100 * New Bin$
808    cycles for 100 * MasmBasic Bin$
1096    cycles for 100 * Masm32 SDK bin$()

441    cycles for 100 * New Bin$
817    cycles for 100 * MasmBasic Bin$
1036    cycles for 100 * Masm32 SDK bin$()

446    cycles for 100 * New Bin$
810    cycles for 100 * MasmBasic Bin$
1035    cycles for 100 * Masm32 SDK bin$()

156    bytes for New Bin$
16      bytes for MasmBasic Bin$
19      bytes for Masm32 SDK bin$()

New Bin$                                10010010011111111100001111000011
MasmBasic Bin$                          10010010011111111100001111000011
Masm32 SDK bin$()                      10010010011111111100001111000011

HSE

#6
This is the 64 bits version  :biggrin:

This use Timers64.asm, a translation from Michael Webster original in 32 bits.

No MasmBasic functions, obviously.

This use Masm64 SDK, and ML64. Because is a fast translation still requiere SmplMath, and code size calculations is unfinished (or look like that).

Intel(R)l(R) Cor) i3-101-10100 C 3.60GHz0GHz (SSE4)
loop overhead is approx. 1080/100 cycles

381    cycles for 100 * Mb Bin$ v2
311    cycles for 100 * New Bin$()
741    cycles for 100 * Masm32 SDK bin$()

358    cycles for 100 * Mb Bin$ v2
264    cycles for 100 * New Bin$()
762    cycles for 100 * Masm32 SDK bin$()

369    cycles for 100 * Mb Bin$ v2
278    cycles for 100 * New Bin$()
755    cycles for 100 * Masm32 SDK bin$()

370    cycles for 100 * Mb Bin$ v2
240    cycles for 100 * New Bin$()
739    cycles for 100 * Masm32 SDK bin$()

4423903 = rax Mb Bin$ v2
0      = rax MasmBasic Bin$ (current version)
4426096 = rax New Bin$()
5476816 = rax Masm32 SDK bin$()

--- ok ---
Equations in Assembly: SmplMath

jj2007

Quote from: HSE on August 05, 2023, 10:10:32 PMThis is the 64 bits version  :biggrin:

Remarkable :thumbsup:

IntelCore(TM)(TM) i5-M CPU @ U @ 2.50 (SSE4)
loop overhead is approx. 1289/100 cycles

644     cycles for 100 * Mb Bin$ v2
278     cycles for 100 * New Bin$()
891     cycles for 100 * Masm32 SDK bin$()

651     cycles for 100 * Mb Bin$ v2
232     cycles for 100 * New Bin$()
894     cycles for 100 * Masm32 SDK bin$()

662     cycles for 100 * Mb Bin$ v2
217     cycles for 100 * New Bin$()
900     cycles for 100 * Masm32 SDK bin$()

645     cycles for 100 * Mb Bin$ v2
227     cycles for 100 * New Bin$()
911     cycles for 100 * Masm32 SDK bin$()

17727711        = rax Mb Bin$ v2
0       = rax MasmBasic Bin$ (current version)
17729904        = rax New Bin$()
18780624        = rax Masm32 SDK bin$()