Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test the option -DGALAHAD_64BIT_INTEGER #195

Merged
merged 3 commits into from
Nov 23, 2023
Merged

Conversation

amontoison
Copy link
Member

@amontoison amontoison commented Nov 23, 2023

@nimgould @jfowkes
I added an option galahad_int64 in the Meson build system to compile with the flag -DGALAHAD_64BIT_INTEGER.
Should I use a different name of does it make sense to you?

I also added a CI build that compiles BLAS and LAPACK with 64 bits integer such that we can test this option with continuous integration.

Note that we have many errors with this option (see here).

@nimgould nimgould merged commit a8f7661 into ralna:master Nov 23, 2023
6 of 7 checks passed
@nimgould
Copy link
Contributor

Yup, we have used GALAHAD_64BIT_INTEGER in kinds/kinds.F90 to assign the appreopriate fortran and C integer kinds.
I am not suprised that there are errors, in particular galahad calls many other (not lapack/blas) external packages, and I have no idea how these deal with 64bit integers. In addition, we use ssids, and I very much doubt that (at least) the GPU code there is compatible.

@amontoison amontoison deleted the ilp64 branch November 23, 2023 08:50
@amontoison
Copy link
Member Author

amontoison commented Nov 23, 2023

What can we do to have a relevant test with continuous integration?
I can compile MUMPS with 64 bits integer but after I don't know if it will be used by default by GALAHAD for the tests.

Another remark about the ILP64 interface of BLAS / LAPACK routines, we generally add a _64 suffix at the end of the names.
I compiled the reference BLAS and LAPACK without this suffix but we should think about it.

I propose to add a galahad_blas.h and a galahad_lapack.h with the following content:

/*
 * Integer specific API
 */
#ifndef BLAS_SUFFIX
#ifdef GALAHAD_64BIT_INTEGER
#define BLAS_SUFFIX(a) a##_64
#else
#define BLAS_SUFFIX(a) a
#endif
#endif

#define GEMV BLAS_SUFFIX(GEMV)
#define GEMM BLAS_SUFFIX(GEMM)
...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants