[Gmp-commit] /var/hg/www: 4 new changesets

mercurial at gmplib.org mercurial at gmplib.org
Sun Nov 1 21:47:44 UTC 2015


details:   /var/hg/www/rev/ac1f36fbdc69
changeset: 196:ac1f36fbdc69
user:      Torbjorn Granlund <torbjorng at google.com>
date:      Thu Aug 13 23:01:42 2015 +0200
description:
Make stricter.

details:   /var/hg/www/rev/26897a213720
changeset: 197:26897a213720
user:      Torbjorn Granlund <torbjorng at google.com>
date:      Thu Oct 22 10:19:29 2015 +0200
description:
Many pending web commits.

details:   /var/hg/www/rev/de466bdbd47a
changeset: 198:de466bdbd47a
user:      Torbjorn Granlund <torbjorng at google.com>
date:      Sun Nov 01 22:47:03 2015 +0100
description:
Add more considered incompatibilities.

details:   /var/hg/www/rev/e5c1e00b3852
changeset: 199:e5c1e00b3852
user:      Torbjorn Granlund <torbjorng at google.com>
date:      Sun Nov 01 22:47:31 2015 +0100
description:
Update system status.

diffstat:

 devel/GMPng.html           |    12 +-
 devel/bugstate.html        |    30 +-
 devel/incompatibility.html |    16 +-
 devel/index.html           |    77 +
 devel/testsystems.html     |  1961 +++++++++++++++++++++++++------------------
 gmpbench.html              |   370 ++++---
 index.html                 |     4 +
 robots.txt                 |     4 +-
 8 files changed, 1461 insertions(+), 1013 deletions(-)

diffs (truncated from 3160 to 300 lines):

diff -r 45eabfa37739 -r e5c1e00b3852 devel/GMPng.html
--- a/devel/GMPng.html	Sun Jan 11 17:06:49 2015 +0100
+++ b/devel/GMPng.html	Sun Nov 01 22:47:31 2015 +0100
@@ -56,8 +56,12 @@
 
 <h2> Bugs (in development sources) </h2>
 
-  <p> </p>
-
+  <p style="color:#a00000">
+    We miss lots of rules in libtool (and configure, elsewhere?)  because they
+    match "x86_64" and "i386" instead of all our CPUs.  Among unknown things,
+    this causes solaris shared builds to silently fall back to static builds
+    (presumably since anno dazumal).
+  </p>
 
 <h2> Balanced multiplication </h2>
 
@@ -269,7 +273,7 @@
   <p style="color:#a00000"> Consider making fat the default.  This could allow us to make more fine
   grained tuning, without trying to invent ever stranger configure CPU names. </p>
 
-  <p style="color:#00a000"> Make GMP_CPU_TYPE fat CPU selection standard for a fat build (but perhaps
+  <p style="color:#a00000"> Make GMP_CPU_TYPE fat CPU selection standard for a fat build (but perhaps
   rename it to something more specific, GMP_FAT_CPU_TYPE_SELECT).  Motive:
   Testability. </p>
 
@@ -338,7 +342,7 @@
 
 </div>
 
-<span style="font-size:50%;">Last modified: 2015-01-11 </span>
+<span style="font-size:50%;">Last modified: 2015-07-19 </span>
 
 <div id="footer">
 <table style="width:100%; background-color:#e8e8e8;">
diff -r 45eabfa37739 -r e5c1e00b3852 devel/bugstate.html
--- a/devel/bugstate.html	Sun Jan 11 17:06:49 2015 +0100
+++ b/devel/bugstate.html	Sun Nov 01 22:47:31 2015 +0100
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
-  <title>GMP 5.0 bugs state</title>
+  <title>GMP dev bugs state</title>
   <link rel="shortcut icon" href="favicon.ico">
   <link rel="stylesheet" href="gmp.css">
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
@@ -118,6 +118,32 @@
     <td> 18 <td> <td> mpz/t-gcd <td> pa32 <td> 1259977915 <td> gcc110 <td>
       "mpz_gcdext returned incorrect result"     [powerpc32/divrem_2.asm bug]
 
+  <tr bgcolor="red">
+    <td> <nobr>2014-12-25</nobr> <td> <td> mpn/logic <td>  <td>  <td>  <td>
+      The tested code is not the mdep code, but the inlines.  The HAVE_NATIVE_ defines
+      are inadvertedly overridden by config.h.  (This was demoed by s390 qemu bug.)
+
+  <tr bgcolor="yellow">
+    <td> <nobr>2014-12-25</nobr> <td> <td> misc/t-printf <td> mips64  <td>  <td> mips64eb <td>
+      Miscompile due to clang 3.5 bug.
+
+  <tr bgcolor="yellow">
+    <td> <nobr>2014-12-25</nobr> <td> <td> mpn/t-div<br>mpz/t-powm_ui <td> ppc64  <td>  <td> power7, ppc64el, powerpc-jessie <td>
+      Miscompile due to clang 3.5 bug.
+
+  <tr bgcolor="red">
+    <td> <nobr>2014-12-25</nobr> <td> <td> BUILD <td> armv5  <td>  <td> armel-jessie <td>
+      C++ exception code compiled with clang requires library libatomic.
+
+  <tr bgcolor="yellow">
+    <td> <nobr>2014-12-25</nobr> <td> <td>  <td> armv7  <td>  <td> panda,armv7 <td>
+      Bug in clang 3.5, triggered by tests seeding.
+
+  <tr bgcolor="yellow">
+    <td> <nobr>2014-12-25</nobr> <td> <td>  <td> armv7  <td>  <td> panda,armv7 <td>
+      Default of clang 3.5 to mips 'r2' on 'r1' systems.  We've worked around
+      this for the nightly builds, but this will remain a problem for users.
+
 </table>
 
 <br><br>
@@ -129,7 +155,7 @@
 </table>
 
 <br><br>
-<font size="-4">Last modified: 2012-11-06 </font>
+<font size="-4">Last modified: 2014-12-25 </font>
 
 </body>
 </html>
diff -r 45eabfa37739 -r e5c1e00b3852 devel/incompatibility.html
--- a/devel/incompatibility.html	Sun Jan 11 17:06:49 2015 +0100
+++ b/devel/incompatibility.html	Sun Nov 01 22:47:31 2015 +0100
@@ -82,6 +82,20 @@
 	<td> ✓ </td>
 	<td> ✓ </td>
       </tr>
+      <tr>
+	<td> Add<code> unsigned long long </code>functions, <code>mpX_func_uj</code>.
+	  (Note that this requires C99 for library compilation, while we should
+	  allow user code to be compiled by any C90 compiler but then #define away the <code>uj</code> interfaces.)
+	<td> usefulness </td>
+	<td> ? </td>
+	<td>  </td>
+      </tr>
+      <tr>
+	<td> Consider making mp_bitcnt_t a 64-bit integer also on 32-bit hosts.
+	<td> avoiding overflow for certain interfaces for otherwise in-range numbers </td>
+	<td> ✓ </td>
+	<td> ✓ </td>
+      </tr>
     </tbody>
 </table>
 </blockquote>
@@ -93,7 +107,7 @@
 </div>
 
 <div id="footer">
-<font size="-4">Last modified: 2013-01-07 </font>
+<font size="-4">Last modified: 2015-10-31 </font>
 <table cellpadding=0 width="100%" bgcolor="#e8e8e8">
   <tr>
     <td align="center">
diff -r 45eabfa37739 -r e5c1e00b3852 devel/index.html
--- a/devel/index.html	Sun Jan 11 17:06:49 2015 +0100
+++ b/devel/index.html	Sun Nov 01 22:47:31 2015 +0100
@@ -90,6 +90,83 @@
 <hr>
 
 
+<h3> Comparing sqrt and root(2) </h3>
+
+<p>
+We use quite different algorithms for mpz_sqrt/mpz_sqrtrem/mpn_sqrtrem and
+mpz_root/mpz_rootrem/mpn_rootrem.  Here we compare the former group to the
+latter group for computing square roots.
+</p>
+
+<p>
+The <i>x</i>-axis represents input operand size in bits.  The left-hand diagram
+is for computing just the root result, the right-hand diagram also computes the
+remainder.
+</p>
+
+<p>
+There are two anomalies here, one very visible and one quite subtle:
+</p>
+<ol>
+  <li>
+    The root functions badly underperform for operands of less than about 10000
+    bits; this is due to the absence of starting value tables for the Newton
+    code and that sqrt has register-based code for the first few iterations.
+  </li>
+  <li>
+    When producing the remainder, the root functions perform about 20% worse
+    than the sqrt functions.
+  </li>
+  <li>
+    Less visible is that for quite large operands the sqrt function performs
+    around 5% worse than the more general root function when both are asked not
+    to return the remainder.  This is supposedly related to the different
+    strategies of the sqrt and root code; the former basically computes a
+    remainder always in order to adjust the final result, the latter computes
+    an extra limb which usually allows it to return the accurate result without
+    further work.
+  </li>
+</ol>
+
+<table>
+  <tr>
+    <td>
+      <img src="norem.png" alt="">
+    </td>
+    <td>
+      <img src="rem.png" alt="">
+    </td>
+  </tr>
+</table>
+
+
+<h3> Broadwell optimisation </h3>
+
+<p>
+Most GMP's inner-loops run faster on Broadwell than on Haswell in GMP 6.0.0,
+but unfortunately some of the most critical multiply loops run quite
+considerably slower.
+</p>
+
+<p>
+These plots compare Haswell and Broadwell using the dev sources for plain
+multiplication, squaring, and Hensel remaindering.  Dimension is cycles per
+n-limb operands, meaning that <b>lower is better</b>.
+</p>
+
+<table>
+  <tr> <td>
+      <img src="hsw-bdw-mul_basecase.png" alt="">
+  </td> </tr>
+  <tr> <td>
+      <img src="hsw-bdw-sqr_basecase.png" alt="">
+  </td> </tr>
+  <tr> <td>
+      <img src="hsw-bdw-redc_1.png" alt="">
+  </td> </tr>
+</table>
+
+
 <h3> Basecase performance (obsolete with 6.0.0) </h3>
 
 <p> We are working to make critical basecase functions perform near-optimally
diff -r 45eabfa37739 -r e5c1e00b3852 devel/testsystems.html
--- a/devel/testsystems.html	Sun Jan 11 17:06:49 2015 +0100
+++ b/devel/testsystems.html	Sun Nov 01 22:47:31 2015 +0100
@@ -5,8 +5,8 @@
   <link rel="shortcut icon" href="favicon.ico">
   <link rel="stylesheet" href="new.css">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <style type="text/css"> td {padding-left:4pt; padding-right:4pt;}</style>
-  <style type="text/css"> th {padding-left:4pt; text-align:left;}</style>
+  <style type="text/css"> td {padding-left:4pt; padding-right:4pt; white-space:nowrap;}</style>
+  <style type="text/css"> th {padding-left:4pt; text-align:center;}</style>
 </head>
 
 <body>
@@ -48,29 +48,60 @@
 <p>
 GMP developers with an account at <code>shell.gmplib.org</code> can log in to
 any of these systems via <code>shell</code>.  Only virtualised systems marked
-as <i>running on</i> <code>shell</code> are directly reachanble.  Other systems
-can be reached via the system <code>nshell</code> which acts as a secondary
-gateway.  Log in to <code>nshell</code> from <code>shell</code> using this
-command:
+as <i>running on</i> <code>martin</code> are directly reachable.  Other
+systems can be reached via the system <code>nshell</code> which acts as a
+secondary gateway.  Log in to <code>nshell</code> from <code>shell</code> using
+this command:
 </p>
 <blockquote>
-<code>shell$ ssh -p $((`id -g $USER` + 1000)) localhost</code>
+<code>shell$ ssh -p 2222 localhost</code>
 </blockquote>
 <p>
-Most systems are currently powered off except when tests are being run.
-The system for power control is a bit crude; the command for switching on
+Most systems below are powered off except when tests are being run.  The system
+for power control is a bit crude; the command for switching on
 <code>[system]</code> is
 </p>
 <blockquote>
-<code>shell$ pdu on [system]</code>
+<code>nshell$ pdu on [system]</code>
 </blockquote>
 <p>
 and then it could be switched off again with this command:
 </p>
 <blockquote>
-<code>shell$ pdu off [system]</code>
+<code>nshell$ pdu off [system]</code>
 </blockquote>
+<p>
+Please be careful about switching machines off; only consider switching a
+system off if you switched it on.
+</p>
 
+<p>
+Table colour coding indicates where a machine is located:
+</p>
+<blockquote>
+<table>
+  <tr>
+    <th> on </th>
+    <th> off  </th>
+    <th> location </th>
+  </tr>
+  <tr>
+    <td style="width:20pt; background-color:#d0d0d0">   </td>
+    <td style="width:20pt; background-color:#a0a0a0">   </td>
+    <td> TUG in Stockholm, access via <code>shell.gmplib.org</code> </td>
+  </tr>
+  <tr>
+    <td style="width:20pt; background-color:#ffb050">   </td>
+    <td style="width:20pt; background-color:#e08030">   </td>
+    <td> Tilaa in Amsterdam, no access </td>
+  </tr>
+  <tr>
+    <td style="width:20pt; background-color:#c0d0ff">   </td>
+    <td style="width:20pt; background-color:#6080e0">   </td>
+    <td> Salt, access via TUG's <code>shell.gmplib.org</code> and then as per instructions above </td>
+  </tr>
+</table>
+</blockquote>
 
 <h4>Real hardware systems</h4>
 
@@ -86,329 +117,420 @@
     <colgroup><col>
       <thead>
 	<tr>
-	  <th style="width:9%;"> host
+	  <th style="width:7%;"> host


More information about the gmp-commit mailing list