This project has moved. For the latest updates, please go here.

GotoBLAS2 and other Native Wrappers

Dec 21, 2011 at 2:34 PM

Hi all,

First Bravo for the lib, it is a real joy to use it.

About GotoBLAS2, what is the lapack lib used by the wrapper GotoBLAS2? I have try the one on http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html but I get some LNK2001 error ...

 

About the other wrappers, I have a weird behavior: they are correctly working on my desktop but on my laptop I get a DllnotfoundException.

Which seem to be unrelated to Math.Net since I get the same result invoking the ACML or MKL directly in C. I have checked dependencies with depends.exe, but everything seems normal; and in any case not different from my desktop install.

If you have any idea ...

BTW, will you implement a version of LDL factorization à la Bunch-Kaufman for symmetric indefinite matrices (lapack DSYTRF)?

Regards

kelnoz

Dec 23, 2011 at 11:50 AM

Ok,

 

regarding access to ACML and MKL lib, for the moment I have solve the problem by giving the full PATH to Math.Numerics.MKL.dll and Math.Numerics.ACML.dll.

I have found that gotoblas2 compile lapack 3.1.1 and put  it in the static lib, but for an unknown reason, it doesnot keep it in the shared lib ...

 

Regards

 

kelnoz

Dec 30, 2011 at 3:10 PM

All problems solved.

 

1- ACML and MKL working by giving full PATH to them in Numerics.

 

2 - gotoBlas in x64:

a) dl Mingw64 from http://mingw-w64.sourceforge.net/

b) dl their MSYS from http://sourceforge.net/apps/trac/mingw-w64/wiki/MSYS

c) follow their instructions

d) dll OpenBlas: http://xianyi.github.com/OpenBLAS/

e) edit makefile.rule with following (if you do not, your lib will contain all lapack routinesbuilt in fortran and you will then depend on libgfortran-3.dll):

# If you don't need LAPACK, please comment it in.
 NO_LAPACK = 1

# If you need 32bit binary, define BINARY=32, otherwise define BINARY=64
 BINARY=64

***if you have a nehalem cpu and want a x64 lib edit following (if you do not sscal_ will bug)

# About threaded BLAS. It will be automatically detected if you don't
# specify it.
# For force setting for single threaded, specify USE_THREAD = 0
# For force setting for multi  threaded, specify USE_THREAD = 1
 USE_THREAD = 0

f) don't forget to do make PREFIX="install dir" install

g) build clapack using http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html & Cmake

remark: be sure the install directory (to choose in cmake) is something without space or install will bug.

3 -  open VS for "Native Wrapper" in gotoBlas2Wrapper

a) in configuration properties/Linker/General/ additional Library Directories add the path to your openblas, lapack and f2c lib

b) in configuration properties/Linker/General/ Input change libgotoblas2.lib to libopenblas.lib

c) build