diff --git a/.github/actions/deploy-windows/action.yml b/.github/actions/deploy-windows/action.yml index 8ebe1055cd0..ba18df8f681 100644 --- a/.github/actions/deploy-windows/action.yml +++ b/.github/actions/deploy-windows/action.yml @@ -29,9 +29,9 @@ runs: rm "C:/msys64/mingw32/bin/clang-cl.exe" "C:/msys64/mingw64/bin/clang-cl.exe" "C:/msys64/mingw32/bin/cmake.exe" "C:/msys64/mingw64/bin/cmake.exe" rm "C:/Strawberry/c/lib/libz.a" "C:/Strawberry/c/lib/libzlib.a" "C:/Strawberry/c/lib/libzdll.a" "C:/Strawberry/c/bin/cmake.exe" - curl -LO https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-win64-x64.msi - msiexec /i cmake-3.26.4-win64-x64.msi /qn - rm cmake-3.26.4-win64-x64.msi + rem curl -LO https://github.com/Kitware/CMake/releases/download/v3.30.0-rc3/cmake-3.30.0-rc3-win64-x64.msi + rem msiexec /i cmake-3.30.0-rc3-win64-x64.msi /qn + rem rm cmake-3.30.0-rc3-win64-x64.msi curl -LO https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz bash -c "tar -xzf apache-maven-3.6.3-bin.tar.gz -C 'C:/Program Files/'" @@ -159,10 +159,15 @@ runs: move TensorRT-10.0.1.6 "%ProgramFiles%\NVIDIA GPU Computing Toolkit\TensorRT" ) - if "%CI_DEPLOY_MODULE%"=="mkl" ( + if not "%CI_DEPLOY_NEED_MKL%"=="" ( echo Installing MKL - curl -LO https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b5a4ff98-2c98-4b28-87f7-32082cac359e/w_onemkl_p_2024.0.0.49672_offline.exe - w_onemkl_p_2024.0.0.49672_offline.exe -s -a -s --eula accept + if "%CI_DEPLOY_NEED_MKL%"=="2022" ( + curl -LO https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18899/w_onemkl_p_2022.2.0.9563_offline.exe + w_onemkl_p_2022.2.0.9563_offline.exe -s -a -s --eula accept + ) else ( + curl -LO https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b5a4ff98-2c98-4b28-87f7-32082cac359e/w_onemkl_p_2024.0.0.49672_offline.exe + w_onemkl_p_2024.0.0.49672_offline.exe -s -a -s --eula accept + ) ) if "%CI_DEPLOY_PLATFORM%"=="windows-x86" if "%CI_DEPLOY_MODULE%"=="flycapture" ( diff --git a/.github/workflows/mkl.yml b/.github/workflows/mkl.yml index 9008cb80383..e438efe8133 100644 --- a/.github/workflows/mkl.yml +++ b/.github/workflows/mkl.yml @@ -16,6 +16,7 @@ env: CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} STAGING_REPOSITORY: ${{ secrets.STAGING_REPOSITORY }} + CI_DEPLOY_NEED_MKL: 1 jobs: # linux-x86: # runs-on: ubuntu-20.04 diff --git a/pytorch/cppbuild.sh b/pytorch/cppbuild.sh index 9371111b254..58d45e01765 100755 --- a/pytorch/cppbuild.sh +++ b/pytorch/cppbuild.sh @@ -61,8 +61,13 @@ if [[ $PLATFORM == windows* ]]; then cmake --build . --config Release cmake --install . --config Release --prefix ../dist cd ../.. + + #nuget install intelopenmp.devel.win -Version 2024.1.0.964 + #export CMAKE_INCLUDE_PATH=${INSTALL_PATH}/intelopenmp.devel.win.2024.1.0.964/build/native/include + #export CMAKE_LIBRARY_PATH="${INSTALL_PATH}/intelopenmp.devel.win.2024.1.0.964/build/native/win-x64;${INSTALL_PATH}/intelopenmp.redist.win.2024.1.0.964/runtimes/win-x64/native" + fi - export libuv_ROOT=`pwd`/libuv/dist + export libuv_ROOT=${INSTALL_PATH}/libuv/dist fi if [[ ! -d pytorch ]]; then @@ -205,9 +210,23 @@ sedinplace 's/char(\(.*\))/\1/g' torch/csrc/jit/serialization/pickler.h # some windows header defines a macro named "interface" sedinplace 's/const std::string& interface)/const std::string\& interface_name)/g' torch/csrc/distributed/c10d/ProcessGroupGloo.hpp +if [[ $PLATFORM == windows* ]]; then + # Remove pytorch adaptations of FindOpenMP.cmake that, without iomp and with + # new versions of VS 2019 including -openmp:experimental and libomp, causes + # final binary to be linked to both libomp and vcomp and produce incorrect results. + # Wait for eventual upstream fix, or for cmake 2.30 that allows to choose between -openmp and -openmp:experimental + # and see if choosing experimental works. + rm cmake/Modules/FindOpenMP.cmake + sedinplace 's/include(${CMAKE_CURRENT_LIST_DIR}\/Modules\/FindOpenMP.cmake)/find_package(OpenMP)/g' cmake/Dependencies.cmake +fi + #USE_FBGEMM=0 USE_KINETO=0 USE_GLOO=0 USE_MKLDNN=0 \ "$PYTHON_BIN_PATH" setup.py build +echo "CMAKECACHE" +cat $BUILD_DIR/CMakeCache.txt +cat $BUILD_DIR/CMakeFiles/CMakeConfigureLog.yaml + rm -Rf ../lib if [[ ! -e torch/include/gloo ]]; then ln -sf ../../third_party/gloo/gloo torch/include @@ -216,9 +235,9 @@ ln -sf pytorch/torch/include ../include ln -sf pytorch/torch/lib ../lib ln -sf pytorch/torch/bin ../bin -# fix library with correct rpath on Mac case $PLATFORM in macosx-*) + # fix library with correct rpath cp /usr/local/lib/libomp.dylib ../lib/libiomp5.dylib chmod +w ../lib/libiomp5.dylib install_name_tool -id @rpath/libiomp5.dylib ../lib/libiomp5.dylib diff --git a/pytorch/pom.xml b/pytorch/pom.xml index afaf8fc2cf0..ab121508985 100644 --- a/pytorch/pom.xml +++ b/pytorch/pom.xml @@ -72,9 +72,15 @@ org.bytedeco - openblas-platform + openblas 0.3.27-${project.parent.version} + + org.bytedeco + openblas + 0.3.27-${project.parent.version} + ${javacpp.platform} + org.bytedeco cuda-platform diff --git a/pytorch/src/main/java/org/bytedeco/pytorch/presets/torch.java b/pytorch/src/main/java/org/bytedeco/pytorch/presets/torch.java index 6506990c7cb..49201f0d9fa 100644 --- a/pytorch/src/main/java/org/bytedeco/pytorch/presets/torch.java +++ b/pytorch/src/main/java/org/bytedeco/pytorch/presets/torch.java @@ -86,7 +86,7 @@ }, exclude = {"openblas_config.h", "cblas.h", "lapacke_config.h", "lapacke_mangling.h", "lapack.h", "lapacke.h", "lapacke_utils.h"}, link = {"c10", "torch_cpu", "torch"}, - preload = {"gomp@.1", "iomp5", "omp", "tbb@.2", "asmjit", "fbgemm", "uv"} + preload = {"gomp@.1", "iomp5", "omp", "tbb@.2", "asmjit", "fbgemm", "uv", "iomp5md"} ), @Platform( value = {"linux", "macosx", "windows"},