From 6a7725810747ca5305f2ed80a052cf84fd74b6f7 Mon Sep 17 00:00:00 2001 From: Edwin Date: Wed, 23 Apr 2025 14:40:37 -0700 Subject: [PATCH 1/5] Updated version, change arrayfire pull repo --- CMakeLists.txt | 4 ++-- arrayfire_wrapper/version.py | 4 ++-- pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7248a85..7039820 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,8 +14,8 @@ if(DEFINED ENV{AF_BUILD_LOCAL_LIBS}) #set(NO_SONAME) FetchContent_Declare( arrayfire - GIT_REPOSITORY https://github.com/arrayfire/arrayfire.git - GIT_TAG v3.9 + GIT_REPOSITORY https://github.com/edwinsolisf/arrayfire.git + GIT_TAG afwheel310 ) #TODO: change package name to match repository/project name? #set(AF_INSTALL_CMAKE_DIR "${SKBUILD_PROJECT_NAME}") diff --git a/arrayfire_wrapper/version.py b/arrayfire_wrapper/version.py index 5b08d8d..811ba20 100644 --- a/arrayfire_wrapper/version.py +++ b/arrayfire_wrapper/version.py @@ -1,7 +1,7 @@ import os _MAJOR = "0" -_MINOR = "7" +_MINOR = "8" # On main and in a nightly release the patch should be one ahead of the last # released build. _PATCH = "0" @@ -13,7 +13,7 @@ FORGE_VER_MAJOR = "1" ARRAYFIRE_VER_MAJOR = "3" -ARRAYFIRE_VER_MINOR = "9" +ARRAYFIRE_VER_MINOR = "10" ARRAYFIRE_VER_PATCH = "0" ARRAYFIRE_VERSION = "AF{0}.{1}.{2}".format(ARRAYFIRE_VER_MAJOR, ARRAYFIRE_VER_MINOR, ARRAYFIRE_VER_PATCH) diff --git a/pyproject.toml b/pyproject.toml index d975945..010a16f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ build-backend = "scikit_build_core.build" [project] name = "arrayfire-binary-python-wrapper" -version = "0.7.0+AF3.9.0" +version = "0.8.0+AF3.10.0" requires-python = ">=3.10" authors = [ { name = "ArrayFire", email = "technical@arrayfire.com"}, From 6bd37f73e885939578e70b9cce6a47eaf3630cf0 Mon Sep 17 00:00:00 2001 From: Edwin Date: Tue, 29 Apr 2025 12:30:52 -0700 Subject: [PATCH 2/5] Added flags for arrayfire build --- pyproject.toml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 010a16f..4153462 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,5 +101,16 @@ AF_BUILD_FORGE = "ON" AF_TEST_WITH_MTX_FILES = "OFF" AF_INSTALL_STANDALONE = "ON" +AF_WITH_STATIC_CUDA_NUMERIC_LIBS = "OFF" +AF_COMPUTE_LIBRARY = "Intel-MKL" +AF_WITH_IMAGEIO = "ON" +AF_BUILD_FORGE = "ON" +AF_ADDITIONAL_MKL_LIBRARIES = "/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so;/opt/intel/oneapi/compiler/latest/lib/libimf.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8.0.0;/opt/intel/oneapi/compiler/latest/lib/libsycl.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8;/opt/intel/oneapi/compiler/latest/lib/libsvml.so;/opt/intel/oneapi/compiler/latest/lib/libirng.so;/opt/intel/oneapi/compiler/latest/lib/libintlc.so.5;/opt/intel/oneapi/compiler/latest/lib/libintlc.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12.15;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12" + +FG_USE_STATIC_CPPFLAGS:BOOL = "OFF" +FG_WITH_FREEIMAGE = "OFF" +_GLIBCXX_USE_CXX11_ABI = "1" +CUDA_architecture_build_targets = "5.0;5.2;6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0;9.0+PTX" + [tool.scikit-build.logging] level = "INFO" From 8f000c2dfae8b44c888faf8e07c0bd1a0249e9be Mon Sep 17 00:00:00 2001 From: Edwin Date: Wed, 30 Apr 2025 13:12:55 -0700 Subject: [PATCH 3/5] Commented out flags that may be passed in through cmake args env variable --- pyproject.toml | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4153462..56d716b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -85,32 +85,30 @@ build-type = "Release" # not working for whatever reason, duplicated below TODO: [tool.scikit-build.cmake.define] # edit to enable/disable building of desired backends AF_BUILD_CPU = "ON" -AF_BUILD_ONEAPI = "ON" -AF_BUILD_CUDA = "ON" -AF_BUILD_OPENCL = "ON" +#AF_BUILD_ONEAPI = "ON" +#AF_BUILD_CUDA = "ON" +#AF_BUILD_OPENCL = "ON" AF_BUILD_UNIFIED = "ON" AF_BUILD_DOCS = "OFF" CMAKE_BUILD_TYPE = "Release" AF_BUILD_EXAMPLES = "OFF" -AF_WITH_IMAGEIO = "ON" +#AF_WITH_IMAGEIO = "ON" AF_WITH_LOGGING = "ON" AF_WITH_FMT_HEADER_ONLY = "ON" AF_WITH_SPDLOG_HEADER_ONLY = "ON" -AF_BUILD_FORGE = "ON" +#AF_BUILD_FORGE = "ON" AF_TEST_WITH_MTX_FILES = "OFF" AF_INSTALL_STANDALONE = "ON" -AF_WITH_STATIC_CUDA_NUMERIC_LIBS = "OFF" -AF_COMPUTE_LIBRARY = "Intel-MKL" -AF_WITH_IMAGEIO = "ON" -AF_BUILD_FORGE = "ON" -AF_ADDITIONAL_MKL_LIBRARIES = "/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so;/opt/intel/oneapi/compiler/latest/lib/libimf.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8.0.0;/opt/intel/oneapi/compiler/latest/lib/libsycl.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8;/opt/intel/oneapi/compiler/latest/lib/libsvml.so;/opt/intel/oneapi/compiler/latest/lib/libirng.so;/opt/intel/oneapi/compiler/latest/lib/libintlc.so.5;/opt/intel/oneapi/compiler/latest/lib/libintlc.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12.15;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12" +#AF_WITH_STATIC_CUDA_NUMERIC_LIBS = "OFF" +#AF_COMPUTE_LIBRARY = "Intel-MKL" +#AF_ADDITIONAL_MKL_LIBRARIES = "/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_blas.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_lapack.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_dft.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_sparse.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_data_fitting.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_rng.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_stats.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_sycl_vm.so.5;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_intel_ilp64.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so;/opt/intel/oneapi/mkl/latest/lib/libmkl_tbb_thread.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so.2;/opt/intel/oneapi/mkl/latest/lib/libmkl_core.so;/opt/intel/oneapi/compiler/latest/lib/libimf.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8.0.0;/opt/intel/oneapi/compiler/latest/lib/libsycl.so;/opt/intel/oneapi/compiler/latest/lib/libsycl.so.8;/opt/intel/oneapi/compiler/latest/lib/libsvml.so;/opt/intel/oneapi/compiler/latest/lib/libirng.so;/opt/intel/oneapi/compiler/latest/lib/libintlc.so.5;/opt/intel/oneapi/compiler/latest/lib/libintlc.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12.15;/opt/intel/oneapi/tbb/latest/lib/libtbb.so.12" -FG_USE_STATIC_CPPFLAGS:BOOL = "OFF" -FG_WITH_FREEIMAGE = "OFF" -_GLIBCXX_USE_CXX11_ABI = "1" -CUDA_architecture_build_targets = "5.0;5.2;6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0;9.0+PTX" +#FG_USE_STATIC_CPPFLAGS:BOOL = "OFF" +#FG_WITH_FREEIMAGE = "OFF" +#_GLIBCXX_USE_CXX11_ABI = "1" +#CUDA_architecture_build_targets = "5.0;5.2;6.0;6.1;7.0;7.5;8.0;8.6;8.9;9.0;9.0+PTX" [tool.scikit-build.logging] level = "INFO" From 165a8741370eed3b32039d60b6509d2174863930 Mon Sep 17 00:00:00 2001 From: Edwin Date: Wed, 30 Apr 2025 22:19:56 -0700 Subject: [PATCH 4/5] Added settings to exclude repeated symlinks of af libraries in wheel --- pyproject.toml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 56d716b..baef9a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,6 +78,24 @@ build-dir = "build" py-api = "py3" packages = ["arrayfire_wrapper"] expand-macos-universal-tags = true +exclude = [ +"libaf.so", +"libaf.so.3", +"libafcpu.so", +"libafcpu.so.3", +"libafopencl.so", +"libafopencl.so.3", +"libafcuda.so", +"libafcuda.so.3", +"libafoneapi.so", +"libafoneapi.so.3", +"libforge.so", +"libforge.so.1", +"libmkl_core.so", +"libmkl_rt.so", +"libmkl_intel_thread.so", +"libmkl_intel_lp64.so", +] [tool.scikit-build.cmake] build-type = "Release" # not working for whatever reason, duplicated below TODO: fix From 7504a217438f42a9c74c95063e2685270feed3f5 Mon Sep 17 00:00:00 2001 From: Edwin Date: Thu, 1 May 2025 20:42:37 -0700 Subject: [PATCH 5/5] Fixed excluded dynamic libraries versions --- pyproject.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index baef9a1..6e54820 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -80,17 +80,17 @@ packages = ["arrayfire_wrapper"] expand-macos-universal-tags = true exclude = [ "libaf.so", -"libaf.so.3", +"libaf.so.3.10.0", "libafcpu.so", -"libafcpu.so.3", +"libafcpu.so.3.10.0", "libafopencl.so", -"libafopencl.so.3", +"libafopencl.so.3.10.0", "libafcuda.so", -"libafcuda.so.3", +"libafcuda.so.3.10.0", "libafoneapi.so", -"libafoneapi.so.3", +"libafoneapi.so.3.10.0", "libforge.so", -"libforge.so.1", +"libforge.so.1.0.8", "libmkl_core.so", "libmkl_rt.so", "libmkl_intel_thread.so",