Page 3 of 8

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Nov 06, 2009 10:36 am
by graphicsRat
flexo1234 wrote:Is there any way to compile the gotoBLAS without cygwin so the cygwin1.dll isn't needed to use it? Because I'm having troubles to call the gotoBLAS library in a MEX file in Matlab, it crashes Matlab when I run it. I think it's because of the cygwin1.dll because calling the standard BLAS library does work.


I thought you already had GotoBLAS working ...

Its been moths since I last compiled it, and when I last did, step 4 of the HOWTO helped to produce a library that' did not dependent on cygwin dlls -- this may have changed since writing the HOWTO, I guess need to compile the latest version of the library to be sure.

In the interim, I suggest you try step 4 and see what happens (I'd like to know). You may also run dependency walker on your gotoblas dll. Dependency walker will show what dlls your gotoblas dlls depends on. Mine depends only on: KERNEL32.DLL, MSVCRT.DLL, and NTDLL.DLL only (no cywing dll :)

Suggestion: if you've done the above and and impatient/can't wait for my update, try compiling gotoblas in (MINGW) MSYS

MSYS: a "fork" of Cygwin which has absolutely no dependency on Cygwin .dll

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Nov 06, 2009 11:31 am
by flexo1234
I think the problem is something else. To let the gotoBLAS work in visual C++ I needed to put project properties->linker->optimization->References to "keep unreferenced data" because else it gave some memory errors for some reason. But now with compiling with the MEX command in Matlab I don't know how to put the references right, do u have any idea maybe?

Also I don't have to do step 4, the .lib and .dll are already in the exports folder after step 3. I did delete them once and then did step 4 but it gave the same size of .lib and .dll so they are the same I think.

Dependency walker says it depends on cygwin1.dll and many more (too much to all write them here), it also gave some error:

Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.

In an other window it says "error opening file MSJAVA.DLL"

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Nov 06, 2009 12:09 pm
by graphicsRat
flexo1234 wrote:I think the problem is something else. To let the gotoBLAS work in visual C++ I needed to put project properties->linker->optimization->References to "keep unreferenced data" because else it gave some memory errors for some reason. But now with compiling with the MEX command in Matlab I don't know how to put the references right, do u have any idea maybe?


I don't know anything about MEX, but I may be able to help with the visual studio project settings (I ought to have included them in the HOWTO.)(Note to self: update HOWTO)

Give the following visual studio project settings a try (source):

Project options -> Configuration Properties -> C/C++ -> Code generation -> Use run-time library
->"Multithreaded-Debug (/MTd)".


Also, you may wish to start from an empty visual studio (C++) console application. When you get the console application to work, migrate the code to your MEX(?) project -- that's how I work. (BTW, I'm using LAPACK/GotoBLAS in an Autodesk Maya plugin.)

flexo1234 wrote:Also I don't have to do step 4, the .lib and .dll are already in the exports folder after step 3. I did delete them once and then did step 4 but it gave the same size of .lib and .dll so they are the same I think.

Dependency walker says it depends on cygwin1.dll and many more (too much to all write them here), it also gave some error:


It appears that the GotoBLAS build system has changed. But I'm surprised that the output dll still requires the cygwin dll. I need to try this for myself, and get back to you.

flexo1234 wrote:In an other window it says "error opening file MSJAVA.DLL"


That's weird. Is this a dependency walker error? ... You shouldn't require all those dlls.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Nov 06, 2009 12:46 pm
by flexo1234
The "Multithreaded-Debug (/MTd)" option doesn't make a difference for me, only the references I need to change to let it work.

Yes it's really weird it needs so many dlls. I'm gonna try compiling it with MSYS tomorrow then (I hope I will find out how it works :P) because the compiled gotoBLAS is also much slower than Matlab and it really should be faster normally.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Nov 06, 2009 5:25 pm
by graphicsRat
I'm having difficulty logging on to the gotoblas site and downloading the source. Does anyone else have this problem?

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Sat Nov 07, 2009 9:00 am
by flexo1234
Yes, same problem here.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Sat Nov 07, 2009 10:52 am
by graphicsRat
flexo1234 wrote:Yes, same problem here.


That's comforting to hear. Let's hope the problem gets sorted out soon.

In the interim, if you wish, I can send you the source of the previous version (on which the HOWTO was originally based). Just send me a private message with your email address.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Dec 11, 2009 1:11 am
by graphicsRat
Good news. I've finally figured out how to compile GotoBLAS2 for windows. There seems to be an an error in an auto-generated source file (dllinit.c) that's required in order to build the dll (I know how to fix this error). I've just written the developer of the library about this, and I hope to begin updating this HOWTO after I receive word from him about the error.

Note that there appear to be two versions of the library. Therefore, the current HOWTO applies to (the basic) GotoBLAS, and not GotoBLAS2. The next HOWTO will attempt to describe how to compile GotoBLAS2.

[ GotoBLAS 1.00 - 1.26 ] http://web.tacc.utexas.edu/resources/software/
[ GotoBLAS2 1.00 - 1.09 ] http://www.tacc.utexas.edu/resources/so ... are-login/

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Mon Dec 14, 2009 5:27 am
by Andrew
CPPLapack has a very user-friendly interface as same as ordinary C++ matrix libraries.CPPLapack uses BLAS and LAPACK functions in the background though programmers just need to write simple codes.The advantage of using CPPLapack are not only user-friendly interface and fast computational speed but also saving memory space.In case of large-size matrix calculation, the number of copy times of objects affects required memory space and computational time materially.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Mon Dec 14, 2009 5:32 am
by Andrew
CPPLapack has a very user-friendly interface as same as ordinary C++ matrix libraries.CPPLapack uses BLAS and LAPACK functions in the background though programmers just need to write simple codes.The advantage of using CPPLapack are not only user-friendly interface and fast computational speed but also saving memory space.In case of large-size matrix calculation, the number of copy times of objects affects required memory space and computational time materially.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Thu Dec 17, 2009 3:29 am
by Vadfloyd
graphicsRat wrote:I'm having difficulty logging on to the gotoblas site and downloading the source. Does anyone else have this problem?


Me too! How can I solve the problem?

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Dec 18, 2009 1:02 am
by graphicsRat
graphicsRat wrote:Note that there appear to be two versions of the library. Therefore, the current HOWTO applies to (the basic) GotoBLAS, and not GotoBLAS2. The next HOWTO will attempt to describe how to compile GotoBLAS2.

[ GotoBLAS 1.00 - 1.26 ] http://web.tacc.utexas.edu/resources/software/
[ GotoBLAS2 1.00 - 1.09 ] http://www.tacc.utexas.edu/resources/so ... are-login/


Update: according to the author of the library, GotoBLAS has now been superseded by GotoBLAS2, as such the older version of the library will no longer be available for download.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Fri Dec 18, 2009 1:06 am
by graphicsRat
Vadfloyd wrote:
graphicsRat wrote:I'm having difficulty logging on to the gotoblas site and downloading the source. Does anyone else have this problem?


Me too! How can I solve the problem?


Perhaps you're trying to download GotoBLAS2 with your GotoBLAS site password (thats the problem I had). Oddly both pages have different passwords. Try (re)registering at the GotoBLAS2 page. Anyway, the GotoBLAS page has now been redirected to GotoBLAS2.

Edit: GotoBLAS2 can be compiled for Windows using MINGW. Note that the resulting library has lots of dependencies.

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Tue Jan 19, 2010 7:06 pm
by graphicsRat
graphicsRat wrote:Edit: GotoBLAS2 can be compiled for Windows using MINGW. Note that the resulting library has lots of dependencies.


I'm pleased to announce that the latest development patch of GotoBLAS (to be soon made available I hope) now compiles on MINGW/MSYS, and no longer has MINGW dependencies (i.e. the library no longer refers to MINGW's oddly named version of printf). Also, the library no longer has the "billion" other (dll) dependencies earlier versions had.

This means GotoBLAS2 can now be used in Visual Studio (C++) projects. BTW, one of the nicer features of GotoBLAS2 is that it readily allows the library to be compiled for other target machines i.e. you don't have to be on a machine in order to produce an optimized BLAS for it.

I'll rewrite the HOWTO, which will now be considerably shorter as soon as the new version of GotoBLAS is made available.

Many thanks to Kazushige Goto for putting up with my many, many "complaints" :)

Re: HOWTO LAPACK/CLAPACK for Windows

PostPosted: Thu Feb 11, 2010 5:08 pm
by vitaly333
In lastest versions of gotoBlas missing file getarch.c:
make : *** No rule to make target 'getarch.c' , needed by 'getarch'. Stop.