SciML / SundialsBuilder

Binary library builder for Sundials for the SciML scientific machine learning open source software organization
https://benchmarks.sciml.ai/
MIT License
4 stars 4 forks source link

OpenBLAS build and LAPACK binding #6

Open ChrisRackauckas opened 6 years ago

ChrisRackauckas commented 6 years ago

Sundials can add in the use of BLAS if available.

https://computation.llnl.gov/sites/default/files/public/cv_guide.pdf

All that needs to be set are the BLAS binary locations. I know that @staticfloat how do you chain builds to be able to do that?

staticfloat commented 6 years ago

BLAS is a special case; during build time, you can use the releases of OpenBLASBuilder. I suggest using this one. You'd use this as a dependency during the Sundials build. You could go through the wizard again, or you could just add it to the dependencies list that gets passed into build_tarballs(). During runtime, you won't need any kind of dependency, as OpenBLAS is guaranteed to be loaded by Julia.

staticfloat commented 6 years ago

Ah, looks like SundialsBuilder hasn't been updated in a while. We've got a new and improved API that will make your build_tarballs.jl a little easier to manage.

staticfloat commented 6 years ago

Okay I ended up chipping away at it while watching Firefly tonight, and before I knew what I had done it was 3am and https://github.com/JuliaDiffEq/SundialsBuilder/pull/7 appeared. Shiny.

tshort commented 6 years ago

It looks like SuiteSparseBuilder has a release now. Depending on that might give us KLU and OpenBLAS, so we could reduce code here.

https://github.com/JuliaLinearAlgebra/SuiteSparseBuilder/releases

ChrisRackauckas commented 6 years ago

It looks like that's all cleared up and Sundials was upgraded to 3.1.1, along with Travis working now. The last short term goal is to get it to find the OpenBLAS LAPACK, https://github.com/JuliaDiffEq/SundialsBuilder/pull/9

ChrisRackauckas commented 6 years ago

Alright, https://github.com/JuliaDiffEq/SundialsBuilder/pull/11 didn't work at all so I'll have to look into this in more detail later.

staticfloat commented 6 years ago

This seems to be more widespread than I originally thought:

https://github.com/LLNL/sundials/blob/490f6bb126b3ae13c775419978196f0a89be1ad7/include/sunlinsol/sunlinsol_lapackband.h#L61-L65

jd-lara commented 4 years ago

I am currently trying to update the BinaryBuilder for Sundials v5.0.0 and If I keep this configuration for Sundials I get that LAPACK isn't functional.

-- Looking for LAPACK libraries... OK
-- Checking if LAPACK works... FAILED
CMake Warning at config/SundialsCMakeMacros.cmake:83 (message):
  ------------------------------------------------------------------------

  WARNING: LAPACK not functional

  Blas/Lapack support will not be provided

  ------------------------------------------------------------------------
Call Stack (most recent call first):
  CMakeLists.txt:914 (print_warning)

Any ideas?

ChrisRackauckas commented 4 years ago

we currently don't build with LAPACK because of those issues 🤷‍♂ . Not sure anyone knows of a solution.

jd-lara commented 4 years ago

I see. since I saw it enabled in the repo though it was working. Thanks for the answer.