Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: closed Priority: normal | Milestone: 6.10 branch Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: fixed Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by simonmar): * status: new = closed * resolution: = fixed Comment: Optimistically assuming this is the same bug as #2724 (now fixed). -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: closed Priority: normal | Milestone: 6.10 branch Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: fixed Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by SevenThunders): I tried to test it on the simple case that I provided but it no longer compiles. It seems the linker can't link to the atlas.lib file created by the dlltool.exe anymore. Here is the message: Linking Test2.exe ... ctest2.o:ctest2.c:(.text+0xb5): undefined reference to `cblas_dgemm' collect2: ld returned 1 exit status Alas I don't have time right now to figure out what has changed with the linker. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.10 branch Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by igloo): * milestone: 6.10.1 = 6.10 branch -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.10.1 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by igloo): * priority: low = normal * milestone: 6.8.3 = 6.10.1 -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: low| Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by simonpj): It's not that we don't want to fix it; it's just that with 30 days to 6.8.3 we can only fix things that can be done fairly quickly. And this bug only seems to show up in rather complicated and hard-to-reproduce situation. Anything you can do to help us get a reproducible error would be very helpful. Simon -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: low| Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by igloo): * priority: normal = low Comment: We are unlikely to get to this in time for 6.8.3. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: low| Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by SevenThunders): Sorry to hear that it gets low priority. Especially since it basically implies that you can not link to external math libraries safely in 6.8.2 and above on windows at least. If I have time I will try to get a test case that shows the bug with amd's acml library. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by simonmar): Presumably something in the floating-point unit state is changing in a way that upsets the code in the cblas library. I don't know of anything that could cause this; the native code generator does in one place generate code that saves and restores the FPU control word, but that was added in 6.8.2 (see #1910). To proceed we really need to know what is changing in the FPU state, so that we can trace it back to the point at which it changed. At the very least, we need a reproducible test case. I downloaded your files and tried it, but it looks like I have a DLL missing: {{{ c:\builds\atlas\Test2maketest c:\builds\atlas\Test2set CLIB=atlas c:\builds\atlas\Test2set TopFile=Test2 c:\builds\atlas\Test2set csrc=ctest2.c c:\builds\atlas\Test2set OutFile=Test2.exe c:\builds\atlas\Test2dlltool.exe -D atlas.dll -l atlas.lib c:\builds\atlas\Test2set XFLAGS=-threaded -O -XForeignFunctionInterface c:\builds\atlas\Test2rem set XFLAGS=-threaded -O -fffi c:\builds\atlas\Test2ghc -threaded -O -XForeignFunctionInterface -I. -I..\matri xstack --make Test2.hs ctest2.c -o Test2.exe -optl-latlas -optl-L. [1 of 1] Compiling Main ( Test2.hs, Test2.o ) Linking Test2.exe ... c:\builds\atlas\Test2Test2 c:\builds\atlas\Test2dir Volume in drive C has no label. Volume Serial Number is 6041-4C23 Directory of c:\builds\atlas\Test2 03/01/2008 10:38DIR . 03/01/2008 10:38DIR .. 29/11/2007 02:28 5,485,456 atlas.dll 03/01/2008 10:38 1,490 atlas.lib 29/11/2007 02:28 547 ctest2.c 29/11/2007 02:28 721 ctest2.h 03/01/2008 10:38 849 ctest2.o 03/01/2008 10:37 433 index.html 29/11/2007 02:28 309 maketest.bat 03/01/2008 10:38 687,370 Test2.exe 03/01/2008 10:38 502 Test2.exe.manifest 03/01/2008 10:38 1,913 Test2.hi 29/11/2007 02:28 178 Test2.hs 03/01/2008 10:38 4,920 Test2.o 12 File(s) 6,184,688 bytes 2 Dir(s) 47,145,406,464 bytes free c:\builds\atlas\Test2Test2.exe c:\builds\atlas\Test2 }}} Using dependency walker it looks like I don't have MSJAVA.DLL. Although why I need that, I have no idea. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by SevenThunders): I have tested this bug now with an entirely different cblas, namely the acml library distributed by AMD. Although my simplified test case compiles and runs correctly for the acml library, when the library is linked against my complex numerical application, NaNs proliferate everywhere in ghc 6.8.2. This happens for both the single and multiple threaded cblas code. Hopefully I won't need to generate a test case for the acml library. If I compile it with ghc 6.6.1 it works fine. I'd say this is a pretty serious bug and I'm surprised that it hasn't appeared in other applications and other bug reports. I simply would not trust any external floating point library that has been linked into ghc 6.8.2. I've replicated the bug now on two different windows machines, one AMD and one core duo, and with three different cblas libraries. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.3 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by igloo): * milestone: 6.8.2 = 6.8.3 -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.2 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by SevenThunders): I downloaded 6.8.2 and tried it with my current test case and atlas binary and the bug still persists. I recompiled my test case on an intel core duo 32 bit windows xp machine. I guess you better set the solution milestone further out than 6.8.2 -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.2 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Comment (by SevenThunders): Replying to [comment:2 igloo]: I thought I had replied to this, but I will do so again. Here is what I get using my binary atlas cblas {{{ rounded base = 0 C[0] = -1.#IND C[1] = 2 C[2] = 2 C[3] = -1.#IND }}} This is on my AMD athlon x2 processor running windows xp 64 (the library is still 32 bit). I get similar results running it on an Intel core duo processor with a different atlas compiled blas. Both blas's were compiled with threads turned on so in theory they are multi-threaded if that makes any difference. One question I have is does the code works correctly on your box if you compile it using the older ghc, but with my supplied atlas.dll binary, say ghc 6.6.1? On my box it runs just fine with the older ghc. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: 6.8.2 Component: Compiler |Version: 6.8.1 Severity: critical | Resolution: Keywords: | Difficulty: Unknown Testcase: | Architecture: x86 Os: Windows| ---+ Changes (by igloo): * difficulty: = Unknown * milestone: = 6.8.2 Comment: Thanks for the testcase! What is the correct output, and what output do you get but not expect? With atlas321_WinNT_PII.zip from http://www.netlib.org/atlas/archives/windows/ I get: {{{ $ ghc --make Test2.hs ctest2.c -lcblas -latlas -threaded -O -fffi -Latlas/WinNT_PII/ Linking Test2.exe ... $ ./Test2 rounded base = 0 C[0] = 2 C[1] = 2 C[2] = 2 C[3] = 2 }}} which I assume is correct, and with your atlas.dll I get: {{{ $ dlltool.exe -D atlas.dll -l atlas.lib $ ghc -threaded -O -fffi --make Test2.hs ctest2.c -o Test2.exe -optl- latlas -optl-L. [1 of 1] Compiling Main ( Test2.hs, Test2.o ) Linking Test2.exe ... $ ./Test2 $ }}} which looks broken, but in a different way than you were expecting? -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
[GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs ---+ Reporter: SevenThunders | Owner: Type: bug| Status: new Priority: normal | Milestone: Component: Compiler |Version: 6.8.1 Severity: critical | Keywords: Testcase: | Architecture: x86 Os: Windows| ---+ After calling the round function, a call to an external C function causes NaNs to appear in the calculation. The external C function in this case is the BLAS function cblas_dgemm() from the atlas library. The cblas library was compiled on a 32 bit windows XP machine. The same bug occurs on my 64 bit dual core athlon under windows. I suspect the Atlas version number was 3.7.33. I have enclosed the source files but can not include the binary atlas library due to size constraints. I will provide a link to an uploaded version of the binary library shortly. I also enclosed the .bat script I used to compile the simple case. Please note this example works just fine for ghc 6.6.1 which I also verified. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #1944: round function causes cblas NaNs
#1944: round function causes cblas NaNs --+- Reporter: SevenThunders |Owner: Type: bug| Status: new Priority: normal |Milestone: Component: Compiler | Version: 6.8.1 Severity: critical | Resolution: Keywords: | Testcase: Architecture: x86| Os: Windows --+- Comment (by SevenThunders): OK here is where you can get the binary atlas.dll that I used. It is a windows xp 32 bit binary. It should work on most 32 bit x86 systems. http://home.earthlink.net/~mattcbro/Test2/ -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/1944#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs