Date: Tue, 12 Dec 2023 19:04:17 GMT From: Thierry Thomas <thierry@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 22df0dbcfa87 - main - biology/gcta: chase the upgrade of OpenBLAS Message-ID: <202312121904.3BCJ4H8l070087@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by thierry: URL: https://cgit.FreeBSD.org/ports/commit/?id=22df0dbcfa877e85bf5c29d7ff6808f7116cafb7 commit 22df0dbcfa877e85bf5c29d7ff6808f7116cafb7 Author: Eijiro Shibusawa <phd_kimberlite@yahoo.co.jp> AuthorDate: 2023-12-12 18:53:43 +0000 Commit: Thierry Thomas <thierry@FreeBSD.org> CommitDate: 2023-12-12 19:03:50 +0000 biology/gcta: chase the upgrade of OpenBLAS GCTA should modify the LAPACK functios calls, this is a temporary fix. See <https://github.com/jianyangqt/gcta/issues/59>. PR: 273219 Approved by: jwb@ --- biology/gcta/Makefile | 1 + biology/gcta/files/patch-include_Matrix.hpp | 24 ++++++++++++++++++++++++ biology/gcta/files/patch-include_cpu.h | 7 ++++--- biology/gcta/files/patch-main_mkl.cpp | 24 ++++++++++++++++++++++++ biology/gcta/files/patch-src_StatLib.cpp | 19 +++++++++++++++++++ 5 files changed, 72 insertions(+), 3 deletions(-) diff --git a/biology/gcta/Makefile b/biology/gcta/Makefile index c9aef3210017..a1721656f2ae 100644 --- a/biology/gcta/Makefile +++ b/biology/gcta/Makefile @@ -1,6 +1,7 @@ PORTNAME= gcta DISTVERSIONPREFIX= v DISTVERSION= 1.94.1 +PORTREVISION= 1 CATEGORIES= biology MAINTAINER= jwb@FreeBSD.org diff --git a/biology/gcta/files/patch-include_Matrix.hpp b/biology/gcta/files/patch-include_Matrix.hpp new file mode 100644 index 000000000000..5039c75580bb --- /dev/null +++ b/biology/gcta/files/patch-include_Matrix.hpp @@ -0,0 +1,24 @@ +--- include/Matrix.hpp.orig 2022-08-03 06:01:52 UTC ++++ include/Matrix.hpp +@@ -32,7 +32,9 @@ bool _LLT(MatrixType &A, double &logdet){ + #if GCTA_CPU_x86 + dpotrf(&uplo, &cols, vi, &cols, &info); + #else +- dpotrf_(&uplo, &cols, vi, &cols, &info); ++ // OpenBLAS 0.3.25 requires a length argument. Is 1 the right value? ++ // Should all dgeqrf_() calls be patched? ++ dpotrf_(&uplo, &cols, vi, &cols, &info, 1); + #endif + //LOGGER << " LLT time: " << LOGGER.tp("LLT") << std::endl; + if(info == 0){ +@@ -41,7 +43,9 @@ bool _LLT(MatrixType &A, double &logdet){ + #if GCTA_CPU_x86 + dpotri(&uplo, &cols, vi, &cols, &info); + #else +- dpotri_(&uplo, &cols, vi, &cols, &info); ++ // OpenBLAS 0.3.25 requires a length argument. Is 1 the right value? ++ // Should all doptri_() calls be patched? ++ dpotri_(&uplo, &cols, vi, &cols, &info, 1); + #endif + //LOGGER << " LLT inverse time: " << LOGGER.tp("LLT_INV") << std::endl; + if(info == 0){ diff --git a/biology/gcta/files/patch-include_cpu.h b/biology/gcta/files/patch-include_cpu.h index 41c192d4c5f7..92a8e4dd1212 100644 --- a/biology/gcta/files/patch-include_cpu.h +++ b/biology/gcta/files/patch-include_cpu.h @@ -1,15 +1,16 @@ ---- include/cpu.h.orig 2023-10-13 13:09:13 UTC +--- include/cpu.h.orig 2022-08-03 06:01:52 UTC +++ include/cpu.h -@@ -13,7 +13,7 @@ +@@ -13,7 +13,8 @@ #define GCTA_ARCH_i386 0 #endif -#if GCTA_ARCH_x86_64 || GCTA_ARCH_i386 ++// GCTA_ARCH_x86 is used (mostly) to enable Intel's MKL library +#if !defined(__FreeBSD__) && (GCTA_ARCH_x86_64 || GCTA_ARCH_i386) #define GCTA_CPU_x86 1 #else #define GCTA_CPU_x86 0 -@@ -50,4 +50,4 @@ +@@ -50,4 +51,4 @@ #include <lapack.h> #endif diff --git a/biology/gcta/files/patch-main_mkl.cpp b/biology/gcta/files/patch-main_mkl.cpp new file mode 100644 index 000000000000..a74cbecfa6fd --- /dev/null +++ b/biology/gcta/files/patch-main_mkl.cpp @@ -0,0 +1,24 @@ +--- main/mkl.cpp.orig 2023-11-20 14:09:49 UTC ++++ main/mkl.cpp +@@ -365,7 +365,9 @@ bool gcta::comput_inverse_logdet_LDLT_mkl(eigenMatrix + #if GCTA_CPU_x86 + dpotrf(&uplo, &int_n, Vi_mkl, &int_n, &info); + #else +- dpotrf_(&uplo, &int_n, Vi_mkl, &int_n, &info); ++ // OpenBLAS 0.3.25 requires a length argument. Is 1 the right value? ++ // Should all dpotrf_() calls be patched? ++ dpotrf_(&uplo, &int_n, Vi_mkl, &int_n, &info, 1); + #endif + //LOGGER << "Finished decompose" << endl; + //spotrf( &uplo, &n, Vi_mkl, &n, &info ); +@@ -386,7 +388,9 @@ bool gcta::comput_inverse_logdet_LDLT_mkl(eigenMatrix + #if GCTA_CPU_x86 + dpotri(&uplo, &int_n, Vi_mkl, &int_n, &info); + #else +- dpotri_(&uplo, &int_n, Vi_mkl, &int_n, &info); ++ // OpenBLAS 0.3.25 requires a length argument. Is 1 the right value? ++ // Should all dpotri_() calls be patched? ++ dpotri_(&uplo, &int_n, Vi_mkl, &int_n, &info, 1); + #endif + //LOGGER << "Inverse finished" << endl; + //spotri( &uplo, &n, Vi_mkl, &n, &info ); diff --git a/biology/gcta/files/patch-src_StatLib.cpp b/biology/gcta/files/patch-src_StatLib.cpp new file mode 100644 index 000000000000..bde6badd351a --- /dev/null +++ b/biology/gcta/files/patch-src_StatLib.cpp @@ -0,0 +1,19 @@ +--- src/StatLib.cpp.orig 2022-08-03 06:01:52 UTC ++++ src/StatLib.cpp +@@ -1,3 +1,4 @@ ++ + /* + GCTA: a tool for Genome-wide Complex Trait Analysis + +@@ -117,8 +118,10 @@ namespace StatLib{ + dormqr(&side, &t, &n, &n, &n, X, &lda, tau, c, + &lda, work, &lwork, &info); + #else ++ // OpenBLAS 0.3.25 requires a length argument. Is 1 the right value? ++ // Should all dormqr_() calls be patched? + dormqr_(&side, &t, &n, &n, &n, X, &lda, tau, c, +- &lda, work, &lwork, &info); ++ &lda, work, &lwork, &info, 1, 1); + #endif + if(info != 0){ + return false;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202312121904.3BCJ4H8l070087>