udiv_qr_4by2

Marco Bodrato bodrato at mail.dm.unipi.it
Sun Sep 15 17:47:23 UTC 2019


Ciao,

Il Mer, 4 Settembre 2019 7:19 am, Marco Bodrato ha scritto:
> Il Mar, 3 Settembre 2019 11:00 pm, Niels Möller ha scritto:

>> I think it's supposed to be useful on architectures with high mul
>> throughput but poor latency.

> We will see if something more changes with this further optimisation.

We did not jet have the history preservation feature for devel/thres/
pages, but I saved the one about DIV_QR_2_PI2_THRESHOLD.

Before the last change to udiv_qr_4by2 we had 18 numeric measured
thresholds (I mean != MP_SIZE_T_MAX  /* never */), in the range 10-39; now
we have 25, in the range 7-29.

In particular I notice the following results.

Before:
zen-pc-linux-gnu	32 	matigentoo64.gmplib.org-stat 	23
zen-pc-linux-gnu	64 	matigentoo64.gmplib.org-stat 	39
zen-pc-linux-gnu	64 	pirigentoo64.gmplib.org-stat 	∞
zen-pc-linux-gnu	64 	surigentoo64.gmplib.org-stat 	∞
zen-pc-linux-gnu	32 	pirigentoo64.gmplib.org-stat 	∞
zen-pc-linux-gnu	32 	surigentoo64.gmplib.org-stat 	∞

After:
zen-pc-linux-gnu	32 	matigentoo64.gmplib.org-stat 	7
zen-pc-linux-gnu	64 	matigentoo64.gmplib.org-stat 	15
zen-pc-linux-gnu	64 	pirigentoo64.gmplib.org-stat 	24
zen-pc-linux-gnu	64 	surigentoo64.gmplib.org-stat 	25
zen-pc-linux-gnu	32 	pirigentoo64.gmplib.org-stat 	∞
zen-pc-linux-gnu	32 	surigentoo64.gmplib.org-stat 	∞

As we can see, on mati, the thresholds was more than halved, on piri and
suri, with the 64-bits ABI, the new code can be used...

But my main observation is that mati (zen2, according to
https://gmplib.org/devel/testsystems.html) wants some values, while piri
and suri (zen and zen+) wants very different ones. That's true for other
thresholds too. But they all share the same gmp-mparm.h file. Maybe it's
worth distinguishing them somehow with our config.guess?

Ĝis,
m

-- 
http://bodrato.it/papers/



More information about the gmp-devel mailing list