Hello Bill,

I can report that both of my systems are now correctly detected. Thank you for the fix!

I also noticed that there were a couple of other missing processor models when compared with GMP mpn/x86_64/fat/fat.c: (the * star values are missing in MPIR)
Broadwell:
0x3d=61
0x47=71 *
0x4f=79
0x56=86 *
Skylake:
0x4e=78
0x55=85 *
0x5e=94
Kabylake:
0x8e=142 *
0x9e=158 *
There was a word of warning in the GMP source about some Haswell's not supporting BMI2, and so they treated those as Sandybridges. I'm not sure how you want to handle this, but I wanted to make sure I passed the warning on to you.

I ran the speed program, but I do not see how to "choose different assembly files". Do I have to build different speed programs with different assembly files linked in? Is this an option passed to "make speed"? Do various gmp-mparam.h files need to be copied to a specific location before "make speed" to create a different speed binary? Once I'm past this step, I believe I can figure out the rest by writing a script to automate the data gathering.

What sizes are of interest when running these tests? 1-100, 1-1000, 1-10000, etc? Can a given test be faster with one assembly file at one size, but be faster with a different assembly file at a larger size? When I gather this data, would you like a copy of it? Perhaps in a csv file?

BTW, when I run the speed program as is, right now, it gives results similar to the following:

$ ./speed -s 10-20 -t 5 mpz_add
overhead 0.000000004 secs, precision 1000000 units of 8.33e-10 secs, CPU freq 1200.00 MHz
              mpz_add
10        0.000000025
15        0.000000031
20        0.000000033

$ ./speed -s 10-20 -t 5 mpn_sqrtrem
overhead 0.000000004 secs, precision 1000000 units of 8.33e-10 secs, CPU freq 1200.00 MHz
          mpn_sqrtrem
10        0.000000717
15        0.000000900
20        0.000001129

Are there any specific options you would like me to use when running these speed tests and gathering results?

-David C.

On 2/20/2017 10:09 AM, 'Bill Hart' via mpir-devel wrote:
I have issued an alpha3 which supports your particular Broadwell chip, which was
a Family we weren't aware of. Can you verify that it is now detected correctly.

As for optimising for Broadwell, if you are interested, we'd be happy to have
the help. I've added details to the relevant ticket [1] to explain what would
need to be done. But it's not for the faint hearted!

The speed program mentioned that can be built by checking out MPIR from GitHub,
configuring MPIR and then doing make speed. To run the speed program, type
./speed. It explains how to use itself. This is not something automatic; there's
considerable work involved.

Bill.

[1] https://github.com/wbhart/mpir/issues/198

On 18 February 2017 at 20:24, <wrai...@morpheus.net
<mailto:wrai...@morpheus.net>> wrote:

    Hello Bill,

    I have two identical Broadwell computers, except that one runs Windows 7 Pro
    x64 and the other runs Linux x64 (based on CentOS 6.7).  The processor in
    both is an Intel Xeon E5-2687W v4.  I did 3 different configures/tunes on
    each system, in 3 different directories so there would be no cross
    contamination.  Configure originally chose k8 for both systems.  The
    commands I ran were:
    ===================
    On Windows:
    ./configure --enable-gmpcompat --disable-shared
    ./configure --enable-gmpcompat --disable-shared --build=haswell-w64-mingw32
    ./configure --enable-gmpcompat --disable-shared 
--build=broadwell-w64-mingw32
    make -j4
    make check
    cd tune
    make tune

    Both make and make check completed successfully for all 3 builds.  However,
    all 3 tune programs ended up crashing.  I'm not sure why, but I'm including
    the screen output in case you can see what the problem was.

    ===================
    On Linux:
    ./configure --enable-gmpcompat --disable-shared
    ./configure --enable-gmpcompat --disable-shared
    --build=haswell-unknown-linux-gnu
    ./configure --enable-gmpcompat --disable-shared
    --build=broadwell-unknown-linux-gnu
    make -j4
    make check
    cd tune
    make tune

    Both make and make check completed successfully for all 3 builds.  On Linux
    all 3 tune programs completed successfully.
    ===================

    All together I'm including 13 text files, the 6 config.log files, the 6 tune
    screen outputs, and the "cat /proc/cpuinfo" from my Linux computer.  I'm
    putting them in a zip file, but if this doesn't make it to the mailing list,
    I can resend with all 13 text files directly attached.

    Also, I see that you mentioned you would like some tests run on different
    assembly files to see which will run faster on Broadwell.  Could you let me
    know what tests you would like me to run, and also how to run these tests.
    I'd be happy to help if I can.  I would personally like to see Broadwell
    supported in this release, but I know that will take a lot of work.  Let me
    know if I can help or if there is any other information I can provide.

    -David C.

    On 2/14/2017 4:16 AM, 'Bill Hart' via mpir-devel wrote:

        It looks like you configured your broadwell as a generic x86_64 instead
        of as a
        haswell (as per your patch). This means that it wasn't using anything
        other than
        generic assembly for the build, and hence the tuning values will be way 
off.

        Perhaps you can force it to build as a haswell and then run tune again.

        On 14 February 2017 at 10:24, Isuru Fernando <isu...@gmail.com
        <mailto:isu...@gmail.com>
        <mailto:isu...@gmail.com <mailto:isu...@gmail.com>>> wrote:

             Attached are tuning values for nehalem, ivybridge, broadwell and
        skylake.
             (Also cpuinfo for the broadwell one)

             Isuru Fernado

             On Tue, Feb 14, 2017 at 1:29 PM, 'Bill Hart' via mpir-devel
             <mpir-devel@googlegroups.com <mailto:mpir-devel@googlegroups.com>
        <mailto:mpir-devel@googlegroups.com
        <mailto:mpir-devel@googlegroups.com>>> wrote:

                 Apparently if you have a very recent machine, yasm may fail to
        build the
                 assembly files for your architecture. To get around this,
        install the
                 latest yasm [1] and use MPIR's --with-system-yasm option.

                 If your system is recent and detects as core2 or k8 or simply
        x86_64 or
                 something else obviously out-of-date, when tuning, please also
        send us a
                 copy of cat /proc/cpuinfo so we can add support for your
        processor to MPIR.

                 Bill.

                 [1] http://yasm.tortall.net/

                 On 13 February 2017 at 18:41, Bill Hart
        <goodwillh...@googlemail.com <mailto:goodwillh...@googlemail.com>
                 <mailto:goodwillh...@googlemail.com
        <mailto:goodwillh...@googlemail.com>>> wrote:

                     Hi all,

                     MPIR has been modified recently, and new tuning crossovers
        have been
                     added.

                     If you have a machine that you want MPIR to run fast on, we
        would
                     really appreciate help getting tuning values for your
        machine. Here
                     is how.

                     git clone https://github.com/wbhart/mpir
                     <https://github.com/wbhart/mpir
        <https://github.com/wbhart/mpir>>
                     cd mpir
                     ./configure --enable-gmpcompat
                     make -j4
                     make check
                     cd tune
                     make tune

                     Please attach the tuning values that are printed to this 
post.
                     Please ensure that the first line is not missing, e.g.

                         Parameters for ./mpn/x86_64/k8/k10/k102/gmp-mparam.h

                     as this tells us what machine the values are for.

                     If the tuning program crashes, or starts to take too long,
        just send
                     us the values you have.

                     Any help that people can provide is really appreciated.

                     Note that we DON'T require tuning values for the following
        arches:

                     mpn/x86_64/k8/k10/k102
                     mpn/x86_64/haswell

                     If someone already attached values for your arch, no need
        to supply
                     them again.

                     Bill.


                 --
                 You received this message because you are subscribed to the 
Google
                 Groups "mpir-devel" group.
                 To unsubscribe from this group and stop receiving emails from
        it, send
                 an email to mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>
                 <mailto:mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>>.
                 To post to this group, send email to
        mpir-devel@googlegroups.com <mailto:mpir-devel@googlegroups.com>
                 <mailto:mpir-devel@googlegroups.com
        <mailto:mpir-devel@googlegroups.com>>.
                 Visit this group at https://groups.google.com/group/mpir-devel
        <https://groups.google.com/group/mpir-devel>
                 <https://groups.google.com/group/mpir-devel
        <https://groups.google.com/group/mpir-devel>>.
                 For more options, visit https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>
                 <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>>.


             --
             You received this message because you are subscribed to the Google
        Groups
             "mpir-devel" group.
             To unsubscribe from this group and stop receiving emails from it,
        send an
             email to mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>
             <mailto:mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>>.
             To post to this group, send email to mpir-devel@googlegroups.com
        <mailto:mpir-devel@googlegroups.com>
             <mailto:mpir-devel@googlegroups.com
        <mailto:mpir-devel@googlegroups.com>>.
             Visit this group at https://groups.google.com/group/mpir-devel
        <https://groups.google.com/group/mpir-devel>
             <https://groups.google.com/group/mpir-devel
        <https://groups.google.com/group/mpir-devel>>.
             For more options, visit https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>
             <https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>>.


        --
        You received this message because you are subscribed to the Google 
Groups
        "mpir-devel" group.
        To unsubscribe from this group and stop receiving emails from it, send
        an email
        to mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>
        <mailto:mpir-devel+unsubscr...@googlegroups.com
        <mailto:mpir-devel%2bunsubscr...@googlegroups.com>>.
        To post to this group, send email to mpir-devel@googlegroups.com
        <mailto:mpir-devel@googlegroups.com>
        <mailto:mpir-devel@googlegroups.com 
<mailto:mpir-devel@googlegroups.com>>.
        Visit this group at https://groups.google.com/group/mpir-devel
        <https://groups.google.com/group/mpir-devel>.
        For more options, visit https://groups.google.com/d/optout
        <https://groups.google.com/d/optout>.


    --
    You received this message because you are subscribed to the Google Groups
    "mpir-devel" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to mpir-devel+unsubscr...@googlegroups.com
    <mailto:mpir-devel%2bunsubscr...@googlegroups.com>.
    To post to this group, send email to mpir-devel@googlegroups.com
    <mailto:mpir-devel@googlegroups.com>.
    Visit this group at https://groups.google.com/group/mpir-devel
    <https://groups.google.com/group/mpir-devel>.
    For more options, visit https://groups.google.com/d/optout
    <https://groups.google.com/d/optout>.


--
You received this message because you are subscribed to the Google Groups
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to mpir-devel+unsubscr...@googlegroups.com
<mailto:mpir-devel+unsubscr...@googlegroups.com>.
To post to this group, send email to mpir-devel@googlegroups.com
<mailto:mpir-devel@googlegroups.com>.
Visit this group at https://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mpir-devel+unsubscr...@googlegroups.com.
To post to this group, send email to mpir-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to