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

Intel MKL, openblas, blas, lapacke, ... 64bit interface

Tags: None
(comma "," separated)
filer
Registered Member
Posts
1
Karma
0
Hi I am trying to modify Eigen 3.2.5 source code to enable seamless integration with external libraries.
I have managed to modify the source code, wrappers and includes, so that everything works for openblas and intel mkl.
I partially succeeded with modifying the code so that ILP64 interface works.

I think that cblas interface should be used instead off fortran blas interface to avoid incompatibilities due to
name mangling, const .... Cblas interface is standardized, fortran blas interface is not.

I think that the only problem is the PermutationMatrix class.
I modified ForwardDeclarations.h ...
Code: Select all
#ifdef INDEX_64
   typedef DenseIndex PermIndex;
#else
   typedef int     PermIndex;
#endif

template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=PermIndex> class PermutationMatrix;
template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=PermIndex> class Transpositions;

I would like to also modify Index so that is the same as PermIndex but i have troubles with understanding the inheritance and traits.
For example i cannot use 64 bit for newSize, Index is int.
Code: Select all
    /** Resizes to given size.
      */
    inline void resize(Index newSize) ...

Which base class, type declaration, should i modify to enable clean 64 bit indexing (internal storage of permutations are 64 bit integers and 64bit integers are used for indexing) and arbitrary large permutations with the current interface?
I can easily hack this with explicitly defining Index as long long but this is ugly and causes compiler warnings.
There should be an easier way

Thank you for your assistance.


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Google [Bot], Yahoo [Bot]