Skip to content

Commit

Permalink
Fix linking issues on iOS with OpenBLAS and Accelerate
Browse files Browse the repository at this point in the history
  • Loading branch information
saudet committed Feb 7, 2018
1 parent 1e17626 commit aec0265
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 16 deletions.
10 changes: 6 additions & 4 deletions openblas/cppbuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ case $PLATFORM in
export TARGET=ATOM
;;
ios-arm)
export CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch armv7"
export CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch armv7 -miphoneos-version-min=5.0"
export FC=
export NO_LAPACK=1
export NOFORTRAN=1
Expand All @@ -69,7 +69,9 @@ case $PLATFORM in
ios-arm64)
# https://gmplib.org/list-archives/gmp-bugs/2014-September/003538.html
sed -i="" 's/add.sp, sp, #-(11 \* 16)/sub sp, sp, #(11 \* 16)/g' kernel/arm64/sgemm_kernel_4x4.S
export CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch arm64"
# but still results in a linking error, so disable the assembler entirely
sed -i="" 's/sgemm_kernel_4x4.S/..\/generic\/gemmkernel_2x2.c/g' kernel/arm64/KERNEL.ARMV8
export CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch arm64 -miphoneos-version-min=5.0"
export FC=
export NO_LAPACK=1
export NOFORTRAN=1
Expand All @@ -78,7 +80,7 @@ case $PLATFORM in
export NO_SHARED=1
;;
ios-x86)
export CC="$(xcrun --sdk iphonesimulator --find clang) -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -arch i686"
export CC="$(xcrun --sdk iphonesimulator --find clang) -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -arch i686 -mios-simulator-version-min=5.0"
export FC=
export NO_LAPACK=1
export NOFORTRAN=1
Expand All @@ -87,7 +89,7 @@ case $PLATFORM in
export NO_SHARED=1
;;
ios-x86_64)
export CC="$(xcrun --sdk iphonesimulator --find clang) -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -arch x86_64"
export CC="$(xcrun --sdk iphonesimulator --find clang) -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path) -arch x86_64 -mios-simulator-version-min=5.0"
export FC=
export NO_LAPACK=1
export NOFORTRAN=1
Expand Down
16 changes: 4 additions & 12 deletions openblas/src/main/java/org/bytedeco/javacpp/openblas.java
Original file line number Diff line number Diff line change
Expand Up @@ -865,21 +865,13 @@ public static native void cblas_zher2k(@Cast("const CBLAS_ORDER") int Order, @Ca

/*** BLAS extensions ***/

public static native void cblas_saxpby(@Cast("const blasint") int n, float alpha, @Const FloatPointer x, @Cast("const blasint") int incx,float beta, FloatPointer y, @Cast("const blasint") int incy);
public static native void cblas_saxpby(@Cast("const blasint") int n, float alpha, @Const FloatBuffer x, @Cast("const blasint") int incx,float beta, FloatBuffer y, @Cast("const blasint") int incy);
public static native void cblas_saxpby(@Cast("const blasint") int n, float alpha, @Const float[] x, @Cast("const blasint") int incx,float beta, float[] y, @Cast("const blasint") int incy);

public static native void cblas_daxpby(@Cast("const blasint") int n, double alpha, @Const DoublePointer x, @Cast("const blasint") int incx,double beta, DoublePointer y, @Cast("const blasint") int incy);
public static native void cblas_daxpby(@Cast("const blasint") int n, double alpha, @Const DoubleBuffer x, @Cast("const blasint") int incx,double beta, DoubleBuffer y, @Cast("const blasint") int incy);
public static native void cblas_daxpby(@Cast("const blasint") int n, double alpha, @Const double[] x, @Cast("const blasint") int incx,double beta, double[] y, @Cast("const blasint") int incy);

public static native void cblas_caxpby(@Cast("const blasint") int n, @Const FloatPointer alpha, @Const FloatPointer x, @Cast("const blasint") int incx,@Const FloatPointer beta, FloatPointer y, @Cast("const blasint") int incy);
public static native void cblas_caxpby(@Cast("const blasint") int n, @Const FloatBuffer alpha, @Const FloatBuffer x, @Cast("const blasint") int incx,@Const FloatBuffer beta, FloatBuffer y, @Cast("const blasint") int incy);
public static native void cblas_caxpby(@Cast("const blasint") int n, @Const float[] alpha, @Const float[] x, @Cast("const blasint") int incx,@Const float[] beta, float[] y, @Cast("const blasint") int incy);

public static native void cblas_zaxpby(@Cast("const blasint") int n, @Const DoublePointer alpha, @Const DoublePointer x, @Cast("const blasint") int incx,@Const DoublePointer beta, DoublePointer y, @Cast("const blasint") int incy);
public static native void cblas_zaxpby(@Cast("const blasint") int n, @Const DoubleBuffer alpha, @Const DoubleBuffer x, @Cast("const blasint") int incx,@Const DoubleBuffer beta, DoubleBuffer y, @Cast("const blasint") int incy);
public static native void cblas_zaxpby(@Cast("const blasint") int n, @Const double[] alpha, @Const double[] x, @Cast("const blasint") int incx,@Const double[] beta, double[] y, @Cast("const blasint") int incy);







Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ public class openblas implements LoadEnabled, InfoMapper {
.put(new Info("openblas_complex_double", "lapack_complex_double").cast().pointerTypes("DoublePointer", "DoubleBuffer", "double[]"));

String[] functions = {
// not available in Accelerate
"cblas_caxpby", "cblas_daxpby", "cblas_saxpby", "cblas_zaxpby",
// not exported by OpenBLAS
"cblas_cgemm3m", "cblas_zgemm3m", "cblas_xerbla",
// not implemented by MKL
Expand Down

0 comments on commit aec0265

Please sign in to comment.