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

frktons

Quote from: Antariy on November 13, 2010, 01:55:39 AM
1024x768 (most general of the days) would be enough for ~45 lines of the console with 16 font, I guess.

As sayed - I suggest fixed screen mode as fastest and reliablest to do. But if you wants more training - implementation of it would be good thing.
But you must remember, that the unification of the testing of the algos is not done yet - that will be much more big and interesting thing to do, than switching of the screens.

If you remove description of the task, AND PUT THAT DESCRIPTION ON THE CONSOLE TITLE (SetConsoleTitle) - that would be do the same job, but with +1 line more on the console...

Alex

In order to test a task users have to modify the description of the console title?
I'm trying to avoit it. The user should only set the flags for the Display Mode and the Algos to test
in the main program, or in an include containing those data, even better.
I'd prefer the user doesn't touch at all the main program, if possible.
Probably the best thing to do is to have the user modify only the algos include, in which
there are the data and code needed:



TestAlgo1  EQU  ON

DisplayMode EQU DM12

.data

    AlgoSize   DWORD EndAlgo1 - Algo1
    Algo1Desc  DB "Alex- MMX and PUNPCKBLW",0

.code


Algo1:

; code to test


EndAlgo1:



At least this is what I'm thinking at the moment.  :P

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

Antariy

Quote from: frktons on November 13, 2010, 02:06:04 AM
In order to test a task users have to modify the description of the console title?
I'm trying to avoit it. The user should only set the flags for the Display Mode and the Algos to test
in the main program, or in an include containing those data, even better.
I'd prefer the user doesn't touch at all the main program, if possible.
Probably the best thing to do is to have the user modify only the algos include, in which
there are the data and code needed:



TestAlgo1  EQU  ON
Algo1Desc  DB "Alex- MMX and PUNPCKBLW",0
DisplayMode EQU DM12

.data

    AlgoSize        DWORD EndAlgo1 - Algo1

.code


Algo1:

; code to test


EndAlgo1:



At least this is what I'm thinking at the moment.  :P

You have great case to study MASM macros' design.  :U
If testbed have external files with algos, why it cannot have one *common* external file?
For example - testbed_common.inc which is contain the string like:

szTitleOfTheConsole        db "The test: when Hutch will say his opinion about MemInfoMicro?",0


And testbed calls SetConsoleTitle at main code without changing of the main source.

frktons

Quote from: Antariy on November 13, 2010, 02:11:18 AM
You have great case to study MASM macros' design.  :U
If testbed have external files with algos, why it cannot have one *common* external file?
For example - testbed_common.inc which is contain the string like:

szTitleOfTheConsole        db "The test: when Hutch will say his opinion about MemInfoMicro?",0


And testbed calls SetConsoleTitle at main code without changing of the main source.


Yes Alex, this is doable and one of the thing I'd like to do in the next version.  :U

As I said I want to avoid the user touch the main program in order to use the testbed.

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

frktons

#243
For Assembly programmers the number 16 is a "magic number", so the decision has been taken  :lol

The Max number of Algos to test will be 16.

In this new release, V. 1.30 some changes have taken place towards the new program structure to
allow an easy way of using the New Testbed:

1) the "task description" has been moved to the Console title, freeing a couple of lines for 1 algo.
2) the rows of the main screen are now 40, to allow the display of 16 algos
3) the "D/d" option has no future anymore  :P
4) some procs have been removed because not used anymore
5) the same has happened for unused variables
6) updated the Help files with new dimension and credits
7) algos to test are in included files for easy management and
    replacement


Frank

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

frktons

#244
Implemented the Info key to display a screen with instructions on how to use
the Testbed to test your algos.  :wink

Corrected some unaligned display and some other minor things.

I'd like to know your opinion on the usability of the program and if it is clear enough
how to use it.

Thanks.

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

Antariy

Hi, all!

At this time Frank and I'm is before issue: which kind of management of addition of test into testbed would have better usability.

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.

All files for addition of the code into test already exist - you just should choose your file.
First two files is used for my MMX algo and Frank's SSE2 algo. Other files is templates which can be easily used for addition if new code into test.
Read comments at AlgoX.inc for understanding how you can add your code into test and tune testbed.

So, we wait feedback for comparsion which implementation of algos addition and tuning of testbed is have better usability.

Testing on non-SSE2 capable CPUs is appreciated - in this test you will see how testbed manage not supported algos.



Alex

frktons

Hi Alex.

What have you tested? It is not displayed, or I didn't see it on the screen?

┌────────────────────────────────────────────────────────────────────────────────────────┐
│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                     │  55     │ 3.782    │ 3.702    │ 3.717    │ 3.713    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  45     │ 4.488    │ 4.487    │ 4.489    │ 4.502    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


And all these lines:

03 Here can be your advertisement │  0      │          │          │          │          │


Isn't it better not to display that stuff?

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

Antariy

Quote from: frktons on November 15, 2010, 11:21:04 PM
Hi Alex.

What have you tested? It is not displayed, or I didn't see it on the screen?

┌────────────────────────────────────────────────────────────────────────────────────────┐
│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                     │  55     │ 3.782    │ 3.702    │ 3.717    │ 3.713    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  45     │ 4.488    │ 4.487    │ 4.489    │ 4.502    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


It tested algos which convert DOS-like screen to Windows console screen buffer contents. So, current algos which is included to test. I have write descriptions that because I'm tired, sorry. You can change desctiptions as you want in corresponding AlgoX.inc file :P


Quote from: frktons on November 15, 2010, 11:21:04 PM
And all these lines:

03 Here can be your advertisement │  0      │          │          │          │          │


Isn't it better not to display that stuff?

I guess that is very funny, I didn't know how this is looks at other side of Earth :P Something like modern television.  :green2


My results:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows XP Professional Service Pack 2 (build 2600)                     │
│CPU : Intel(R) Celeron(R) CPU 2.13GHz with 1 logical core(s) with SSE3                  │
├──────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┤
│        Algorithm notes           │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│01 Alex / MMX                     │  55     │ 9.976    │ 10.101   │ 10.116   │ 10.088   │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  45     │ 6.873    │ 6.832    │ 6.854    │ 6.811    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│03 Here can be your advertisement │  0      │          │          │          │          │
├──────────────────────────────────┴─────────┴──────────┴──────────┴──────────┴──────────┤
│ Esc         Exit       Copy       Run       View       Save       Info       F1 Help   │
└────────────────────────────────────────────────────────────────────────────────────────┘




Alex

frktons

I corrected the XMM algo, it should be:


shr  ecx,2


not:


shr  ecx,1


The real results are:


┌────────────────────────────────────────────────────────────────────────────────────────┐
│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                     │  55     │ 3.803    │ 3.779    │ 3.798    │ 3.786    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  46     │ 2.388    │ 2.388    │ 2.386    │ 2.408    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


That display could be funny or not, I don't know, I just like clean and clear things  :P

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

Antariy

Quote from: frktons on November 15, 2010, 11:36:26 PM
I corrected the XMM algo, it should be:


shr  ecx,2


not:


shr  ecx,1


The real results are:


┌────────────────────────────────────────────────────────────────────────────────────────┐
│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                     │  55     │ 3.803    │ 3.779    │ 3.798    │ 3.786    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤
│02 Frank / SSE2                   │  46     │ 2.388    │ 2.388    │ 2.386    │ 2.408    │
├──────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┤


That display could be funny or not, I don't know, I just like clean and clear things  :P

Frank, I just get already existed code - nothing is changed, only address of the output buffer in tested algo at Algo2.inc



Alex

frktons

Quote from: Antariy on November 15, 2010, 11:44:25 PM
Frank, I just get already existed code - nothing is changed, only address of the output buffer in tested algo at Algo2.inc

Alex

You used an old uncorrected code of mine.  :P
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 15, 2010, 11:36:26 PM
That display could be funny or not, I don't know, I just like clean and clear things  :P

Of course it is funny :P

Maybe, with this string we can get some bucks as from selling of some secret link to some free assembler :bg

frktons

Quote from: Antariy on November 15, 2010, 11:47:50 PM
Of course it is funny :P

Maybe, with this string we can get some bucks as from selling of some secret link to some free assembler :bg

Did you read what dedndave said? He wants to cut the lines to post in order to save space
for more posts on one page. Try to read all the comments that have already been expressed.  :lol

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

Antariy

Quote from: frktons on November 15, 2010, 11:58:16 PM
Quote from: Antariy on November 15, 2010, 11:47:50 PM
Of course it is funny :P

Maybe, with this string we can get some bucks as from selling of some secret link to some free assembler :bg

Did you read what dedndave said? He wants to cut the lines to post in order to save space
for more posts on one page. Try to read all the comments that have already been expressed.  :lol

First, if Dave do this hard thing, and count posts on any page - he will know that forum put 15 post on each page of the thread. Have no meaning the length of the posts. :P

At second, I use not "Select All" at console menu - but manual selection.
Even if Dave gets a full screen with not needed funny info like advertisements, he can edit that screen as I do anytime - just remove impty lines with no tests.

If use software copying to clipboard, this long string with no sense for test can be used as substring for search the end of results at long string containing all screen. After founding start of this "advertisement", you can put zero byte here and copy this buffer into clipboard. Will be copyed only true results of existed algos, and OS version and CPU.



Alex

frktons

Quote from: Antariy on November 16, 2010, 12:07:18 AM
If use software copying to clipboard, this long string with no sense for test can be used as substring for search the end of results at long string containing all screen. After founding start of this "advertisement", you can put zero byte here and copy this buffer into clipboard. Will be copyed only true results of existed algos, and OS version and CPU.

Alex

I'll implement a version of copy to clipboard that copies only the used lines, I already know
how to do it, I just hadn't enough time to code it jet.

But I'll not maintain your version, only in mine I'll do the changing. I don't want to get crazy
about other versions that I don't know enough.  :lol

Whatever you think about improvements in your version is your responsibility.  :U

My idea, by the way, is simpler and more efficient than looking at a string inside another string.

You'll see it.  :P

Frank

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