Date: Wed, 10 May 2023 04:21:05 GMT From: Yuri Victorovich <yuri@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 0779caf29956 - main - math/dgl: New port: Deep Graph Library Message-ID: <202305100421.34A4L5Tb092881@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=0779caf29956b7e8645584a3c5e1924b85e60eb6 commit 0779caf29956b7e8645584a3c5e1924b85e60eb6 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2023-05-10 04:18:14 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2023-05-10 04:21:01 +0000 math/dgl: New port: Deep Graph Library --- math/Makefile | 1 + math/dgl/Makefile | 67 ++++++++++++++++++++++ math/dgl/distinfo | 33 +++++++++++ math/dgl/files/patch-CMakeLists.txt | 11 ++++ .../files/patch-python_dgl_backend_____init____.py | 13 +++++ math/dgl/files/patch-src_runtime_shared__mem.cc | 10 ++++ ...atch-third__party_METIS_libmetis_CMakeLists.txt | 19 ++++++ ...d__party_tensorpipe_tensorpipe_common_system.cc | 41 +++++++++++++ math/dgl/pkg-descr | 2 + math/dgl/pkg-plist | 64 +++++++++++++++++++++ 10 files changed, 261 insertions(+) diff --git a/math/Makefile b/math/Makefile index 17f1dddbe5de..89cacac3a106 100644 --- a/math/Makefile +++ b/math/Makefile @@ -268,6 +268,7 @@ SUBDIR += cvc5 SUBDIR += dbcsr SUBDIR += deal.ii + SUBDIR += dgl SUBDIR += dieharder SUBDIR += dihydrogen SUBDIR += dionysus diff --git a/math/dgl/Makefile b/math/dgl/Makefile new file mode 100644 index 000000000000..bb8bc1f216b4 --- /dev/null +++ b/math/dgl/Makefile @@ -0,0 +1,67 @@ +PORTNAME= dgl +DISTVERSION= 1.1.0 +CATEGORIES= math # machine-learning + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Deep Graph Library +WWW= https://www.dgl.ai/ + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${BACKEND_DEPENDS} \ + bash:shells/bash \ + gmake:devel/gmake + +USES= cmake:testing localbase:ldflags python:build shebangfix +USE_LDCONFIG= yes + +USE_GITHUB= yes +GH_ACCOUNT= dmlc +GH_TUPLE= apache:tvm:b2e418c:tvm/third_party/tvm \ + dmlc:dlpack:e2bdd3b:dlpack/third_party/dlpack \ + dmlc:dmlc-core:bfad207:dmlc_core/third_party/dmlc-core \ + greg7mdp:parallel-hashmap:25293ce:phmap/third_party/phmap \ + herumi:xbyak:757e406:xbyak/third_party/xbyak \ + imneme:pcg-cpp:428802d:pcg/third_party/pcg \ + jlblancoc:nanoflann:4c47ca2:nanoflann/third_party/nanoflann \ + KarypisLab:METIS:1060348:metis/third_party/METIS \ + KarypisLab:GKlib:62de20c:metis_GKlib/third_party/METIS/GKlib \ + pytorch:tensorpipe:6042f1a:tensorpipe/third_party/tensorpipe \ + libuv:libuv:1dff88e:tensorpipe_libuv/third_party/tensorpipe/third_party/libuv \ + google:libnop:aa95422:tensorpipe_libnop/third_party/tensorpipe/third_party/libnop \ + hfp:libxsmm:fa68755:libxsmm/third_party/libxsmm \ + NVIDIA:thrust:6a3078c:thrust/third_party/thrust \ + google:googletest:f71fb4f:googletest/third_party/googletest + +SHEBANG_GLOB= *.sh + +MAKE_ENV= PYTHON=${PYTHON_CMD} +CMAKE_ON= BUILD_SHARED_LIBS +CMAKE_TESTING_ON= BUILD_CPP_TEST # tests fail to compile, see https://github.com/dmlc/dgl/issues/5664 + +BINARY_ALIAS= make=${GMAKE} python3=${PYTHON_CMD} + +PLIST_FILES= lib/libdgl_metis.so # workaround for https://github.com/dmlc/dgl/issues/5666 + +OPTIONS_RADIO= BACKEND +OPTIONS_RADIO_BACKEND= PYTORCH TENSORFLOW MXNET +OPTIONS_DEFAULT= PYTORCH + +PYTORCH_DESC= Use PyTorch backend +PYTORCH_VARS= BACKEND_DEPENDS=${PYTHON_PKGNAMEPREFIX}pytorch>0:misc/py-pytorch@${PY_FLAVOR} +PYTORCH_MAKE_ENV= DGLBACKEND=pytorch + +TENSORFLOW_DESC= Use TensorFlow backend +TENSORFLOW_VARS= BACKEND_DEPENDS=${PYTHON_PKGNAMEPREFIX}tensorflow>0:science/py-tensorflow@${PY_FLAVOR} +TENSORFLOW_MAKE_ENV= DGLBACKEND=tensorflow +TENSORFLOW_CMAKE_ON= -DBUILD_SPARSE=OFF + +MXNET_DESC= Use MXNET backend +MXNET_VARS= BACKEND_DEPENDS=${PYTHON_PKGNAMEPREFIX}mxnet>0:misc/py-mxnet@${PY_FLAVOR} +MXNET_MAKE_ENV= DGLBACKEND=mxnet + +post-install: # workaround for https://github.com/dmlc/dgl/issues/5666 + ${INSTALL_LIB} ${BUILD_WRKSRC}/third_party/METIS/libmetis/libdgl_metis.so ${STAGEDIR}${PREFIX}/lib + +.include <bsd.port.mk> diff --git a/math/dgl/distinfo b/math/dgl/distinfo new file mode 100644 index 000000000000..8ab0e5fdb4df --- /dev/null +++ b/math/dgl/distinfo @@ -0,0 +1,33 @@ +TIMESTAMP = 1683606177 +SHA256 (dmlc-dgl-1.1.0_GH0.tar.gz) = 71c8ba7777ffdca37638bc796524d42c51006fad385967fa140235b60aac0252 +SIZE (dmlc-dgl-1.1.0_GH0.tar.gz) = 5536874 +SHA256 (apache-tvm-b2e418c_GH0.tar.gz) = f351aee38d7ad4bb1025407e26d5ed21704d1daf6cb2c2b7972ec1bef11189b7 +SIZE (apache-tvm-b2e418c_GH0.tar.gz) = 4105160 +SHA256 (dmlc-dlpack-e2bdd3b_GH0.tar.gz) = e88e702277cf4cfa4814afdbb27b07b75041d80b3df60da387cdd7e0ebeb6817 +SIZE (dmlc-dlpack-e2bdd3b_GH0.tar.gz) = 76235 +SHA256 (dmlc-dmlc-core-bfad207_GH0.tar.gz) = cb9d69eef2b73349367da53f01e54f16b0b26e0f3f063360a33c6313da494fd8 +SIZE (dmlc-dmlc-core-bfad207_GH0.tar.gz) = 256022 +SHA256 (greg7mdp-parallel-hashmap-25293ce_GH0.tar.gz) = 79bf3c49d9a685615b6876cb668c678975762e72efc95ff27afeb04d08f3e4bc +SIZE (greg7mdp-parallel-hashmap-25293ce_GH0.tar.gz) = 1991684 +SHA256 (herumi-xbyak-757e406_GH0.tar.gz) = ce13e1474237d16e4e1f66601e52db18e66f2ba98037ca800c1d9e6068d67cf6 +SIZE (herumi-xbyak-757e406_GH0.tar.gz) = 237424 +SHA256 (imneme-pcg-cpp-428802d_GH0.tar.gz) = 94cfcaace3031f42a246ef3f01b9da04bbd51baf0a749369f085e9e25e46fdbb +SIZE (imneme-pcg-cpp-428802d_GH0.tar.gz) = 78185 +SHA256 (jlblancoc-nanoflann-4c47ca2_GH0.tar.gz) = 84523ebbca828309da8ef35544d14c810419d6a7ecc7a6e103049bc4f2900a9e +SIZE (jlblancoc-nanoflann-4c47ca2_GH0.tar.gz) = 685221 +SHA256 (KarypisLab-METIS-1060348_GH0.tar.gz) = 3d0b2741c650c8a01019e294a12e0bc85653d251fd6956486b7fcbc90314ab1d +SIZE (KarypisLab-METIS-1060348_GH0.tar.gz) = 4839628 +SHA256 (KarypisLab-GKlib-62de20c_GH0.tar.gz) = b10827ec6c2481aded336dd99de1d241f5c59a65e186fdc1e6d4ee57527941aa +SIZE (KarypisLab-GKlib-62de20c_GH0.tar.gz) = 178104 +SHA256 (pytorch-tensorpipe-6042f1a_GH0.tar.gz) = b1f269a2694d85345c90acd6d22481702e3da8c3c28c0446c5c134026edf02e8 +SIZE (pytorch-tensorpipe-6042f1a_GH0.tar.gz) = 258701 +SHA256 (libuv-libuv-1dff88e_GH0.tar.gz) = 5a1e54bf17161c2e8886f584e88078318ad9c902d9b7b1d9b0f3e682f43bee48 +SIZE (libuv-libuv-1dff88e_GH0.tar.gz) = 1281275 +SHA256 (google-libnop-aa95422_GH0.tar.gz) = a1bc9d94289868a5d40e36964d57c8e06b52cb4cfff6cc21ff259337f707d0e1 +SIZE (google-libnop-aa95422_GH0.tar.gz) = 124119 +SHA256 (hfp-libxsmm-fa68755_GH0.tar.gz) = da3ebc9e628099a3bcfa2a0c6976f0cd7e8d0eba4a85b65428167e812c367986 +SIZE (hfp-libxsmm-fa68755_GH0.tar.gz) = 5259772 +SHA256 (NVIDIA-thrust-6a3078c_GH0.tar.gz) = c4d32d275c29689c2a7bf3b33dff87d533bb0a2f606256de44cc4e3780cc9130 +SIZE (NVIDIA-thrust-6a3078c_GH0.tar.gz) = 999915 +SHA256 (google-googletest-f71fb4f_GH0.tar.gz) = 196e6d0f943c2f741665e64ed500916fe6273d4f398007c95909ffe187704391 +SIZE (google-googletest-f71fb4f_GH0.tar.gz) = 957143 diff --git a/math/dgl/files/patch-CMakeLists.txt b/math/dgl/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..d973f21dd773 --- /dev/null +++ b/math/dgl/files/patch-CMakeLists.txt @@ -0,0 +1,11 @@ +--- CMakeLists.txt.orig 2023-05-09 05:00:36 UTC ++++ CMakeLists.txt +@@ -197,7 +197,7 @@ if(NOT MSVC) + include_directories(${GKLIB_PATH}) + include_directories("third_party/METIS/include/") + add_subdirectory("third_party/METIS/libmetis/") +- list(APPEND DGL_LINKER_LIBS metis) ++ list(APPEND DGL_LINKER_LIBS dgl_metis) + endif(NOT MSVC) + + # Compile LIBXSMM diff --git a/math/dgl/files/patch-python_dgl_backend_____init____.py b/math/dgl/files/patch-python_dgl_backend_____init____.py new file mode 100644 index 000000000000..1547284444fe --- /dev/null +++ b/math/dgl/files/patch-python_dgl_backend_____init____.py @@ -0,0 +1,13 @@ +--- python/dgl/backend/__init__.py.orig 2023-05-08 05:34:30 UTC ++++ python/dgl/backend/__init__.py +@@ -115,8 +115,8 @@ def get_preferred_backend(): + "Assuming PyTorch for now.", + file=sys.stderr, + ) +- set_default_backend(default_dir, "pytorch") +- return "pytorch" ++ set_default_backend(default_dir, "tensorflow") ++ return "tensorflow" + + + load_backend(get_preferred_backend()) diff --git a/math/dgl/files/patch-src_runtime_shared__mem.cc b/math/dgl/files/patch-src_runtime_shared__mem.cc new file mode 100644 index 000000000000..9bd03e0fe9f6 --- /dev/null +++ b/math/dgl/files/patch-src_runtime_shared__mem.cc @@ -0,0 +1,10 @@ +--- src/runtime/shared_mem.cc.orig 2023-04-30 05:51:10 UTC ++++ src/runtime/shared_mem.cc +@@ -6,6 +6,7 @@ + #ifndef _WIN32 + #include <fcntl.h> + #include <sys/mman.h> ++#include <sys/stat.h> + #include <unistd.h> + #endif + #include <dgl/runtime/shared_mem.h> diff --git a/math/dgl/files/patch-third__party_METIS_libmetis_CMakeLists.txt b/math/dgl/files/patch-third__party_METIS_libmetis_CMakeLists.txt new file mode 100644 index 000000000000..4e15c3b7ef39 --- /dev/null +++ b/math/dgl/files/patch-third__party_METIS_libmetis_CMakeLists.txt @@ -0,0 +1,19 @@ +--- third_party/METIS/libmetis/CMakeLists.txt.orig 2023-05-09 05:04:07 UTC ++++ third_party/METIS/libmetis/CMakeLists.txt +@@ -3,13 +3,13 @@ include_directories(.) + # Find sources. + file(GLOB metis_sources *.c) + # Build libmetis. +-add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources}) ++add_library(dgl_metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources}) + if(UNIX) +- target_link_libraries(metis m) ++ target_link_libraries(dgl_metis m) + endif() + + if(METIS_INSTALL) +- install(TARGETS metis ++ install(TARGETS dgl_metis + LIBRARY DESTINATION lib + RUNTIME DESTINATION lib + ARCHIVE DESTINATION lib) diff --git a/math/dgl/files/patch-third__party_tensorpipe_tensorpipe_common_system.cc b/math/dgl/files/patch-third__party_tensorpipe_tensorpipe_common_system.cc new file mode 100644 index 000000000000..3cd8d0aab6b1 --- /dev/null +++ b/math/dgl/files/patch-third__party_tensorpipe_tensorpipe_common_system.cc @@ -0,0 +1,41 @@ +--- third_party/tensorpipe/tensorpipe/common/system.cc.orig 2021-08-31 10:11:56 UTC ++++ third_party/tensorpipe/tensorpipe/common/system.cc +@@ -16,6 +16,13 @@ + #include <unistd.h> + #endif + ++#ifdef __FreeBSD__ ++#include <pthread.h> ++#include <sys/stat.h> ++#include <sys/types.h> ++#include <unistd.h> ++#endif ++ + #ifdef __APPLE__ + #include <IOKit/IOKitLib.h> + #endif +@@ -141,8 +148,9 @@ std::string removeBlankSpaces(std::string s) { + } + + optional<std::string> getBootID() { +- static optional<std::string> bootID = getBootIDInternal(); +- return bootID; ++ //static optional<std::string> bootID = getBootIDInternal(); ++ //return bootID; ++ throw std::runtime_error("tensorpipe lacks FreeBSD support (getBootIDInternal), see https://github.com/pytorch/tensorpipe/issues/461"); + } + + #ifdef __APPLE__ +@@ -277,6 +285,12 @@ optional<std::string> getPermittedCapabilitiesID() { + std::ostringstream oss; + oss << std::hex << bitmask; + return oss.str(); ++} ++ ++#elif defined(__FreeBSD__) ++ ++optional<std::string> getLinuxNamespaceId(LinuxNamespace ns) { ++ return std::string(); + } + + #endif diff --git a/math/dgl/pkg-descr b/math/dgl/pkg-descr new file mode 100644 index 000000000000..459fb5664e85 --- /dev/null +++ b/math/dgl/pkg-descr @@ -0,0 +1,2 @@ +DGL is a Python package built to ease deep learning on graphs +on top of existing DL frameworks. diff --git a/math/dgl/pkg-plist b/math/dgl/pkg-plist new file mode 100644 index 000000000000..13b1820cb7d4 --- /dev/null +++ b/math/dgl/pkg-plist @@ -0,0 +1,64 @@ +include/dmlc/any.h +include/dmlc/array_view.h +include/dmlc/base.h +include/dmlc/blockingconcurrentqueue.h +include/dmlc/build_config.h +include/dmlc/build_config_default.h +include/dmlc/common.h +include/dmlc/concurrency.h +include/dmlc/concurrentqueue.h +include/dmlc/config.h +include/dmlc/data.h +include/dmlc/endian.h +include/dmlc/filesystem.h +include/dmlc/input_split_shuffle.h +include/dmlc/io.h +include/dmlc/json.h +include/dmlc/logging.h +include/dmlc/lua.h +include/dmlc/memory.h +include/dmlc/memory_io.h +include/dmlc/omp.h +include/dmlc/optional.h +include/dmlc/parameter.h +include/dmlc/recordio.h +include/dmlc/registry.h +include/dmlc/serializer.h +include/dmlc/strtonum.h +include/dmlc/thread_group.h +include/dmlc/thread_local.h +include/dmlc/threadediter.h +include/dmlc/timer.h +include/dmlc/type_traits.h +include/tensorpipe/channel/basic/factory.h +include/tensorpipe/channel/context.h +include/tensorpipe/channel/error.h +include/tensorpipe/channel/mpt/factory.h +include/tensorpipe/channel/xth/factory.h +include/tensorpipe/common/buffer.h +include/tensorpipe/common/cpu_buffer.h +include/tensorpipe/common/device.h +include/tensorpipe/common/error.h +include/tensorpipe/common/optional.h +include/tensorpipe/config.h +include/tensorpipe/core/context.h +include/tensorpipe/core/error.h +include/tensorpipe/core/listener.h +include/tensorpipe/core/message.h +include/tensorpipe/core/pipe.h +include/tensorpipe/tensorpipe.h +include/tensorpipe/transport/context.h +include/tensorpipe/transport/error.h +include/tensorpipe/transport/uv/error.h +include/tensorpipe/transport/uv/factory.h +include/tensorpipe/transport/uv/utility.h +lib/cmake/dmlc/DMLCTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/dmlc/DMLCTargets.cmake +lib/cmake/dmlc/dmlc-config-version.cmake +lib/cmake/dmlc/dmlc-config.cmake +lib/libdgl.so +lib/libdmlc.so +lib/libtensorpipe.so +lib/libtensorpipe_uv.a +share/cmake/Tensorpipe/TensorpipeTargets-%%CMAKE_BUILD_TYPE%%.cmake +share/cmake/Tensorpipe/TensorpipeTargets.cmake
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305100421.34A4L5Tb092881>