-
Notifications
You must be signed in to change notification settings - Fork 22
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
New Apple Accelerate #74
base: master
Are you sure you want to change the base?
Conversation
Hi @mgates3, just wanted to ask about whether you are still working on this PR. |
Yes, but not a high priority for me right now. If you want to take it over, we can meet to discuss. If so, let's email. |
6252eca
to
18a0ff1
Compare
@TeachRaccooon I rebased this onto the latest master. As discussed, it needs the CMake config. Possibly everything else is done, but I haven't looked at it in a couple months. Thanks for taking a look at it. |
Hi @mgates3. Is there anything blocking merging this PR? |
18a0ff1
to
61259aa
Compare
@rileyjmurray I updated the Python config and CMake. It's a little tricky detecting whether we have the new or old Accelerate — I think it has a reliable test now. Can you test to see if it works? |
@mgates3 the CMake route worked perfectly. I checked that I could hook it into RandBLAS just fine. The configure.py route couldn't get anywhere when I was using my spack-managed compiler (LLVM 17, with OpenMP). It seemed to work when I used my system compiler (LLVM 15, no OpenMP), in the sense that Edit: here's the blas/defines.h file of the installation produced with configure.py. Looks good to me! // Copyright (c) 2017-2023, University of Tennessee. All rights reserved.
// SPDX-License-Identifier: BSD-3-Clause
// This program is free software: you can redistribute it and/or modify it under
// the terms of the BSD 3-Clause license. See the accompanying LICENSE file.
#ifndef BLAS_DEFINES_H
#define BLAS_DEFINES_H
// auto-generated by: configure.py prefix=/Users/rjmurr/Documents/tempblas/blaspp/../install blas=Accelerate blas_int=int64
//
// host:
//
// Definitions for:
// CXX = g++
//
// LIBS = -framework Accelerate
//
#define BLAS_HAVE_ACCELERATE
#define ACCELERATE_NEW_LAPACK
#define BLAS_FORTRAN_ADD_
#define BLAS_ILP64
#define BLAS_COMPLEX_RETURN_ARGUMENT
#define BLAS_HAVE_CBLAS
#define BLAS_HAVE_LAPACK
#endif // #ifndef BLAS_DEFINES_H |
Update on my side:
@mgates3 is there any chance there exists an obvious solution to my issue? |
|
maksim$ cmake -DCMAKE_BUILD_TYPE=Release -Dblas_int=int64 -DCMAKE_INSTALL_PREFIX=pwd/../../../install/blaspp-install -DCMAKE_BINARY_DIR=pwd -Dbuild_tests=OFF ../../randlibs/blaspp; -- Looking for CUDA (gpu_backend = auto) -- Looking for HIP/ROCm (gpu_backend = auto) -- Looking for oneMKL-SYCL (gpu_backend = auto) -- Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES) -- Looking for BLAS libraries and options (blas = auto) Intel MKL ilp64, sequential, gfortran Intel MKL ilp64, sequential, ifort IBM ESSL int64 (ilp64), sequential OpenBLAS Apple Accelerate (new) -- Checking BLAS library version -- Looking for LAPACK libraries and options (lapack = auto) -- Configuring done
|
Add support for Apple's new Accelerate library. Unfortunately it takes a rather different approach to updating than any other library, requiring that we use Apple's headers to get the decorated prototypes.