[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