[med-svn] [Git][med-team/libhmsbeagle][upstream] New upstream version 4.0.1+dfsg
Pierre Gruet (@pgt)
gitlab at salsa.debian.org
Mon Dec 16 09:16:36 GMT 2024
Pierre Gruet pushed to branch upstream at Debian Med / libhmsbeagle
Commits:
c135b442 by Pierre Gruet at 2024-10-08T11:17:43+02:00
New upstream version 4.0.1+dfsg
- - - - -
12 changed files:
- + .github/workflows/ci.yaml
- CMakeLists.txt
- README.md
- 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
=====================================
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/-/commit/c135b442fddb03c5045c1375e03b8a367bd7e7a7
--
View it on GitLab: https://salsa.debian.org/med-team/libhmsbeagle/-/commit/c135b442fddb03c5045c1375e03b8a367bd7e7a7
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/d5ed2a0d/attachment-0001.htm>
More information about the debian-med-commit
mailing list