-
Notifications
You must be signed in to change notification settings - Fork 100
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
Support Lapack natively #368
Comments
See #330 for a related discussion. |
I'd be interested to come-up with some ideas for better LAPACK and BLAS support in fpm. Here are a few issues I'm currently running into:
Some thoughts on native support:
Here's an attempt at a list of available BLAS and LAPACK libraries if someone would like to study their differences. Common BLAS libraries:
Using BLAS in C/C++ programs:
For BLAS operations on accelerators (probably out of scope of fpm)
Further specialized BLAS libraries are listed on Wikipedia. Other BLAS variations (also out of scope?):
Luckily, LAPACK variants are fewer:
Further vendor implementations of LAPACK are listed on Netlib. @14NGiestas has been working on a modern Fortran interface for BLAS and LAPACK. The debian page on LAPACK describes a few more caveats, one of them being the integer kind. Libflame is a newer library for dense linear algebra, and also includes a compatibility layer lapack2flame that targets application relying upon the Fortran LAPACK API. Vendor versions such as AMD libFLAME are also appearing. Two more libraries for dense linear algebra that also target multicore processors and accelerators are PLASMA (Fortran interface available) and MAGMA. |
This is in some sense similar to #354.
fpm
should have a first class support for Lapack and its fast implementations. Many times you have to enable MKL in Intel with special options based on the Intel compiler version, and so on.I don't know exactly what we need to do technically, whether we can design a general mechanism in our package management, or simply hardwire Lapack like we will hardwire MPI.
The text was updated successfully, but these errors were encountered: