public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* Re: K6-II+, persistent strange test results of glibc-2.2.3
@ 2001-04-28 14:35 Stephen L Moshier
  0 siblings, 0 replies; 6+ messages in thread
From: Stephen L Moshier @ 2001-04-28 14:35 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: libc-alpha

>Byeong-ryeol Kim <jinbo21@hananet.net> writes:
>
>> is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
>> should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
>> difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
>> ulp       :  103021.0000
>
> AMD's FPU is lousy and I wouldn't be surprised at all


These errors (I have seen them too, previously) go away for me
if they are tested by a separate little test program of the same
particular calculation.  Anyhow on the AMD K6 I got several
segmentation faults during the build of 2.2.3 and no errors on make
check.

Maybe this is a compiler problem of some kind; I would be inclined to
try an older model of compiler, rather than a newer one.  But I have
trouble thinking of an ordinary miscompilation that would affect AMD
processors and not Intel.

To find out if it is a hardware problem you must be ready to exchange
everything: CPU, memory, motherboard, ...  Maybe it is easier just to
ask if anybody has seen an AMD machine that does not fail.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: K6-II+, persistent strange test results of glibc-2.2.3
  2001-04-28 12:13   ` Byeong-ryeol Kim
  2001-04-28 12:33     ` Jakub Jelinek
@ 2001-04-29  2:29     ` Andreas Jaeger
  1 sibling, 0 replies; 6+ messages in thread
From: Andreas Jaeger @ 2001-04-29  2:29 UTC (permalink / raw)
  To: Byeong-ryeol Kim; +Cc: Ulrich Drepper, libc-alpha

Byeong-ryeol Kim <jinbo21@hananet.net> writes:

> On 28 Apr 2001, Ulrich Drepper wrote:
> 
> > Byeong-ryeol Kim <jinbo21@hananet.net> writes:
> >
> > >  is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
> > >  should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
> > >  difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
> > >  ulp       :  103021.0000
> > >  max.ulp   :  1.0000
> > > Maximal error of `yn'
> > >  is      :  103021.0000 ulp
> > >  accepted:  3.0000 ulp
> >
> > This normally would suggest that the compiler is broken and you should
> > use a better one.
> ....
> 
> I'll try to test with latest gcc 3.1 pre-release, later.
> 
> > If you say that running the same binary produces different results
> > (and since this is not the case anywhere else) it's either a kernel or
> > a CPU problem.  AMD's FPU is lousy and I wouldn't be surprised at all.
> ...
> If these problems were related with kernel, which version of kernel
> would be adequate for glibc-2.2.3?
> 
> Yes, I know, AMD CPUs prior to Athlons have deficiency in FPU-intensive
> work, and I admit my CPU has serious problem, prepared to give up this
> CPU.

Please run the same binary (with the same libm and libc) on another
machine to check whether the CPU or the compiler is broken.

> But, why problems I mentioned in previous mail appear these
> days(2.2.3preX era), are newly added math functions revealing the
> workarounded CPU problems explicitly?
> If those were due to the deficiency of FPU of AMD CPUs, is this
> statement interpretable that AMD CPUs(though not all) are not adequate
> for FPU-intensive work or development platform of FPU-intensive programs?
> If so, How about Athlon or Duron family?

I don't have problem with the gcc 3.0 branch on athlons.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: K6-II+, persistent strange test results of glibc-2.2.3
  2001-04-28 12:13   ` Byeong-ryeol Kim
@ 2001-04-28 12:33     ` Jakub Jelinek
  2001-04-29  2:29     ` Andreas Jaeger
  1 sibling, 0 replies; 6+ messages in thread
From: Jakub Jelinek @ 2001-04-28 12:33 UTC (permalink / raw)
  To: Byeong-ryeol Kim; +Cc: Ulrich Drepper, libc-alpha

On Sun, Apr 29, 2001 at 04:12:38AM +0900, Byeong-ryeol Kim wrote:
> On 28 Apr 2001, Ulrich Drepper wrote:
> 
> > Byeong-ryeol Kim <jinbo21@hananet.net> writes:
> >
> > >  is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
> > >  should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
> > >  difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
> > >  ulp       :  103021.0000
> > >  max.ulp   :  1.0000
> > > Maximal error of `yn'
> > >  is      :  103021.0000 ulp
> > >  accepted:  3.0000 ulp
> >
> > This normally would suggest that the compiler is broken and you should
> > use a better one.
> ....
> 
> I'll try to test with latest gcc 3.1 pre-release, later.

The strange thing is that I don't get these failures in either -march=i686
or -march=i386 glibc bootstraps with the same compiler. As you said you've
built glibc with no special flags (there is no mention of -march=k6), I
really suspect the CPU.

	Jakub

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: K6-II+, persistent strange test results of glibc-2.2.3
  2001-04-28 10:08 ` Ulrich Drepper
@ 2001-04-28 12:13   ` Byeong-ryeol Kim
  2001-04-28 12:33     ` Jakub Jelinek
  2001-04-29  2:29     ` Andreas Jaeger
  0 siblings, 2 replies; 6+ messages in thread
From: Byeong-ryeol Kim @ 2001-04-28 12:13 UTC (permalink / raw)
  To: Ulrich Drepper; +Cc: libc-alpha

On 28 Apr 2001, Ulrich Drepper wrote:

> Byeong-ryeol Kim <jinbo21@hananet.net> writes:
>
> >  is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
> >  should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
> >  difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
> >  ulp       :  103021.0000
> >  max.ulp   :  1.0000
> > Maximal error of `yn'
> >  is      :  103021.0000 ulp
> >  accepted:  3.0000 ulp
>
> This normally would suggest that the compiler is broken and you should
> use a better one.
....

I'll try to test with latest gcc 3.1 pre-release, later.

> If you say that running the same binary produces different results
> (and since this is not the case anywhere else) it's either a kernel or
> a CPU problem.  AMD's FPU is lousy and I wouldn't be surprised at all.
...
If these problems were related with kernel, which version of kernel
would be adequate for glibc-2.2.3?

Yes, I know, AMD CPUs prior to Athlons have deficiency in FPU-intensive
work, and I admit my CPU has serious problem, prepared to give up this
CPU.
But, why problems I mentioned in previous mail appear these
days(2.2.3preX era), are newly added math functions revealing the
workarounded CPU problems explicitly?
If those were due to the deficiency of FPU of AMD CPUs, is this
statement interpretable that AMD CPUs(though not all) are not adequate
for FPU-intensive work or development platform of FPU-intensive programs?
If so, How about Athlon or Duron family?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: K6-II+, persistent strange test results of glibc-2.2.3
  2001-04-28  9:55 Byeong-ryeol Kim
@ 2001-04-28 10:08 ` Ulrich Drepper
  2001-04-28 12:13   ` Byeong-ryeol Kim
  0 siblings, 1 reply; 6+ messages in thread
From: Ulrich Drepper @ 2001-04-28 10:08 UTC (permalink / raw)
  To: Byeong-ryeol Kim; +Cc: libc-alpha

Byeong-ryeol Kim <jinbo21@hananet.net> writes:

>  is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
>  should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
>  difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
>  ulp       :  103021.0000
>  max.ulp   :  1.0000
> Maximal error of `yn'
>  is      :  103021.0000 ulp
>  accepted:  3.0000 ulp

This normally would suggest that the compiler is broken and you should
use a better one.

If you say that running the same binary produces different results
(and since this is not the case anywhere else) it's either a kernel or
a CPU problem.  AMD's FPU is lousy and I wouldn't be surprised at all.

-- 
---------------.                          ,-.   1325 Chesapeake Terrace
Ulrich Drepper  \    ,-------------------'   \  Sunnyvale, CA 94089 USA
Red Hat          `--' drepper at redhat.com   `------------------------

^ permalink raw reply	[flat|nested] 6+ messages in thread

* K6-II+, persistent strange test results of glibc-2.2.3
@ 2001-04-28  9:55 Byeong-ryeol Kim
  2001-04-28 10:08 ` Ulrich Drepper
  0 siblings, 1 reply; 6+ messages in thread
From: Byeong-ryeol Kim @ 2001-04-28  9:55 UTC (permalink / raw)
  To: libc-alpha

There was no noticeable problem in compiling glibc-2.2.3 on my K6-II+
machine. But, 'make check' and some private tests shows strange problems
related with math testsuites on this machine.
In short, 'make check' shows 1 error in math testsuites, but the binary
generated in math directory emits random success and random fail at
command prompt: (kernel-2.4.3-ac14, glibc-2.2.2-10, gcc-2.96-81,
binuutils-2.10.91.0.2-3, ie., Red Hat 7.1 system installed 3 days ago and
some updates)
BTW, I saw this problems on my pc and reported this to this list,
waited 2.2.3 release, but the results are the worst thing that I have
ever seen while 'make check'ing glibc.
BTW, I didn't use particular flags, only used default config(
ie.,
cd glibc-2.2.3; mkdir build-i386-linux ; cd build-i386-linux; \
../configure --prefix=/usr --enable-add-ons=yes \
--enable-kernel=2.2.5 i386-redhat-linux


1. make check fails 'only' while testing test-ifloat
...
make[2]: ***
[/usr/src/glibc-2.2.3/build-i386-linux/math/test-ifloat.out] Error 1
make[1]: *** [math/tests] Error 2
make[2]: [/usr/src/glibc-2.2.3/build-i386-linux/posix/annexc.out] \
Error 1 (ignored)
make: *** [check] Error 2
....

testing float (inline functions)
Failure: Test: yn (3, 10.0) == -0.25136265718383732978
Result:
 is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
 should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
 difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
 ulp       :  103021.0000
 max.ulp   :  1.0000
Maximal error of `yn'
 is      :  103021.0000 ulp
 accepted:  3.0000 ulp

Test suite completed:
  2410 test cases plus 2208 tests for exception flags executed.
  2 errors occurred.

======================================================================

testing float (without inline functions)

Test suite completed:
  2472 test cases plus 2270 tests for exception flags executed.
  All tests passed successfully.

======================================================================
testing double (without inline functions)

Test suite completed:
  2485 test cases plus 2277 tests for exception flags executed.
  All tests passed successfully.

======================================================================
testing long double (without inline functions)

Test suite completed:
  2484 test cases plus 2276 tests for exception flags executed.
  All tests passed successfully.

======================================================================
testing double (inline functions)

Test suite completed:
  2423 test cases plus 2215 tests for exception flags executed.
  All tests passed successfully.

=====================================================================
testing double (inline functions)

Test suite completed:
  2423 test cases plus 2215 tests for exception flags executed.
  All tests passed successfully.

======================================================================
testing long double (inline functions)

Test suite completed:
  2422 test cases plus 2214 tests for exception flags executed.
  All tests passed successfully.


3. tests on command prompt: randome success or random (diffrent)
errors. all testsutes about float, double precision except test-ldouble,
test-ildouble shows these problems. Especially, test-ifloat shows
non-predictable results.
I omitted successful results of test-float, test-ifloat, test-double,
test-idouble amongst various results per test.

=======================================================================
[root@progress math]# ./test-float
testing float (without inline functions)
Failure: Test: y1 (8.0) == -0.15806046173124749426
Result:
 is:         -1.58502578735351562500e-01  -0x1.449d0000000000000000p-3
 should be:  -1.58060461282730102539e-01  -0x1.43b53400000000000000p-3
 difference:  4.42117452621459960938e-04   0x1.cf980000000000000000p-12
 ulp       :  29670.0000
 max.ulp   :  2.0000
Maximal error of `y1'
 is      :  29670.0000 ulp
 accepted:  2.0000 ulp

Test suite completed:
  2472 test cases plus 2270 tests for exception flags executed.
  2 errors occurred.

=======================================================================
testing float (inline functions)
Failure: Test: jn (3, 10.0) == 0.058379379305186812343
Result:
 is:          1.40567660331726074219e-01   0x1.1fe1f000000000000000p-3
 should be:   5.83793781697750091553e-02   0x1.de3e6e00000000000000p-5
 difference:  8.21882784366607666016e-02   0x1.50a4a800000000000000p-4
 ulp       :  22062248.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  22062248.0000 ulp
 accepted:  2.0000 ulp
Failure: Test: y1 (8.0) == -0.15806046173124749426
Result:
 is:         -1.58502578735351562500e-01  -0x1.449d0000000000000000p-3
 should be:  -1.58060461282730102539e-01  -0x1.43b53400000000000000p-3
 difference:  4.42117452621459960938e-04   0x1.cf980000000000000000p-12
 ulp       :  29670.0000
 max.ulp   :  2.0000
Maximal error of `y1'
 is      :  29670.0000 ulp
 accepted:  2.0000 ulp

Test suite completed:
  2410 test cases plus 2208 tests for exception flags executed.
  4 errors occurred.


testing float (inline functions)
Failure: Test: jn (1, 2.0) == 0.57672480775687338720
Result:
 is:          5.93207716941833496094e-01   0x1.2fb8ec00000000000000p-1
 should be:   5.76724827289581298828e-01   0x1.27487a00000000000000p-1
 difference:  1.64828896522521972656e-02   0x1.0e0e4000000000000000p-6
 ulp       :  276537.0000
 max.ulp   :  0.0000
Failure: Test: jn (1, 10.0) == 0.043472746168861436670
Result:
 is:         -4.58623319864273071289e-02  -0x1.77b44800000000000000p-5
 should be:   4.34727445244789123535e-02   0x1.6420f400000000000000p-5
 difference:  8.93350765109062194824e-02   0x1.6dea9e00000000000000p-4
 ulp       :  23980702.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  23980702.0000 ulp
 accepted:  2.0000 ulp
Failure: Test: y1 (8.0) == -0.15806046173124749426
Result:
 is:         -1.58502578735351562500e-01  -0x1.449d0000000000000000p-3
 should be:  -1.58060461282730102539e-01  -0x1.43b53400000000000000p-3
 difference:  4.42117452621459960938e-04   0x1.cf980000000000000000p-12
 ulp       :  29670.0000
 max.ulp   :  2.0000
Maximal error of `y1'
 is      :  29670.0000 ulp
 accepted:  2.0000 ulp

Test suite completed:
  2410 test cases plus 2208 tests for exception flags executed.
  5 errors occurred.


testing float (inline functions)
Failure: Test: jn (1, 2.0) == 0.57672480775687338720
Result:
 is:          5.93207716941833496094e-01   0x1.2fb8ec00000000000000p-1
 should be:   5.76724827289581298828e-01   0x1.27487a00000000000000p-1
 difference:  1.64828896522521972656e-02   0x1.0e0e4000000000000000p-6
 ulp       :  276537.0000
 max.ulp   :  0.0000
Failure: Test: jn (1, 10.0) == 0.043472746168861436670
Result:
 is:         -4.58623319864273071289e-02  -0x1.77b44800000000000000p-5
 should be:   4.34727445244789123535e-02   0x1.6420f400000000000000p-5
 difference:  8.93350765109062194824e-02   0x1.6dea9e00000000000000p-4
 ulp       :  23980702.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  23980702.0000 ulp
 accepted:  2.0000 ulp

Test suite completed:
  2410 test cases plus 2208 tests for exception flags executed.
  3 errors occurred.


testing float (inline functions)
Failure: Test: jn (3, 10.0) == 0.058379379305186812343
Result:
 is:          1.40567660331726074219e-01   0x1.1fe1f000000000000000p-3
 should be:   5.83793781697750091553e-02   0x1.de3e6e00000000000000p-5
 difference:  8.21882784366607666016e-02   0x1.50a4a800000000000000p-4
 ulp       :  22062248.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  22062248.0000 ulp
 accepted:  2.0000 ulp
Failure: Test: y1 (8.0) == -0.15806046173124749426
Result:
 is:         -1.58502578735351562500e-01  -0x1.449d0000000000000000p-3
 should be:  -1.58060461282730102539e-01  -0x1.43b53400000000000000p-3
 difference:  4.42117452621459960938e-04   0x1.cf980000000000000000p-12
 ulp       :  29670.0000
 max.ulp   :  2.0000
Maximal error of `y1'
 is      :  29670.0000 ulp
 accepted:  2.0000 ulp
Failure: Test: yn (3, 10.0) == -0.25136265718383732978
Result:
 is:         -2.48292386531829833984e-01  -0x1.fc80b800000000000000p-3
 should be:  -2.51362651586532592773e-01  -0x1.01653600000000000000p-2
 difference:  3.07026505470275878906e-03   0x1.926d0000000000000000p-9
 ulp       :  103021.0000
 max.ulp   :  1.0000
Failure: Test: yn (10, 10.0) == -0.35981415218340272205
Result:
 is:         -3.55780839920043945312e-01  -0x1.6c51d000000000000000p-2
 should be:  -3.59814167022705078125e-01  -0x1.70732000000000000000p-2
 difference:  4.03332710266113281250e-03   0x1.08540000000000000000p-8
 ulp       :  135336.0000
 max.ulp   :  1.0000
Maximal error of `yn'
 is      :  135336.0000 ulp
 accepted:  3.0000 ulp

Test suite completed:
  2410 test cases plus 2208 tests for exception flags executed.
  7 errors occurred.

=======================================================================
[root@progress math]# ./test-double
testing double (without inline functions)
Failure: Test: yn (3, 2.0) == -1.1277837768404277861
Result:
 is:         -1.22227794179508597594e+00  -0x1.38e7350aa1d060000000p+0
 should be:  -1.12778377684042774298e+00  -0x1.20b670067d2f10000000p+0
 difference:  9.44941649546582329577e-02   0x1.830c50424a1500000000p-4
 ulp       :  425563886078485.0000
 max.ulp   :  1.0000
Failure: Test: yn (10, 2.0) == -129184.54220803928264
Result:
 is:         -1.37770754506644298090e+05  -0x1.0d156093ac78f0000000p+17
 should be:  -1.29184542208039289108e+05  -0x1.f8a08ace256460000000p+16
 difference:  8.58621229860500898212e+03   0x1.0c51b2c99c6c00000000p+13
 ulp       :  590040016304344.0000
 max.ulp   :  2.0000
Maximal error of `yn'
 is      :  590040016304344.0000 ulp
 accepted:  6.0000 ulp

Test suite completed:
  2485 test cases plus 2277 tests for exception flags executed.
  3 errors occurred.
[root@progress math]#

[root@progress math]# ./test-double
testing double (without inline functions)
Failure: Test: jn (1, 2.0) == 0.57672480775687338720
Result:
 is:          5.93207715674805236006e-01   0x1.2fb8ebf51dc680000000p-1
 should be:   5.76724807756873403264e-01   0x1.27487958371f00000000p-1
 difference:  1.64829079179318327419e-02   0x1.0e0e539cd4f000000000p-6
 ulp       :  148464835914360.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  148464835914360.0000 ulp
 accepted:  4.0000 ulp

Test suite completed:
  2485 test cases plus 2277 tests for exception flags executed.
  2 errors occurred.

======================================================================
testing long double (without inline functions)

Test suite completed:
  2484 test cases plus 2276 tests for exception flags executed.
  All tests passed successfully.
testing long double (without inline functions)

====================================================================
[root@progress math]# ./test-idouble
testing double (inline functions)
Failure: Test: jn (1, 2.0) == 0.57672480775687338720
Result:
 is:          5.93207715674805236006e-01   0x1.2fb8ebf51dc680000000p-1
 should be:   5.76724807756873403264e-01   0x1.27487958371f00000000p-1
 difference:  1.64829079179318327419e-02   0x1.0e0e539cd4f000000000p-6
 ulp       :  148464835914360.0000
 max.ulp   :  1.0000
Maximal error of `jn'
 is      :  148464835914360.0000 ulp
 accepted:  4.0000 ulp

Test suite completed:
  2423 test cases plus 2215 tests for exception flags executed.
  2 errors occurred.

[root@progress math]# ./test-idouble
testing double (inline functions)
Failure: Test: jn (3, 10.0) == 0.058379379305186812343
Result:
 is:          1.40567647708616738633e-01   0x1.1fe1ee4e45f4c0000000p-3
 should be:   5.83793793051868153965e-02   0x1.de3e6e9c0cc060000000p-5
 difference:  8.21882684034299232367e-02   0x1.50a4a54e858950000000p-4
 ulp       :  11844577758589226.0000
 max.ulp   :  3.0000
Failure: Test: jn (10, 10.0) == 0.20748610663335885770
Result:
 is:          1.77769869558646237406e-01   0x1.6c129bffbfa270000000p-3
 should be:   2.07486106633358868834e-01   0x1.a8ee79d2eacb00000000p-3
 difference:  2.97162370747126314274e-02   0x1.e6deee99594480000000p-6
 ulp       :  1070640273732233.0000
 max.ulp   :  4.0000
Maximal error of `jn'
 is      :  11844577758589226.0000 ulp
 accepted:  4.0000 ulp

Test suite completed:
  2423 test cases plus 2215 tests for exception flags executed.
  3 errors occurred.

===================================================================
testing long double (inline functions)

Test suite completed:
  2422 test cases plus 2214 tests for exception flags executed.
  All tests passed successfully.
testing long double (inline functions)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-04-29  2:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-28 14:35 K6-II+, persistent strange test results of glibc-2.2.3 Stephen L Moshier
  -- strict thread matches above, loose matches on Subject: below --
2001-04-28  9:55 Byeong-ryeol Kim
2001-04-28 10:08 ` Ulrich Drepper
2001-04-28 12:13   ` Byeong-ryeol Kim
2001-04-28 12:33     ` Jakub Jelinek
2001-04-29  2:29     ` Andreas Jaeger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).