News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

A New Testbed for MASM32 Forum

Started by frktons, September 21, 2010, 05:25:26 PM

Previous topic - Next topic

Antariy

Quote from: frktons on November 16, 2010, 12:17:47 AM
My idea, by the way, is simpler and more efficient than looking at a string inside another string.

You'll see it.  :P

That is simpler, of course, if you do all things subsequently, but I do things unified :P Unified approach have one advantage - very simple to add algo or remove algo. No needed in conditional assembly. If testbed of subsequently kind needed to be extended - quantity of work for do this, and size of the exe will increased linearly with no need in this.

Looking for substring is not so hard - you can use max ~20 instructions for reliable searching and termination of the string, and this will be fast enough. Of course, with conditional assembly (when flags-macros specifyed) this is simpler - count of the algos known at time of compilation. But this require subsequental kind of manager...


This is only mine opinion, of course, and if your code do all things better and simpler - I'm not impose anything  :U



Alex

frktons

Quote from: Antariy on November 16, 2010, 12:26:26 AM
That is simpler, of course, if you do all things subsequently, but I do things unified :P Unified approach have one advantage - very simple to add algo or remove algo. No needed in conditional assembly. If testbed of subsequently kind needed to be extended - quantity of work for do this, and size of the exe will increased linearly with no need in this.

Looking for substring is not so hard - you can use max ~20 instructions for reliable searching and termination of the string, and this will be fast enough. Of course, with conditional assembly (when flags-macros specifyed) this is simpler - count of the algos known at time of compilation. But this require subsequental kind of manager...

This is only mine opinion, of course, and if your code do all things better and simpler - I'm not impose anything  :U

Alex

My algo will be simpler because I already know how many lines I've displayed when the test finishs, no need
to search for anything inside the whole, I just copy the part of the screen that I already know is filled with results. :lol

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Since page changed very obligingly, this is link to my post with variation of algos manager: "http://www.masm32.com/board/index.php?topic=14871.msg125063#msg125063".
This post at previois page.
Without feedback that thing have no meaning.

Antariy

Quote from: frktons on November 16, 2010, 12:32:27 AM
Quote from: Antariy on November 16, 2010, 12:26:26 AM
That is simpler, of course, if you do all things subsequently, but I do things unified :P Unified approach have one advantage - very simple to add algo or remove algo. No needed in conditional assembly. If testbed of subsequently kind needed to be extended - quantity of work for do this, and size of the exe will increased linearly with no need in this.

Looking for substring is not so hard - you can use max ~20 instructions for reliable searching and termination of the string, and this will be fast enough. Of course, with conditional assembly (when flags-macros specifyed) this is simpler - count of the algos known at time of compilation. But this require subsequental kind of manager...

This is only mine opinion, of course, and if your code do all things better and simpler - I'm not impose anything  :U

Alex

My algo will be simpler because I already know how many lines I've displayed when the test finishs, no need
to search for anything inside the whole, I just copy the part of the screen that I already know is filled with results. :lol

Have a look to my quote, it contain:
Quote
Of course, with conditional assembly (when flags-macros specifyed) this is simpler - count of the algos known at time of compilation. But this require subsequental kind of manager...

:P

Searching for substring will be fast, it can be done with only some instructions of the kind which you already used for fast filling the buffer. That will be very fast, of course - runtime work slower than predefined at compile-time value, but this gives opportunity to easy extension of testbed and managing of algos. And I not see any issue if testbed spent 0.000001 of the second to find the end of the string :P At lest, Windows do this  each time by any reason, and still works  :green2 My manager intentionally written in way to make things of managing algos - addition/removing/tunnig of testbed in unified way. That is slower, maybe, but for extensible things like testbed that is good solution. I'm not impose it in anyway.
I have already one black stone at jug. So, this is meant that I must not spent time anymore for this manager.



Alex

frktons

Quote from: Antariy on November 16, 2010, 12:40:21 AM

:P

Searching for substring will be fast, it can be done with only some instructions of the kind which you already used for fast filling the buffer. That will be very fast, of course - runtime work slower than predefined at compile-time value, but this gives opportunity to easy extension of testbed and managing of algos. And I not see any issue if testbed spent 0.000001 of the second to find the end of the string :P At lest, Windows do this  each time by any reason, and still works  :green2 My manager intentionally written in way to make things of managing algos - addition/removing/tunnig of testbed in unified way. That is slower, maybe, but for extensible things like testbed that is good solution. I'm not impose it in anyway.
I have already one black stone at jug. So, this is meant that I must not spent time anymore for this manager.

Alex

Time permitting we will do everything. Just not tonight  :P

Frank
Mind is like a parachute. You know what to do in order to use it :-)

FORTRANS

Hi Alex,

   Tried your version of the testbed program.  Partial screen
cut & paste attached.  Seems to work okay.

Regards,

Steve

┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows 2000 Professional Service Pack 4 (build 2195)                   │
│CPU : Pentium III with 1 logical core(s) with SSE1                                      │
├──────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┤
│        Algorithm notes           │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│01 Alex / MMX                     │  55     │ 7.352    │ 7.361    │ 7.349    │ 7.363    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  45     │ N/A      │ N/A      │ N/A      │ N/A      │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│03 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│04 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│05 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│06 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤

frktons

#261
The program has now these new features:



1) Display date - time of test in GMT format
2) Copy only the part of the screen that is filled with results to the clipboard
   with the tags to format it as <code> already in the pasted text to the Forum
3) Simplified procedure to use it



The following code is what I have in my clipboard with the [C]opy function:


┌─────────────────────────────────────────────────────────────[16 Nov 2010 at 16 40 GMT]─┐
│OS  : Microsoft Windows 7 Ultimate Edition, 64-bit (build 7600)                         │
│CPU : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz with 2 logical core(s) with SSSE3           │
├──────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┤
│        Algorithm notes           │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│01 Alex / mmx - punpcklbw movq    │    67   │    5.422 │    5.410 │    5.408 │    5.418 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / xmm - punpcklbw movdqa │    46   │    2.356 │    2.356 │    2.356 │    2.356 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


I'll post the new release in few days. Time is needed to adapt the algo engine Alex has
prepared.  :P

Stay tuned

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 16, 2010, 04:51:45 PM
┌─────────────────────────────────────────────────────────────[16 Nov 2010 at 16 40 GMT]─┐

Frank, why hours and minutes is not separated by ":" but space instead?

Antariy

Quote from: FORTRANS on November 16, 2010, 01:10:26 PM
Hi Alex,

   Tried your version of the testbed program.  Partial screen
cut & paste attached.  Seems to work okay.

Regards,

Steve

┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows 2000 Professional Service Pack 4 (build 2195)                   │
│CPU : Pentium III with 1 logical core(s) with SSE1                                      │
├──────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┤
│        Algorithm notes           │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│01 Alex / MMX                     │  55     │ 7.352    │ 7.361    │ 7.349    │ 7.363    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  45     │ N/A      │ N/A      │ N/A      │ N/A      │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│03 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│04 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│05 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│06 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


Thank you for test, Steve!



Alex

frktons

Quote from: Antariy on November 16, 2010, 10:36:12 PM
Quote from: frktons on November 16, 2010, 04:51:45 PM
┌─────────────────────────────────────────────────────────────[16 Nov 2010 at 16 40 GMT]─┐

Frank, why hours and minutes is not separated by ":" but space instead?


In my latest code the ":" separator has been added. I made this test before inserting it  :P
Mind is like a parachute. You know what to do in order to use it :-)

jj2007

Quote from: Antariy on November 15, 2010, 11:14:56 PM
I have implemented my version of manager which:
1. You can add algos for test by simple choosing from 16 available files. At this files you should put your tested code. At the same file you can set description for your algo.
2. User can specify used instructions set - if current CPU is not support these instructions, then test will not run - instead of timings will printed "N/A".
3. Labels for code size already specified - user can use one from specified labels for piece of code, or for entire proc.
...
Alex

Works like a charm. I don't like that I have to maximise the window by hand - I always use maximised windows for such tests, and the default size is definitely too small (not everything visible).
The lines between the tests are more confusing than helpful, the eye has to jump a lot to see the differences.
Otherwise fine work, congrats!
JJ

Antariy

Quote from: jj2007 on November 17, 2010, 12:45:28 AM
I don't like that I have to maximise the window by hand - I always use maximised windows for such tests, and the default size is definitely too small (not everything visible).
The lines between the tests are more confusing than helpful, the eye has to jump a lot to see the differences.

That is question for the Frank - as main developer. If exclude separation lines (horizontal grid), then can be tested up to 32 algos with current layout. Or up to ~ 20 with standard layout (25 lines - 2 for OS and CPU, 1 for keys, and something other).

frktons

Quote from: jj2007 on November 17, 2010, 12:45:28 AM
Works like a charm. I don't like that I have to maximise the window by hand - I always use maximised windows
for such tests, and the default size is definitely too small (not everything visible).
The lines between the tests are more confusing than helpful, the eye has to jump a lot to see the differences.
Otherwise fine work, congrats!
JJ

Thanks Jochen.
I use Lucida console, size 16, and the display mode can be fixed from console properties. So no need to maximize it by hand.
If you use  win xp probably you switch to full screen mode that is not available anymore from vista onwards, this also can
be fixed from console properties, but I think you already know it. I don't understand where the problem is.
Sorry for the separator lines. But for me it is the opposite. I don't like attached lines one after the other.  :eek

By the way, everybody here is more expert than me, so changing the display mode is not that hard for you.  :P

Moreover I don't think it is possible to set a display mode that suits the needs of all users  :snooty:

Frank



Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 17, 2010, 01:06:11 AM
So no need to maximize it by hand.

Jochen, double click at console title, as in each usual dialog will maximize console to show all lines/columns.



Alex

jj2007

Quote from: Antariy on November 17, 2010, 01:20:08 AM
Quote from: frktons on November 17, 2010, 01:06:11 AM
So no need to maximize it by hand.

Jochen, double click at console title, as in each usual dialog will maximize console to show all lines/columns.


I know. This is what I call "need to maximize it by hand" - and it is two mouseclicks too much.