From 288d9455931660abb6dfa534a78d45c7fb901477 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 6 Apr 2025 01:34:40 +0100 Subject: gentoo auto-resync : 06:04:2025 - 01:34:40 --- sci-ml/Manifest.gz | Bin 4568 -> 4570 bytes sci-ml/caffe2/Manifest | 4 +- sci-ml/caffe2/caffe2-2.6.0-r2.ebuild | 331 -------------------- sci-ml/caffe2/caffe2-2.6.0-r3.ebuild | 343 +++++++++++++++++++++ .../files/caffe2-2.6.0-rocm-fix-std-cpp17.patch | 50 +++ 5 files changed, 396 insertions(+), 332 deletions(-) delete mode 100644 sci-ml/caffe2/caffe2-2.6.0-r2.ebuild create mode 100644 sci-ml/caffe2/caffe2-2.6.0-r3.ebuild create mode 100644 sci-ml/caffe2/files/caffe2-2.6.0-rocm-fix-std-cpp17.patch (limited to 'sci-ml') diff --git a/sci-ml/Manifest.gz b/sci-ml/Manifest.gz index 958a35818ff1..094a9cd0be9e 100644 Binary files a/sci-ml/Manifest.gz and b/sci-ml/Manifest.gz differ diff --git a/sci-ml/caffe2/Manifest b/sci-ml/caffe2/Manifest index 7db834f6adf3..078812c45c65 100644 --- a/sci-ml/caffe2/Manifest +++ b/sci-ml/caffe2/Manifest @@ -8,11 +8,13 @@ AUX caffe2-2.5.1-newfix-functorch-install.patch 455 BLAKE2B 32f1b92ce029337a6e97 AUX caffe2-2.5.1-unbundle_fmt.patch 499 BLAKE2B 06550f8e7ae3a932a585f8abe7653ac0b574d9ce1160c190a39f96b7d76e3a9e7a4e62b9e5e967e5884d0e38668f60af7737ea3c715d718deb7a634de98ccebd SHA512 afcb5f1123cbe5eeebdb2c5e312e37956dbc33a926cf379f531896f2c75fbb4b4dfa2c9d276a98bbad51bc587886bb572c3221be06e5116443c8ab44e1d12da5 AUX caffe2-2.5.1-unbundle_kineto.patch 830 BLAKE2B 80c9ebc30d0ca3b964141a5d9a7cb3662e6dc8472454ceabc2725f47277211cd495c4146dc9c2046cc5c5505909cf4e30c780685fceebdb05319aba5c4366346 SHA512 9645b11b5395f7a4626f17edae22c718c73d2e2f3de56e98653932a3c66f417942d54fd1dadc99112337c11513ac707a96d0caac4bf3d100db8f7079609b9b68 AUX caffe2-2.6.0-gentoo.patch 6698 BLAKE2B 58c46bedcc71ef25ab3e70efbea98e2cd4f5c068deb289ae95ba985745edcacb258bcf5cf093f44ff60606b3f6dcd1f75c9463ee225dec5e79675d0f78196e05 SHA512 b835e24e903f4d4aeaa4c1c8611bdd3896e36631c163da4154201676d7c5236e6eb7d80e0f81700f47b5f5859ced4c7ec0bdfbef6646c6ccc0f982f0d893fe14 +AUX caffe2-2.6.0-rocm-fix-std-cpp17.patch 2522 BLAKE2B 4142319d00f95910b2712d36f9d94a03b0a8bcac551ca8c486c516382a9a3dfb3800dfa7ed4d93c4fdb132de2c4b6e5bead8932f6003d01a61fe30560d4d46ae SHA512 fb94ceba0924d4e82ef97f3e8bcefd37e4b26ffbf676195cd7e93ce012d516ab2f9ce39379ec938a1697d3ac9c0b6b5787b09cfffdb2565c9b1a018e89141cf2 DIST caffe2-patches-20240809.tar.gz 15242 BLAKE2B 77503c61487e7d85cca5afcab9a6e638f9833a70861845638cf1b62bc492d7b6650e6db81d53ebb2f39c6313509250d339f725f04d03ec6dd23dd0cf70843d8c SHA512 74b3b0b6671b655ecac93f7436c4ed7cb0157a83aafbf6afcc0811e11cef341cd8f638db1a111bcbb01e1a6dd4daf3a36b96d7a8ce90f04c2fa091bd6e3a142b +DIST composable_kernel-50ee4267.tar.gz 4194795 BLAKE2B b3c97d98a0c9e4620fdae3d30006edf55cc60ffa7f8518f6acb8d808647bc4de362c2e2b7e974686503fa2c7f359b6981cfbda74e40cc1bad4d351c5d2ff92e1 SHA512 9fc6f5f15556f020414b4567520329ef762209a82411a246c2bc1240a9fed2669f7fcb982cf773e3e9561bf9a2c557dba82b8b469d2e5844e679e2f5ab7c3e17 DIST pytorch-2.4.1.tar.gz 115029469 BLAKE2B c2909ff27d527bc57cba56b780d3b8cd07a043ab045caa6c6b27857a16f9ad10aaab2116b26226b1e46ee08ffb44007965d914464418e4ae14ca48c3f3f383bb SHA512 7e9b4485e242eaf0d648765c6621d73d95e7107b766646a098175436d1ab2e2b864badd0757a3bab6b7c318233f2120bad9ac07b39bb9e357897919580c87631 DIST pytorch-2.5.1.tar.gz 116091366 BLAKE2B 7838b17562b94ffc7d798031348689db607dd5eae2a3c35be365972e2b52a2c1b12067068d5aca5ab00cf0977d9c2c3c9ae5337d69534c864c732e6256cbeef6 SHA512 a913a466324a65fa3d79c5e9ad4d605fc7976f0134fda2f81aaa3cea29d56926604999b8a238759646d211e63b47bbb446cdffa86ca8defd8159f11e30301289 DIST pytorch-2.6.0.tar.gz 119594438 BLAKE2B 3152eb341cf42295e147e59625beb9c06608aa4b78f9618c1c0024b10c1c767715d07fe8c4be52d029ac47f808cd0d5e65c9530ec90d951a64b993083b4067ad SHA512 a70da80ff09d226085e18228132cf6bb236ad8cc47eed52375d0d2a615f09dd33849da947270b5670c184eab60cb8e2adf11d801babfbda7aa621400501d07b0 EBUILD caffe2-2.4.1-r6.ebuild 8556 BLAKE2B 77f1809c8ec73b36e16a8c2939bcafb83a995f8074c163e224f0b02230f6c9cde73c2c11aa07b44f4b670b4472c6ba4157262dd14743cad385187bc4145f5af9 SHA512 7747b9ad89f065af36e5d191f24525748a4c6ea020848b0d64f5699e8f9192699ec523708ea6bc52e1973c5792e65330ba7d27e3a0c88d0990094feda9e9a46d EBUILD caffe2-2.5.1-r10.ebuild 8866 BLAKE2B bcc3af372f8ab5969903c32bf15cc619d700776133cfa20e723fe126435505e73fcf48985c338c3055b5a206f776fe5744a73441308114356f35e566aae56b28 SHA512 e175f3741c80e0181ec03952dfac7bcfad808275c60d01f18a46073300d575b31f7b161eb715db22a00e8bb13e37c68051e487982a8f020d63da342da24ff56e -EBUILD caffe2-2.6.0-r2.ebuild 8889 BLAKE2B 0ccf998a778c69efb005967a5ed6110c34ab263e42f5d969fb4bbbed611209ae1c9191df8c47b53c7c194b2612ce86229456dc4fc6383779a8736e4499056bfa SHA512 d5f19c8f8742b0bfacef9656b9ead6bdaf1185360467d6b83cd1bc7e26db2e3e2c925131850a7f2b9bf3b1fadc081e9d6047ae3b86aeacecc689377fe62edca8 +EBUILD caffe2-2.6.0-r3.ebuild 9600 BLAKE2B c28f745fb4fbd260a590db4fb0a12a610e7be3aa1030afe91f0f3851688e71f600c2e8ee2874e45977750bba114a94133110c334c2df5a93b00a9c8b77302627 SHA512 50d92c070f5cecf153f363bc99e2c6ffd4f764e14a0f247a94ad801431fb859e5c999acb5dc4855831df18bccbd971c8603e7272047c6d8440d8efeed61d8e01 MISC metadata.xml 1228 BLAKE2B 29fa99ccc009ae8ac209cf0a85a8c87992d10301837f44478b4fe60445dbf261cf1c3869cc6e173944b9c98608fcf32a379c766bf7e53267c90fd71e51e1f9a0 SHA512 06d89ac1b62bf215d56ac67408f6027849f3a1948f1a40013aa989f9d879eb9aa9156d9c336cc83d2bb3795271c11d39d34919f749d83dbfbf48cc2d6aa8545e diff --git a/sci-ml/caffe2/caffe2-2.6.0-r2.ebuild b/sci-ml/caffe2/caffe2-2.6.0-r2.ebuild deleted file mode 100644 index b9747ad9eed4..000000000000 --- a/sci-ml/caffe2/caffe2-2.6.0-r2.ebuild +++ /dev/null @@ -1,331 +0,0 @@ -# Copyright 2022-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..13} ) -ROCM_VERSION=6.1 -inherit python-single-r1 cmake cuda flag-o-matic prefix rocm toolchain-funcs - -MYPN=pytorch -MYP=${MYPN}-${PV} - -DESCRIPTION="A deep learning framework" -HOMEPAGE="https://pytorch.org/" -SRC_URI="https://github.com/pytorch/${MYPN}/archive/refs/tags/v${PV}.tar.gz - -> ${MYP}.tar.gz" - -S="${WORKDIR}"/${MYP} - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64" -IUSE="cuda distributed fbgemm flash gloo memefficient mkl mpi nnpack +numpy - onednn openblas opencl openmp qnnpack rocm xnnpack" -RESTRICT="test" -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - mpi? ( distributed ) - gloo? ( distributed ) - ?? ( cuda rocm ) - rocm? ( - || ( ${ROCM_REQUIRED_USE} ) - !flash - ) -" - -RDEPEND=" - ${PYTHON_DEPS} - dev-cpp/abseil-cpp:= - dev-cpp/gflags:= - >=dev-cpp/glog-0.5.0 - dev-cpp/nlohmann_json - dev-cpp/opentelemetry-cpp - dev-libs/cpuinfo - dev-libs/libfmt:= - dev-libs/protobuf:= - dev-libs/pthreadpool - dev-libs/sleef - virtual/lapack - sci-ml/foxi - sci-ml/onnx - cuda? ( - dev-libs/cudnn - >=dev-libs/cudnn-frontend-1.0.3:0/8 - dev-util/nvidia-cuda-toolkit:=[profiler] - ) - fbgemm? ( sci-ml/FBGEMM ) - gloo? ( sci-ml/gloo[cuda?] ) - mpi? ( virtual/mpi ) - nnpack? ( sci-ml/NNPACK ) - numpy? ( $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - ') ) - onednn? ( =sci-ml/oneDNN-3.5* ) - opencl? ( virtual/opencl ) - qnnpack? ( - !sci-libs/QNNPACK - sci-ml/gemmlowp - ) - rocm? ( - =dev-util/hip-6.1* - =dev-libs/rccl-6.1*[${ROCM_USEDEP}] - =sci-libs/rocThrust-6.1*[${ROCM_USEDEP}] - =sci-libs/rocPRIM-6.1*[${ROCM_USEDEP}] - =sci-libs/hipBLAS-6.1*[${ROCM_USEDEP}] - =sci-libs/hipFFT-6.1*[${ROCM_USEDEP}] - =sci-libs/hipSPARSE-6.1*[${ROCM_USEDEP}] - =sci-libs/hipRAND-6.1*[${ROCM_USEDEP}] - =sci-libs/hipCUB-6.1*[${ROCM_USEDEP}] - =sci-libs/hipSOLVER-6.1*[${ROCM_USEDEP}] - =sci-libs/miopen-6.1*[${ROCM_USEDEP}] - =dev-util/roctracer-6.1*[${ROCM_USEDEP}] - - =sci-libs/hipBLASLt-6.1* - amdgpu_targets_gfx90a? ( =sci-libs/hipBLASLt-6.1*[amdgpu_targets_gfx90a] ) - amdgpu_targets_gfx940? ( =sci-libs/hipBLASLt-6.1*[amdgpu_targets_gfx940] ) - amdgpu_targets_gfx941? ( =sci-libs/hipBLASLt-6.1*[amdgpu_targets_gfx941] ) - amdgpu_targets_gfx942? ( =sci-libs/hipBLASLt-6.1*[amdgpu_targets_gfx942] ) - ) - distributed? ( - sci-ml/tensorpipe[cuda?] - dev-cpp/cpp-httplib - ) - xnnpack? ( sci-ml/XNNPACK ) - mkl? ( sci-libs/mkl ) - openblas? ( sci-libs/openblas ) -" - -DEPEND=" - ${RDEPEND} - dev-libs/flatbuffers - dev-libs/FXdiv - dev-libs/pocketfft - dev-libs/psimd - sci-ml/FP16 - sci-ml/kineto - $(python_gen_cond_dep ' - dev-python/pybind11[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/typing-extensions[${PYTHON_USEDEP}] - ') - cuda? ( <=dev-libs/cutlass-3.4.1 ) - onednn? ( sci-ml/ideep ) - qnnpack? ( dev-libs/clog ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.5.1-unbundle_fmt.patch - "${FILESDIR}"/${PN}-2.5.1-unbundle_kineto.patch - "${FILESDIR}"/${PN}-2.5.1-cudnn_include_fix.patch - "${FILESDIR}"/${P}-gentoo.patch - "${FILESDIR}"/${PN}-2.4.0-cpp-httplib.patch - "${FILESDIR}"/${PN}-2.5.1-glog-0.6.0.patch - "${FILESDIR}"/${PN}-2.5.1-newfix-functorch-install.patch -) - -src_prepare() { - filter-lto #bug 862672 - - # Unbundle fmt - sed -i \ - -e 's|::fmt-header-only||' \ - c10/CMakeLists.txt \ - cmake/Dependencies.cmake \ - torch/CMakeLists.txt \ - || die - - # Drop third_party from CMake tree - sed -i \ - -e '/add_subdirectory.*third_party/d' \ - CMakeLists.txt \ - cmake/Dependencies.cmake \ - cmake/ProtoBuf.cmake \ - aten/src/ATen/CMakeLists.txt \ - || die - # Change libc10* path - sed -i \ - -e "/EXPORT/s|DESTINATION lib)|DESTINATION $(get_libdir))|" \ - c10/cuda/CMakeLists.txt \ - c10/CMakeLists.txt \ - c10/hip/CMakeLists.txt \ - || die - sed -i \ - -e '/Using pocketfft in directory:/d' \ - cmake/Dependencies.cmake \ - || die - - cmake_src_prepare - pushd torch/csrc/jit/serialization || die - flatc --cpp --gen-mutable --scoped-enums mobile_bytecode.fbs || die - popd - - # prefixify the hardcoded paths, after all patches are applied - hprefixify \ - aten/CMakeLists.txt \ - caffe2/CMakeLists.txt \ - cmake/Metal.cmake \ - cmake/Modules/*.cmake \ - cmake/Modules_CUDA_fix/FindCUDNN.cmake \ - cmake/Modules_CUDA_fix/upstream/FindCUDA/make2cmake.cmake \ - cmake/Modules_CUDA_fix/upstream/FindPackageHandleStandardArgs.cmake \ - cmake/public/LoadHIP.cmake \ - cmake/public/cuda.cmake \ - cmake/Dependencies.cmake \ - torch/CMakeLists.txt \ - CMakeLists.txt - - if use rocm; then - sed -e "s:/opt/rocm:/usr:" \ - -e "s:lib/cmake:$(get_libdir)/cmake:g" \ - -e "s/HIP 1.0/HIP 1.0 REQUIRED/" \ - -i cmake/public/LoadHIP.cmake || die - - ebegin "HIPifying cuda sources" - ${EPYTHON} tools/amd_build/build_amd.py || die - eend $? - fi -} - -src_configure() { - if use cuda && [[ -z ${TORCH_CUDA_ARCH_LIST} ]]; then - ewarn "WARNING: caffe2 is being built with its default CUDA compute capabilities: 3.5 and 7.0." - ewarn "These may not be optimal for your GPU." - ewarn "" - ewarn "To configure caffe2 with the CUDA compute capability that is optimal for your GPU," - ewarn "set TORCH_CUDA_ARCH_LIST in your make.conf, and re-emerge caffe2." - ewarn "For example, to use CUDA capability 7.5 & 3.5, add: TORCH_CUDA_ARCH_LIST=7.5 3.5" - ewarn "For a Maxwell model GPU, an example value would be: TORCH_CUDA_ARCH_LIST=Maxwell" - ewarn "" - ewarn "You can look up your GPU's CUDA compute capability at https://developer.nvidia.com/cuda-gpus" - ewarn "or by running /opt/cuda/extras/demo_suite/deviceQuery | grep 'CUDA Capability'" - fi - - local mycmakeargs=( - -DBUILD_CUSTOM_PROTOBUF=OFF - -DLIBSHM_INSTALL_LIB_SUBDIR="${EPREFIX}"/usr/$(get_libdir) - -DPython_EXECUTABLE="${PYTHON}" - -DTORCH_INSTALL_LIB_DIR="${EPREFIX}"/usr/$(get_libdir) - -DUSE_CCACHE=OFF - -DUSE_CUDA=$(usex cuda) - -DUSE_DISTRIBUTED=$(usex distributed) - -DUSE_FAKELOWP=OFF - -DUSE_FBGEMM=$(usex fbgemm) - -DUSE_FLASH_ATTENTION=$(usex flash) - -DUSE_GFLAGS=ON - -DUSE_GLOG=ON - -DUSE_GLOO=$(usex gloo) - -DUSE_ITT=OFF - -DUSE_KINETO=OFF # TODO - -DUSE_MAGMA=OFF # TODO: In GURU as sci-libs/magma - -DUSE_MEM_EFF_ATTENTION=$(usex memefficient) - -DUSE_MKLDNN=$(usex onednn) - -DUSE_MPI=$(usex mpi) - -DUSE_NCCL=OFF - -DUSE_NNPACK=$(usex nnpack) - -DUSE_NUMA=OFF - -DUSE_NUMPY=$(usex numpy) - -DUSE_OPENCL=$(usex opencl) - -DUSE_OPENMP=$(usex openmp) - -DUSE_PYTORCH_QNNPACK=$(usex qnnpack) - -DUSE_PYTORCH_METAL=OFF - -DUSE_ROCM=$(usex rocm) - -DUSE_SYSTEM_CPUINFO=ON - -DUSE_SYSTEM_EIGEN_INSTALL=ON - -DUSE_SYSTEM_FP16=ON - -DUSE_SYSTEM_FXDIV=ON - -DUSE_SYSTEM_GLOO=ON - -DUSE_SYSTEM_ONNX=ON - -DUSE_SYSTEM_PSIMD=ON - -DUSE_SYSTEM_PSIMD=ON - -DUSE_SYSTEM_PTHREADPOOL=ON - -DUSE_SYSTEM_PYBIND11=ON - -DUSE_SYSTEM_SLEEF=ON - -DUSE_SYSTEM_XNNPACK=$(usex xnnpack) - -DUSE_TENSORPIPE=$(usex distributed) - -DUSE_UCC=OFF - -DUSE_VALGRIND=OFF - -DUSE_XNNPACK=$(usex xnnpack) - -DUSE_XPU=OFF - -Wno-dev - ) - - if use mkl; then - mycmakeargs+=(-DBLAS=MKL) - elif use openblas; then - mycmakeargs+=(-DBLAS=OpenBLAS) - else - mycmakeargs+=(-DBLAS=Generic -DBLAS_LIBRARIES=) - fi - - if use cuda; then - addpredict "/dev/nvidiactl" # bug 867706 - addpredict "/dev/char" - addpredict "/proc/self/task" # bug 926116 - - mycmakeargs+=( - -DUSE_CUDNN=ON - -DTORCH_CUDA_ARCH_LIST="${TORCH_CUDA_ARCH_LIST:-3.5 7.0}" - -DUSE_NCCL=OFF # TODO: NVIDIA Collective Communication Library - -DCMAKE_CUDA_FLAGS="$(cuda_gccdir -f | tr -d \")" - ) - elif use rocm; then - export PYTORCH_ROCM_ARCH="$(get_amdgpu_flags)" - - mycmakeargs+=( - -DUSE_NCCL=ON - -DUSE_SYSTEM_NCCL=ON - ) - - # ROCm libraries produce too much warnings - append-cxxflags -Wno-deprecated-declarations -Wno-unused-result - - if tc-is-clang; then - # fix mangling in LLVM: https://github.com/llvm/llvm-project/issues/85656 - append-cxxflags -fclang-abi-compat=17 - fi - fi - - if use onednn; then - mycmakeargs+=( - -DMKLDNN_FOUND=ON - -DMKLDNN_LIBRARIES=dnnl - -DMKLDNN_INCLUDE_DIR="${ESYSROOT}/usr/include/oneapi/dnnl" - ) - fi - - cmake_src_configure -} - -src_compile() { - PYTORCH_BUILD_VERSION=${PV} \ - PYTORCH_BUILD_NUMBER=0 \ - cmake_src_compile -} - -python_install() { - python_domodule python/torch - mkdir "${D}"$(python_get_sitedir)/torch/bin || die - mkdir "${D}"$(python_get_sitedir)/torch/lib || die - mkdir "${D}"$(python_get_sitedir)/torch/include || die - ln -s ../../../../../include/torch \ - "${D}$(python_get_sitedir)"/torch/include/torch || die # bug 923269 - ln -s ../../../../../bin/torch_shm_manager \ - "${D}"/$(python_get_sitedir)/torch/bin/torch_shm_manager || die - ln -s ../../../../../$(get_libdir)/libtorch_global_deps.so \ - "${D}"/$(python_get_sitedir)/torch/lib/libtorch_global_deps.so || die -} - -src_install() { - cmake_src_install - - # Used by pytorch ebuild - insinto "/var/lib/${PN}" - doins "${BUILD_DIR}"/CMakeCache.txt - dostrip -x /var/lib/${PN}/functorch.so - - rm -rf python - mkdir -p python/torch || die - cp torch/version.py python/torch/ || die - python_install -} diff --git a/sci-ml/caffe2/caffe2-2.6.0-r3.ebuild b/sci-ml/caffe2/caffe2-2.6.0-r3.ebuild new file mode 100644 index 000000000000..37c752237aa1 --- /dev/null +++ b/sci-ml/caffe2/caffe2-2.6.0-r3.ebuild @@ -0,0 +1,343 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +ROCM_VERSION=6.1 +inherit python-single-r1 cmake cuda flag-o-matic prefix rocm toolchain-funcs + +MYPN=pytorch +MYP=${MYPN}-${PV} + +# caffe2-2.6.0 depends on future version of composable kernel +# TODO: replace it with RDEPEND in the future +CK_COMMIT=50ee4267e27b875d149e642f4cebd47be1dc3b57 +CK_P=composable_kernel-${CK_COMMIT:0:8} + +DESCRIPTION="A deep learning framework" +HOMEPAGE="https://pytorch.org/" +SRC_URI=" + https://github.com/pytorch/${MYPN}/archive/refs/tags/v${PV}.tar.gz -> ${MYP}.tar.gz + rocm? ( https://github.com/ROCm/composable_kernel/archive/${CK_COMMIT}.tar.gz -> ${CK_P}.tar.gz ) +" + +S="${WORKDIR}"/${MYP} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" +IUSE="cuda distributed fbgemm flash gloo memefficient mkl mpi nnpack +numpy + onednn openblas opencl openmp qnnpack rocm xnnpack" +RESTRICT="test" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + mpi? ( distributed ) + gloo? ( distributed ) + ?? ( cuda rocm ) + rocm? ( + || ( ${ROCM_REQUIRED_USE} ) + !flash + ) +" + +RDEPEND=" + ${PYTHON_DEPS} + dev-cpp/abseil-cpp:= + dev-cpp/gflags:= + >=dev-cpp/glog-0.5.0 + dev-cpp/nlohmann_json + dev-cpp/opentelemetry-cpp + dev-libs/cpuinfo + dev-libs/libfmt:= + dev-libs/protobuf:= + dev-libs/pthreadpool + dev-libs/sleef + virtual/lapack + sci-ml/foxi + sci-ml/onnx + cuda? ( + dev-libs/cudnn + >=dev-libs/cudnn-frontend-1.0.3:0/8 + dev-util/nvidia-cuda-toolkit:=[profiler] + ) + fbgemm? ( sci-ml/FBGEMM ) + gloo? ( sci-ml/gloo[cuda?] ) + mpi? ( virtual/mpi ) + nnpack? ( sci-ml/NNPACK ) + numpy? ( $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ') ) + onednn? ( =sci-ml/oneDNN-3.5* ) + opencl? ( virtual/opencl ) + qnnpack? ( + !sci-libs/QNNPACK + sci-ml/gemmlowp + ) + rocm? ( + >=dev-libs/rccl-6.1 =dev-util/hip-6.1 =dev-util/roctracer-6.1 =sci-libs/hipBLAS-6.1 =sci-libs/hipBLASLt-6.1 =sci-libs/hipCUB-6.1 =sci-libs/hipFFT-6.1 =sci-libs/hipRAND-6.1 =sci-libs/hipSOLVER-6.1 =sci-libs/hipSPARSE-6.1 =sci-libs/miopen-6.1 =sci-libs/rocPRIM-6.1 =sci-libs/rocThrust-6.1 =18) need abi-compat=17. + # But systemwide clang>=18 + hipcc (>=llvm-18) need opposite! + # See also: https://github.com/llvm/llvm-project/issues/102443#issuecomment-2329726287 + sed '/-fclang-abi-compat=17/d' -i cmake/Dependencies.cmake || die + fi + + # Workaround for libc++ issue https://github.com/llvm/llvm-project/issues/100802 + sed 's/std::memcpy/memcpy/g' -i c10/util/Half.h || die + + ebegin "HIPifying cuda sources" + ${EPYTHON} tools/amd_build/build_amd.py || die + eend $? + fi +} + +src_configure() { + if use cuda && [[ -z ${TORCH_CUDA_ARCH_LIST} ]]; then + ewarn "WARNING: caffe2 is being built with its default CUDA compute capabilities: 3.5 and 7.0." + ewarn "These may not be optimal for your GPU." + ewarn "" + ewarn "To configure caffe2 with the CUDA compute capability that is optimal for your GPU," + ewarn "set TORCH_CUDA_ARCH_LIST in your make.conf, and re-emerge caffe2." + ewarn "For example, to use CUDA capability 7.5 & 3.5, add: TORCH_CUDA_ARCH_LIST=7.5 3.5" + ewarn "For a Maxwell model GPU, an example value would be: TORCH_CUDA_ARCH_LIST=Maxwell" + ewarn "" + ewarn "You can look up your GPU's CUDA compute capability at https://developer.nvidia.com/cuda-gpus" + ewarn "or by running /opt/cuda/extras/demo_suite/deviceQuery | grep 'CUDA Capability'" + fi + + local mycmakeargs=( + -DBUILD_CUSTOM_PROTOBUF=OFF + -DLIBSHM_INSTALL_LIB_SUBDIR="${EPREFIX}"/usr/$(get_libdir) + -DPython_EXECUTABLE="${PYTHON}" + -DTORCH_INSTALL_LIB_DIR="${EPREFIX}"/usr/$(get_libdir) + -DUSE_CCACHE=OFF + -DUSE_CUDA=$(usex cuda) + -DUSE_DISTRIBUTED=$(usex distributed) + -DUSE_FAKELOWP=OFF + -DUSE_FBGEMM=$(usex fbgemm) + -DUSE_FLASH_ATTENTION=$(usex flash) + -DUSE_GFLAGS=ON + -DUSE_GLOG=ON + -DUSE_GLOO=$(usex gloo) + -DUSE_ITT=OFF + -DUSE_KINETO=OFF # TODO + -DUSE_MAGMA=OFF # TODO: In GURU as sci-libs/magma + -DUSE_MEM_EFF_ATTENTION=$(usex memefficient) + -DUSE_MKLDNN=$(usex onednn) + -DUSE_MPI=$(usex mpi) + -DUSE_NCCL=OFF + -DUSE_NNPACK=$(usex nnpack) + -DUSE_NUMA=OFF + -DUSE_NUMPY=$(usex numpy) + -DUSE_OPENCL=$(usex opencl) + -DUSE_OPENMP=$(usex openmp) + -DUSE_PYTORCH_QNNPACK=$(usex qnnpack) + -DUSE_PYTORCH_METAL=OFF + -DUSE_ROCM=$(usex rocm) + -DUSE_SYSTEM_CPUINFO=ON + -DUSE_SYSTEM_EIGEN_INSTALL=ON + -DUSE_SYSTEM_FP16=ON + -DUSE_SYSTEM_FXDIV=ON + -DUSE_SYSTEM_GLOO=ON + -DUSE_SYSTEM_ONNX=ON + -DUSE_SYSTEM_PSIMD=ON + -DUSE_SYSTEM_PSIMD=ON + -DUSE_SYSTEM_PTHREADPOOL=ON + -DUSE_SYSTEM_PYBIND11=ON + -DUSE_SYSTEM_SLEEF=ON + -DUSE_SYSTEM_XNNPACK=$(usex xnnpack) + -DUSE_TENSORPIPE=$(usex distributed) + -DUSE_UCC=OFF + -DUSE_VALGRIND=OFF + -DUSE_XNNPACK=$(usex xnnpack) + -DUSE_XPU=OFF + -Wno-dev + ) + + if use mkl; then + mycmakeargs+=(-DBLAS=MKL) + elif use openblas; then + mycmakeargs+=(-DBLAS=OpenBLAS) + else + mycmakeargs+=(-DBLAS=Generic -DBLAS_LIBRARIES=) + fi + + if use cuda; then + addpredict "/dev/nvidiactl" # bug 867706 + addpredict "/dev/char" + addpredict "/proc/self/task" # bug 926116 + + mycmakeargs+=( + -DUSE_CUDNN=ON + -DTORCH_CUDA_ARCH_LIST="${TORCH_CUDA_ARCH_LIST:-3.5 7.0}" + -DUSE_NCCL=OFF # TODO: NVIDIA Collective Communication Library + -DCMAKE_CUDA_FLAGS="$(cuda_gccdir -f | tr -d \")" + ) + elif use rocm; then + export PYTORCH_ROCM_ARCH="$(get_amdgpu_flags)" + + mycmakeargs+=( + -DUSE_NCCL=ON + -DUSE_SYSTEM_NCCL=ON + -DCMAKE_REQUIRE_FIND_PACKAGE_HIP=ON + ) + + # ROCm libraries produce too much warnings + append-cxxflags -Wno-deprecated-declarations -Wno-unused-result + fi + + if use onednn; then + mycmakeargs+=( + -DMKLDNN_FOUND=ON + -DMKLDNN_LIBRARIES=dnnl + -DMKLDNN_INCLUDE_DIR="${ESYSROOT}/usr/include/oneapi/dnnl" + ) + fi + + cmake_src_configure +} + +src_compile() { + PYTORCH_BUILD_VERSION=${PV} \ + PYTORCH_BUILD_NUMBER=0 \ + cmake_src_compile +} + +python_install() { + python_domodule python/torch + mkdir "${D}"$(python_get_sitedir)/torch/bin || die + mkdir "${D}"$(python_get_sitedir)/torch/lib || die + mkdir "${D}"$(python_get_sitedir)/torch/include || die + ln -s ../../../../../include/torch \ + "${D}$(python_get_sitedir)"/torch/include/torch || die # bug 923269 + ln -s ../../../../../bin/torch_shm_manager \ + "${D}"/$(python_get_sitedir)/torch/bin/torch_shm_manager || die + ln -s ../../../../../$(get_libdir)/libtorch_global_deps.so \ + "${D}"/$(python_get_sitedir)/torch/lib/libtorch_global_deps.so || die +} + +src_install() { + cmake_src_install + + # Used by pytorch ebuild + insinto "/var/lib/${PN}" + doins "${BUILD_DIR}"/CMakeCache.txt + dostrip -x /var/lib/${PN}/functorch.so + + rm -rf python + mkdir -p python/torch || die + cp torch/version.py python/torch/ || die + python_install +} diff --git a/sci-ml/caffe2/files/caffe2-2.6.0-rocm-fix-std-cpp17.patch b/sci-ml/caffe2/files/caffe2-2.6.0-rocm-fix-std-cpp17.patch new file mode 100644 index 000000000000..1b8084ac187f --- /dev/null +++ b/sci-ml/caffe2/files/caffe2-2.6.0-rocm-fix-std-cpp17.patch @@ -0,0 +1,50 @@ +Fix for CXX=clang USE=rocm error: invalid argument '-std=c++17' not allowed with 'C' +https://github.com/pytorch/pytorch/issues/103222 +--- a/c10/hip/CMakeLists.txt ++++ b/c10/hip/CMakeLists.txt +@@ -36,6 +36,7 @@ if(NOT BUILD_LIBTORCHLESS) + + # Propagate HIP_CXX_FLAGS that were set from Dependencies.cmake + target_compile_options(c10_hip PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(c10_hip PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + + # caffe2_hip adds a bunch of dependencies like rocsparse, but c10/hip is supposed to be + # minimal. I'm not sure if we need hip_hcc or not; for now leave it out +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -1684,6 +1684,7 @@ if(USE_ROCM) + + # Since PyTorch files contain HIP headers, these flags are required for the necessary definitions to be added. + target_compile_options(torch_hip PUBLIC ${HIP_CXX_FLAGS}) # experiment ++ set_target_properties(torch_hip PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + + target_link_libraries(torch_hip PUBLIC c10_hip) + +@@ -1886,6 +1887,7 @@ if(BUILD_TEST) + target_include_directories(${test_name} PRIVATE $) + target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE}) + target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + add_test(NAME ${test_name} COMMAND $) + if(INSTALL_TEST) + set_target_properties(${test_name} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${_rpath_portable_origin}/../lib") +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -1043,7 +1043,6 @@ if(USE_ROCM) + list(APPEND HIP_CXX_FLAGS -Wno-duplicate-decl-specifier) + list(APPEND HIP_CXX_FLAGS -DCAFFE2_USE_MIOPEN) + list(APPEND HIP_CXX_FLAGS -DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_HIP) +- list(APPEND HIP_CXX_FLAGS -std=c++17) + list(APPEND HIP_CXX_FLAGS -DHIPBLAS_V2) + if(HIP_NEW_TYPE_ENUMS) + list(APPEND HIP_CXX_FLAGS -DHIP_NEW_TYPE_ENUMS) +--- a/cmake/public/utils.cmake ++++ b/cmake/public/utils.cmake +@@ -267,6 +267,7 @@ function(caffe2_hip_binary_target target_name_or_src) + caffe2_binary_target(${target_name_or_src}) + + target_compile_options(${__target} PRIVATE ${HIP_CXX_FLAGS}) ++ set_target_properties(${__target} PROPERTIES CXX_STANDARD 17 CXX_EXTENSIONS OFF) + target_include_directories(${__target} PRIVATE ${Caffe2_HIP_INCLUDE}) + endfunction() + -- cgit v1.2.3