lastest 12.0.1, for fit cutlass upgrade
GitOrigin-RevId: 23b9d779df
tags/v1.6.0-rc1
| @@ -24,17 +24,16 @@ | |||||
| * install to default dir: /c/Program\ Files/Git | * install to default dir: /c/Program\ Files/Git | ||||
| 2: install visual studio 2019 Enterprise (Windows GUI) | 2: install visual studio 2019 Enterprise (Windows GUI) | ||||
| * download install exe from https://visualstudio.microsoft.com | * download install exe from https://visualstudio.microsoft.com | ||||
| * choose "c++ develop" -> choose cmake/MSVC/clang/cmake/windows-sdk when install | |||||
| * choose "c++ develop" -> choose cmake/MSVC/cmake/windows-sdk when install | |||||
| * NOTICE: windows sdk version >=14.28.29910 do not compat with CUDA 10.1, please | * NOTICE: windows sdk version >=14.28.29910 do not compat with CUDA 10.1, please | ||||
| choose version < 14.28.29910 | choose version < 14.28.29910 | ||||
| * then install choosed components | * then install choosed components | ||||
| * after install visual studio 2019 Enterprise, time to replace lld-link.exe | |||||
| caused by visual studio 2019 lld-link.exe have crash issue | |||||
| download office exe from https://releases.llvm.org/download.html | |||||
| install to default: C:\Program Files\LLVM | |||||
| cd "/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/Llvm/bin" | |||||
| cp /c/Program\ Files/LLVM/bin/lld-link.exe lld-link.exe | |||||
| 3: install python3 (Windows GUI) | |||||
| 3: install LLVM from https://releases.llvm.org/download.html (Windows GUI) | |||||
| * llvm install by Visual Studio have some issue, eg, link crash on large project, please use official version | |||||
| * download install exe from https://releases.llvm.org/download.html | |||||
| * our ci use LLVM 12.0.1, if u install other version, please modify LLVM_PATH | |||||
| * install 12.0.1 to /c/Program\ Files/LLVM_12_0_1 | |||||
| 4: install python3 (Windows GUI) | |||||
| * download python 64-bit install exe (we support python3.5-python3.8 now) | * download python 64-bit install exe (we support python3.5-python3.8 now) | ||||
| https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe | https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe | ||||
| https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.exe | https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.exe | ||||
| @@ -52,21 +51,21 @@ | |||||
| python3.exe -m pip install --upgrade pip | python3.exe -m pip install --upgrade pip | ||||
| python3.exe -m pip install -r imperative/python/requires.txt | python3.exe -m pip install -r imperative/python/requires.txt | ||||
| python3.exe -m pip install -r imperative/python/requires-test.txt | python3.exe -m pip install -r imperative/python/requires-test.txt | ||||
| 4: install cuda components (Windows GUI) | |||||
| 5: install cuda components (Windows GUI) | |||||
| * now we support cuda10.1+cudnn7.6+TensorRT6.0 on Windows | * now we support cuda10.1+cudnn7.6+TensorRT6.0 on Windows | ||||
| * install cuda10.1 to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 | * install cuda10.1 to C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1 | ||||
| * install cudnn7.6 to C:\Program Files\NVIDIA GPU Computing Toolkit\cudnn-10.1-windows10-x64-v7.6.5.32 | * install cudnn7.6 to C:\Program Files\NVIDIA GPU Computing Toolkit\cudnn-10.1-windows10-x64-v7.6.5.32 | ||||
| * install TensorRT6.0 to C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-6.0.1.5 | * install TensorRT6.0 to C:\Program Files\NVIDIA GPU Computing Toolkit\TensorRT-6.0.1.5 | ||||
| 5: edit system env variables (Windows GUI) | |||||
| 6: edit system env variables (Windows GUI) | |||||
| * create new key: "VS_PATH", value: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" | * create new key: "VS_PATH", value: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" | ||||
| * create new key: "LLVM_PATH", value: "C:\Program Files\LLVM_12_0_1" | |||||
| * append "Path" env value | * append "Path" env value | ||||
| C:\Program Files\Git\cmd | C:\Program Files\Git\cmd | ||||
| C:\Users\build\mge_whl_python_env\3.8.3 | C:\Users\build\mge_whl_python_env\3.8.3 | ||||
| C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin | C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin | ||||
| C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp | C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\libnvvp | ||||
| C:\Program Files\NVIDIA GPU Computing Toolkit\cudnn-10.1-windows10-x64-v7.6.5.32\cuda\bin | C:\Program Files\NVIDIA GPU Computing Toolkit\cudnn-10.1-windows10-x64-v7.6.5.32\cuda\bin | ||||
| C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\lib\clang\11.0.0\lib\windows | |||||
| C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\lib\clang\11.0.0\lib\windows | |||||
| C:\Program Files\LLVM_12_0_1\lib\clang\12.0.1\lib\windows | |||||
| ``` | ``` | ||||
| ### Linux host build | ### Linux host build | ||||
| @@ -161,7 +161,7 @@ function prepare_env_for_windows_build() { | |||||
| fi | fi | ||||
| echo $VS_PATH | echo $VS_PATH | ||||
| # only use cmake/clang-cl/Ninja install from Visual Studio, if not, may build failed | |||||
| # only use cmake/Ninja install from Visual Studio, if not, may build failed | |||||
| # some user env may install cmake/clang-cl/Ninja at windows-git-bash env, so we put Visual Studio | # some user env may install cmake/clang-cl/Ninja at windows-git-bash env, so we put Visual Studio | ||||
| # path at the head of PATH, and check the valid | # path at the head of PATH, and check the valid | ||||
| echo "check cmake install..." | echo "check cmake install..." | ||||
| @@ -176,14 +176,22 @@ function prepare_env_for_windows_build() { | |||||
| fi | fi | ||||
| echo "check clang-cl install..." | echo "check clang-cl install..." | ||||
| export PATH=$VS_PATH/VC/Tools/Llvm/bin/:$PATH | |||||
| which clang-cl | |||||
| # llvm install by Visual Studio have some issue, eg, link crash on large project, so we | |||||
| # use official LLVM download from https://releases.llvm.org/download.html | |||||
| if [[ -z ${LLVM_PATH} ]];then | |||||
| echo "can not find LLVM_PATH env, pls export you LLVM install dir to LLVM_PATH" | |||||
| echo "examle for export LLVM_12_0_1" | |||||
| echo "export LLVM_PATH=/c/Program\ Files/LLVM_12_0_1" | |||||
| exit -1 | |||||
| fi | |||||
| echo ${LLVM_PATH} | |||||
| export PATH=${LLVM_PATH}/bin/:$PATH | |||||
| clang_loc=`which clang-cl` | clang_loc=`which clang-cl` | ||||
| if [[ $clang_loc =~ "Visual" ]]; then | if [[ $clang_loc =~ "Visual" ]]; then | ||||
| echo "clang-cl valid ..." | |||||
| else | |||||
| echo "clang-cl Invalid: ..." | |||||
| echo "clang-cl Invalid: we do not support use LLVM installed by Visual Studio" | |||||
| windows_env_err | windows_env_err | ||||
| else | |||||
| echo "clang-cl valid ..." | |||||
| fi | fi | ||||
| echo "check Ninja install..." | echo "check Ninja install..." | ||||
| @@ -16,8 +16,10 @@ function err_env() { | |||||
| function append_path_env_and_check() { | function append_path_env_and_check() { | ||||
| echo "export vs2019 install path" | echo "export vs2019 install path" | ||||
| export VS_PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise | export VS_PATH=/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Enterprise | ||||
| echo "export LLVM install path" | |||||
| export LLVM_PATH=/c/Program\ Files/LLVM_12_0_1 | |||||
| # for llvm-strip | # for llvm-strip | ||||
| export PATH=$VS_PATH/VC/Tools/Llvm/bin/:$PATH | |||||
| export PATH=${LLVM_PATH}/bin/:$PATH | |||||
| } | } | ||||
| append_path_env_and_check | append_path_env_and_check | ||||
| @@ -12,5 +12,10 @@ install (TARGETS load_and_run EXPORT ${MGE_EXPORT_TARGETS} RUNTIME DESTINATION $ | |||||
| if(MGE_WITH_TEST) | if(MGE_WITH_TEST) | ||||
| add_executable(json_loader_test test/json_loader_test.cpp src/json_loader.h src/json_loader.cpp) | add_executable(json_loader_test test/json_loader_test.cpp src/json_loader.h src/json_loader.cpp) | ||||
| target_link_libraries (json_loader_test megengine) | |||||
| # Windows does not support implicitly importing data members from DLL. | |||||
| if (WIN32) | |||||
| target_link_libraries (json_loader_test megbrain megdnn ${MGE_CUDA_LIBS}) | |||||
| else() | |||||
| target_link_libraries (json_loader_test megengine) | |||||
| endif() | |||||
| endif() | endif() | ||||
| @@ -197,33 +197,37 @@ endif() | |||||
| set (_VER_FILE ${PROJECT_SOURCE_DIR}/src/version.ld) | set (_VER_FILE ${PROJECT_SOURCE_DIR}/src/version.ld) | ||||
| if(MGE_BUILD_IMPERATIVE_RT | |||||
| ) | |||||
| message(VERBOSE "create a export SHARED lib for python use") | |||||
| add_library(megengine_export SHARED) | |||||
| target_link_libraries(megengine_export PUBLIC megbrain megdnn) | |||||
| target_link_libraries(megengine_export PRIVATE ${MGE_CUDA_LIBS}) | |||||
| if (MGE_WITH_DISTRIBUTED) | |||||
| message(VERBOSE "megengine_export configured to link megray") | |||||
| target_link_libraries(megengine_export PUBLIC megray) | |||||
| # Windows does not support implicitly importing data members from DLL. | |||||
| # on Windows: | |||||
| # depends on megdnn/megbrain target, refs to sdk/load-and-run/CMakeLists.txt | |||||
| # depends on megengine lite_share or lite_static | |||||
| if(NOT WIN32) | |||||
| if(MGE_BUILD_IMPERATIVE_RT | |||||
| ) | |||||
| message(VERBOSE "create a export SHARED lib for python use") | |||||
| add_library(megengine_export SHARED) | |||||
| target_link_libraries(megengine_export PUBLIC megbrain megdnn) | |||||
| target_link_libraries(megengine_export PRIVATE ${MGE_CUDA_LIBS}) | |||||
| if (MGE_WITH_DISTRIBUTED) | |||||
| message(VERBOSE "megengine_export configured to link megray") | |||||
| target_link_libraries(megengine_export PUBLIC megray) | |||||
| endif() | |||||
| endif() | endif() | ||||
| endif() | |||||
| # Build as SHARED or STATIC depending on BUILD_SHARED_LIBS=ON/OFF | |||||
| add_library(megengine) | |||||
| target_link_libraries(megengine PRIVATE ${MGE_CUDA_LIBS}) | |||||
| target_link_libraries(megengine PUBLIC megbrain megdnn) | |||||
| if (UNIX AND NOT APPLE) | |||||
| target_link_options(megengine PRIVATE -Wl,--no-undefined -Wl,--version-script=${_VER_FILE}) | |||||
| set_target_properties(megengine PROPERTIES LINK_DEPENDS ${_VER_FILE}) | |||||
| endif() | |||||
| set_target_properties(megengine PROPERTIES CXX_VISIBILITY_PRESET default) | |||||
| set_target_properties(megengine PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) | |||||
| # Do not export targets if MGE_WITH_DISTRIBUTED is on. MegRay is not ready | |||||
| # for this. | |||||
| install(TARGETS megengine | |||||
| # Build as SHARED or STATIC depending on BUILD_SHARED_LIBS=ON/OFF | |||||
| add_library(megengine) | |||||
| target_link_libraries(megengine PRIVATE ${MGE_CUDA_LIBS}) | |||||
| target_link_libraries(megengine PUBLIC megbrain megdnn) | |||||
| if (UNIX AND NOT APPLE) | |||||
| target_link_options(megengine PRIVATE -Wl,--no-undefined -Wl,--version-script=${_VER_FILE}) | |||||
| set_target_properties(megengine PROPERTIES LINK_DEPENDS ${_VER_FILE}) | |||||
| endif() | |||||
| # Do not export targets if MGE_WITH_DISTRIBUTED is on. MegRay is not ready | |||||
| # for this. | |||||
| install(TARGETS megengine | |||||
| EXPORT ${MGE_EXPORT_TARGETS} | EXPORT ${MGE_EXPORT_TARGETS} | ||||
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
| ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
| endif() | |||||
| if (NOT MGE_WITH_DISTRIBUTED) | if (NOT MGE_WITH_DISTRIBUTED) | ||||
| install(TARGETS megbrain | install(TARGETS megbrain | ||||