[med-svn] [Git][med-team/libhmsbeagle][master] 7 commits: Installing all the .so files in the -dev package
Pierre Gruet (@pgt)
gitlab at salsa.debian.org
Mon Dec 16 09:16:32 GMT 2024
Pierre Gruet pushed to branch master at Debian Med / libhmsbeagle
Commits:
03e469dd by Pierre Gruet at 2024-10-08T11:12:36+02:00
Installing all the .so files in the -dev package
- - - - -
c135b442 by Pierre Gruet at 2024-10-08T11:17:43+02:00
New upstream version 4.0.1+dfsg
- - - - -
c2248e33 by Pierre Gruet at 2024-10-08T11:17:54+02:00
Update upstream source from tag 'upstream/4.0.1+dfsg'
Update to upstream version '4.0.1+dfsg'
with Debian dir f4bd604ad0de54e782f3141188f0a91d423e4a3e
- - - - -
58c6688b by Pierre Gruet at 2024-10-08T11:18:49+02:00
Raising Standards version to 4.7.0 (no change)
- - - - -
218ff457 by Pierre Gruet at 2024-12-15T22:05:14+01:00
Making it explicit that we won't ship -opencl shared lib, as has been the case up to now
- - - - -
ef3dddb7 by Pierre Gruet at 2024-12-15T22:11:19+01:00
Documentation files are not built anymore
- - - - -
c616be33 by Pierre Gruet at 2024-12-15T22:12:03+01:00
Upload to unstable
- - - - -
18 changed files:
- + .github/workflows/ci.yaml
- CMakeLists.txt
- README.md
- debian/changelog
- debian/control
- − debian/libhmsbeagle-dev.doc-base
- − debian/libhmsbeagle-dev.docs
- debian/libhmsbeagle-dev.install
- debian/rules
- examples/CMakeLists.txt
- libhmsbeagle/CMakeLists.txt
- libhmsbeagle/CPU/BeagleCPUPlugin.cpp
- libhmsbeagle/CPU/BeagleCPUSSEPlugin.cpp
- libhmsbeagle/CPU/CMakeLists.txt
- libhmsbeagle/CPU/SSEDefinitions.h
- libhmsbeagle/CPU/sse2neon.h
- libhmsbeagle/GPU/KernelLauncher.cpp
- hmsbeagle-1.pc → libhmsbeagle/hmsbeagle-1.pc.in
Changes:
=====================================
.github/workflows/ci.yaml
=====================================
@@ -0,0 +1,59 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build:
+ name: Build on Linux x86_64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout at v4
+
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y cmake file
+
+ - name: Build
+ run: |
+ mkdir build
+ cd build
+ cmake ..
+ make -j
+ file libhmsbeagle/libhmsbeagle.so.* | grep x86-64
+
+ build-aarch64:
+ name: Build on Linux aarch64
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout at v4
+
+ - name: Build
+ uses: uraimo/run-on-arch-action at v2
+ with:
+ arch: aarch64
+ distro: ubuntu20.04
+ githubToken: ${{ github.token }}
+ dockerRunArgs: |
+ --volume "${PWD}:/beagle-lib"
+ install: |
+ apt-get update -q -y
+ apt-get install -q -y cmake gcc g++ openjdk-11-jdk file
+ run: |
+ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
+ cd /beagle-lib
+ mkdir build
+ cd build
+ cmake ..
+ make -j
+ file libhmsbeagle/libhmsbeagle.so.* | grep aarch64
=====================================
CMakeLists.txt
=====================================
@@ -4,16 +4,22 @@ project(BEAGLE)
set(BEAGLE_PACKAGE_NAME "libhmsbeagle")
set(BEAGLE_VERSION_MAJOR "4")
set(BEAGLE_VERSION_MINOR "0")
-set(BEAGLE_VERSION_PATCH "0")
+set(BEAGLE_VERSION_PATCH "1")
+
+set(GENERIC_API_VERSION "1")
set(BEAGLE_VERSION "${BEAGLE_VERSION_MAJOR}.${BEAGLE_VERSION_MINOR}.${BEAGLE_VERSION_PATCH}")
set(BEAGLE_PLUGIN_VERSION "${BEAGLE_VERSION_MAJOR}${BEAGLE_VERSION_MINOR}")
+message(STATUS "BEAGLE_VERSION = ${BEAGLE_VERSION}")
+message(STATUS "BEAGLE_PLUGIN_VERSION = ${BEAGLE_PLUGIN_VERSION}")
+
set(BEAGLE_OPTIMIZE_FOR_NATIVE_ARCH true)
option(BUILD_OPENCL "Build beagle with OpenCL library" ON)
option(BUILD_CUDA "Build beagle with CUDA library" ON)
option(BUILD_JNI "Build beagle with JNI library" ON)
+option(BUILD_SSE "Build beagle with SSE library" ON)
# Old config.h settings
=====================================
README.md
=====================================
@@ -27,8 +27,8 @@ The paper describing the algorithms used for calculating likelihoods of sequence
### Current binary installers
-* [BEAGLE v4.0.0 for macOS universal](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE.v4.0.0.pkg)
-* [BEAGLE v4.0.0 for Windows 64-bit](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE.v4.0.0.msi)
+* [BEAGLE v4.0.0 for macOS universal](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE-4.0.0-Darwin-x86-ARM.pkg)
+* [BEAGLE v4.0.0 for Windows 64-bit](https://github.com/beagle-dev/beagle-lib/releases/download/v4.0.0/BEAGLE-4.0.0-win64.msi)
### Previous binary installers
=====================================
debian/changelog
=====================================
@@ -1,13 +1,21 @@
-libhmsbeagle (4.0.0+dfsg-1) UNRELEASED; urgency=medium
+libhmsbeagle (4.0.1+dfsg-1) unstable; urgency=medium
- * New upstream version
- * Standards-Version: 4.6.1 (routine-update)
+ * Team upload
+ * Building the jar file
+ * Installing all the .so files in the -dev package
+ * New upstream version 4.0.1+dfsg
+ * Raising Standards version to 4.7.0 (no change)
+ * Making it explicit that we won't ship -opencl shared lib, as has been the
+ case up to now
+ * Documentation files are not built anymore, removing them from doc-base
+
+ [ Andreas Tille ]
+ * New upstream version 4.0.0+dfsg
+ * Refresh patches
* Upstream switched build system to cmake
* d/watch: Create proper upstream filename
- TODO: finally decide whether we need all those changes
- (no static libs build and more, not sure whetheropencl library works)
- -- Andreas Tille <tille at debian.org> Sun, 24 Jul 2022 07:50:14 +0200
+ -- Pierre Gruet <pgt at debian.org> Sun, 15 Dec 2024 22:11:23 +0100
libhmsbeagle (3.1.2+dfsg-13) unstable; urgency=medium
=====================================
debian/control
=====================================
@@ -16,7 +16,7 @@ Build-Depends: debhelper-compat (= 13),
ocl-icd-opencl-dev | opencl-dev,
pocl-opencl-icd [amd64] | opencl-icd [amd64],
clinfo
-Standards-Version: 4.6.1
+Standards-Version: 4.7.0
Vcs-Browser: https://salsa.debian.org/med-team/libhmsbeagle
Vcs-Git: https://salsa.debian.org/med-team/libhmsbeagle.git
Homepage: https://github.com/beagle-dev/beagle-lib
=====================================
debian/libhmsbeagle-dev.doc-base deleted
=====================================
@@ -1,13 +0,0 @@
-Document: libhmsbeagle
-Title: Application Programming Interface and High-Performance Computing Library for Statistical Phylogenetics
-Author: The BEAGLE Developer group
-Abstract: High-performance lib for Bayesian and Maximum Likelihood phylogenetics
- BEAGLE is a high-performance library that can perform the core calculations at
- the heart of most Bayesian and Maximum Likelihood phylogenetics packages. It
- can make use of highly-parallel processors such as those in graphics cards
- (GPUs) found in many PCs.
-Section: Science/Biology
-
-Format: html
-Index: /usr/share/doc/libhmsbeagle-dev/html/index.html
-Files: /usr/share/doc/libhmsbeagle-dev/html/*
=====================================
debian/libhmsbeagle-dev.docs deleted
=====================================
@@ -1 +0,0 @@
-#doc/html
=====================================
debian/libhmsbeagle-dev.install
=====================================
@@ -1,10 +1,11 @@
#!/usr/bin/dh-exec
usr/include/*
-#usr/lib/*/pkgconfig/*
usr/lib/lib*-cpu*.so usr/lib/${DEB_HOST_MULTIARCH}
#usr/lib/*/lib*-cpu*.a
#usr/lib/*/libhmsbeagle.a
-usr/lib/libhmsbeagle.so usr/lib/${DEB_HOST_MULTIARCH}
#usr/lib/libhmsbeagle-opencl.so usr/lib/${DEB_HOST_MULTIARCH}
+usr/lib/libhmsbeagle.so usr/lib/${DEB_HOST_MULTIARCH}
#usr/lib/*/lib*jni.a
#usr/lib/*/lib*opencl.a
+usr/lib/cmake/hmsbeagle-1/* usr/lib/${DEB_HOST_MULTIARCH}/cmake/hmsbeagle
+usr/lib/pkg-config/hmsbeagle*.pc usr/lib/${DEB_HOST_MULTIARCH}
=====================================
debian/rules
=====================================
@@ -19,7 +19,8 @@ BUILDARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
override_dh_auto_configure:
dh_auto_configure -- \
- -DBUILD_CUDA=OFF
+ -DBUILD_CUDA=OFF \
+ -DBUILD_OPENCL=OFF
override_dh_auto_build:
dh_auto_build
=====================================
examples/CMakeLists.txt
=====================================
@@ -30,16 +30,24 @@ add_executable(synthetictest
target_link_libraries(hmctest
hmsbeagle
- hmsbeagle-cpu-sse
+# hmsbeagle-cpu-sse
hmsbeagle-cpu
${CMAKE_DL_LIBS})
target_link_libraries(synthetictest
hmsbeagle
- hmsbeagle-cpu-sse
+# hmsbeagle-cpu-sse
hmsbeagle-cpu
${CMAKE_DL_LIBS})
+if(BUILD_SSE)
+ target_link_libraries(hmctest
+ hmsbeagle-cpu-sse)
+
+ target_link_libraries(synthetictest
+ hmsbeagle-cpu-sse)
+endif(BUILD_SSE)
+
add_test(hmctest hmctest)
#target_link_libraries(hmctest5 hmsbeagle ${CMAKE_DL_LIBS})
=====================================
libhmsbeagle/CMakeLists.txt
=====================================
@@ -74,7 +74,9 @@ add_library(hmsbeagle SHARED
${BEAGLE_PLUGIN_SOURCE}
)
-set_target_properties(hmsbeagle PROPERTIES PUBLIC_HEADER "beagle.h;platform.h")
+set_target_properties(hmsbeagle PROPERTIES
+ PUBLIC_HEADER "beagle.h;platform.h"
+ VERSION ${GENERIC_API_VERSION})
if(NOT WIN32 AND NOT APPLE)
target_link_libraries(hmsbeagle ${CMAKE_DL_LIBS})
@@ -86,12 +88,43 @@ if(BUILD_JNI)
add_subdirectory(JNI)
endif(BUILD_JNI)
+set(PKG "hmsbeagle-${GENERIC_API_VERSION}")
+
install(TARGETS hmsbeagle
+ EXPORT ${PKG}
LIBRARY DESTINATION ${BEAGLE_INSTALL_DIR}
PUBLIC_HEADER DESTINATION ${BEAGLE_HEADER_DIR}
COMPONENT main
+ )
+
+include(CMakePackageConfigHelpers)
+
+write_basic_package_version_file(
+ ${PKG}ConfigVersion.cmake
+ VERSION ${BEAGLE_VERSION}
+ COMPATIBILITY AnyNewerVersion
)
+install(EXPORT ${PKG}
+ FILE ${PKG}Config.cmake
+ NAMESPACE ${PKG}-${BEAGLE_VERSION}::
+ DESTINATION lib/cmake/${PKG}
+ )
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/hmsbeagle-1ConfigVersion.cmake"
+ DESTINATION lib/cmake/${PKG}
+ )
+
+configure_file(
+ ${PKG}.pc.in
+ ${PKG}.pc
+ @ONLY
+)
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PKG}.pc"
+ DESTINATION lib/pkg-config
+)
+
if(WIN32)
SET_TARGET_PROPERTIES(hmsbeagle
PROPERTIES
=====================================
libhmsbeagle/CPU/BeagleCPUPlugin.cpp
=====================================
@@ -17,7 +17,7 @@ BeagleCPUPlugin::BeagleCPUPlugin() :
Plugin("CPU", "CPU")
{
BeagleResource resource;
-#ifdef __ARM64_ARCH_8__
+#ifdef __aarch64__
resource.name = (char*) "CPU (arm64)";
#else
resource.name = (char*) "CPU (x86_64)";
=====================================
libhmsbeagle/CPU/BeagleCPUSSEPlugin.cpp
=====================================
@@ -24,7 +24,7 @@ BeagleCPUSSEPlugin::BeagleCPUSSEPlugin() :
Plugin("CPU-SSE", "CPU-SSE")
{
BeagleResource resource;
-#ifdef __ARM64_ARCH_8__
+#ifdef __aarch64__
resource.name = (char*) "CPU (arm64)";
#else
resource.name = (char*) "CPU (x86_64)";
@@ -116,6 +116,8 @@ bool check_sse2()
if (edx & bit_SSE2)
return true;
return false;
+#elif defined(__aarch64__)
+ return false;
#else // HAVE_CPUID.H
// Determine if cpuid supported:
unsigned int res;
@@ -158,8 +160,8 @@ bool check_sse2()
return result[3] & 0x04000000;
#endif // HAVE_CPUID.H
}
-#else // For Mac OS X GNU C
-#if defined(__ARM64_ARCH_8__)
+#else
+#if defined(__aarch64__)
bool check_sse2() { return 1; }
#else
bool check_sse2(){
=====================================
libhmsbeagle/CPU/CMakeLists.txt
=====================================
@@ -25,6 +25,7 @@ SET_TARGET_PROPERTIES(hmsbeagle-cpu
SUFFIX "${BEAGLE_PLUGIN_SUFFIX}"
)
+if(BUILD_SSE)
add_library(hmsbeagle-cpu-sse SHARED
BeagleCPU4StateSSEImpl.h
BeagleCPU4StateSSEImpl.hpp
@@ -55,3 +56,4 @@ SET_TARGET_PROPERTIES(hmsbeagle-cpu-sse
SOVERSION "${BEAGLE_PLUGIN_VERSION_EXTENDED}"
SUFFIX "${BEAGLE_PLUGIN_SUFFIX}"
)
+endif(BUILD_SSE)
=====================================
libhmsbeagle/CPU/SSEDefinitions.h
=====================================
@@ -23,40 +23,12 @@
#define DLS_USE_SSE2
#if defined(DLS_USE_SSE2)
-# if defined(__ARM64_ARCH_8__)
+# if defined(__aarch64__)
# include "libhmsbeagle/CPU/sse2neon.h"
# define _MM_SHUFFLE2(fp1,fp0) (((fp1) << 1) | (fp0))
# define VEC_SHUFFLE0(a,b) _mm_shuffle_pd(a, b, _MM_SHUFFLE2(0,0)) // vreinterpretq_f64_m128d(a)
# define VEC_SHUFFLE1(a,b) _mm_shuffle_pd(a, b, _MM_SHUFFLE2(1,1)) // vreinterpretq_f64_m128d(a)
-# if __has_builtin(__builtin_shufflevector)
-# define _mm_shuffle_pd(a,b,imm) \
- __extension__({ \
- float64x2_t _input1 = vreinterpretq_f64_m128(a); \
- float64x2_t _input2 = vreinterpretq_f64_m128(b); \
- float64x2_t _shuf = __builtin_shufflevector( \
- _input1, _input2, (imm) & (0x1), ((imm) >> 1) & 0x1); \
- vreinterpretq_m128_f32(_shuf); \
- })
-# else
-# error "Need to implement NEON translation of _mm_shuffle_pd"
-# endif
-
- static inline __m128 _mm_div_pd(__m128 a, __m128 b) {
- return vreinterpretq_m128_f64(
- vdivq_f64(vreinterpretq_f64_m128(a), vreinterpretq_f64_m128(b)));
- }
-
- static inline void _mm_store_sd(double* a, __m128 b) {
- const auto _b = vreinterpretq_f64_m128(b);
- a[0] = _b[0];
- }
- static inline __m128 _mm_dp_pd(__m128 lhs, __m128 rhs, const int) {
- auto const product = vmulq_f64(vreinterpretq_f64_m128d(lhs),
- vreinterpretq_f64_m128d(rhs));
- auto const sum = product[0] + product[1]; // TODO Almost surely an more efficient way
- return vreinterpretq_m128d_f64(vdupq_n_f64(sum));
- }
# else
# if !defined(DLS_MACOS)
# include <emmintrin.h>
=====================================
libhmsbeagle/CPU/sse2neon.h
=====================================
The diff for this file was not included because it is too large.
=====================================
libhmsbeagle/GPU/KernelLauncher.cpp
=====================================
@@ -285,17 +285,12 @@ void KernelLauncher::LoadKernels() {
fMultipleNodeSiteSquaredReduction = gpu->GetFunction(
"kernelMultipleNodeSiteSquaredReduction");
-
- fprintf(stderr, "A\n");
-
fPartialsPartialsCrossProducts = gpu->GetFunction(
"kernelPartialsPartialsCrossProducts");
fPartialsStatesCrossProducts = gpu->GetFunction(
"kernelPartialsStatesCrossProducts");
- fprintf(stderr, "B\n");
-
if (kPaddedStateCount == 4) { // TODO Temporary hack until kernels are written
fPartialsPartialsByPatternBlockCheckScaling = gpu->GetFunction(
"kernelPartialsPartialsCheckScale");
=====================================
hmsbeagle-1.pc → libhmsbeagle/hmsbeagle-1.pc.in
=====================================
@@ -1,4 +1,4 @@
-prefix=/usr/local
+prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: hmsbeagle
Description: A library to calculate phylogenetic likelihoods.
Requires:
-Version: 4.0.0
-Libs: -L${libdir} -lhmsbeagle
-Cflags: -I${includedir}/libhmsbeagle-1
+Version: @BEAGLE_VERSION@
+Libs: -L"${libdir}" -lhmsbeagle
+Cflags: -I"${includedir}/libhmsbeagle-1"
View it on GitLab: https://salsa.debian.org/med-team/libhmsbeagle/-/compare/21243eb25f940276879d1b0809f9b67b41d1d386...c616be33e08c24754d57d4a5d7b1a837abe87c18
--
View it on GitLab: https://salsa.debian.org/med-team/libhmsbeagle/-/compare/21243eb25f940276879d1b0809f9b67b41d1d386...c616be33e08c24754d57d4a5d7b1a837abe87c18
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20241216/570e7797/attachment-0001.htm>
More information about the debian-med-commit
mailing list