This forum has been archived. All content is frozen. Please use KDE Discuss instead.

compiling Eigen\blas with CMake and Visual Studio 10

Tags: None
(comma "," separated)
medic123
Registered Member
Posts
25
Karma
0
OS
Hi!

I want to use EigensBlas implementation with SuperLU.
So in CMake I configure and generate with Visual Studio as generator. During configuration I get the massage:
"No fortran compiler has been detected, the blas build will be incomplete."
I tried to specify the fortran compiler in CMake giving Path to C:/MinGW/bin/ andalso added this folder to the environment-variables. Got the same error message. Nevertheless the generation as Visual-Studio-Solution works and I get a eigen_blas_static.lib around 16.6 kb by compiling with VS. Is this a fully working fastBlas-library for my purpose, or do I have to get fortran compiler working and how do I do this?

Greetings, medic
medic123
Registered Member
Posts
25
Karma
0
OS
Okay got it. It turns out, that CMake has very limited support for exsisting Fortran Compilers. I downloaded a Testversion of IFort and the error disappeared. Now Eigen Blas compiled in two libraries. A eigen_blas.dll(19kb) and a eigen_blas_static(16mb). Are they both needed. Or does the dll only include the static library? How is it intended to use these two?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
you need to use only one, the dll is for dynamic linking (and sharing), the other for static linking only.
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
btw, even without a fortran compiler the produced BLAS is complete enough for most use cases.
User avatar
jdh8
Registered Member
Posts
12
Karma
0
OS
I have g++ and gfortran. Is it better to translate Fortran code into C++ or to leave it alone?
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Which fortran code?
User avatar
jdh8
Registered Member
Posts
12
Karma
0
OS
ggael wrote:Which fortran code?

Like srotm.f, srotmg.f, drotm.f, drotmg.f. They seems to have no counterparts in Eigen. And sorry, I don't understand some points in the BLAS:
  • Both xDOTC and xDOTU are to perform op(x)*y i.e. y.dot(x). However, in the code is x.dot(y) and passes the test.
  • Why return int for subroutines and what do the return values mean? Some of them return 1(0) for success(failure), but the others always return 0.
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
ah! I think there is no real need to translate them to c++ as long as there us no need of them for Eigen. However, regarding the band and packed formats, we clear do want to have optimized version in Eigen, but that requires more work.


Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Google [Bot], Yahoo [Bot]