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 | |||
2: install visual studio 2019 Enterprise (Windows GUI) | |||
* 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 | |||
choose version < 14.28.29910 | |||
* 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) | |||
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 | |||
@@ -52,21 +51,21 @@ | |||
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-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 | |||
* 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 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: "LLVM_PATH", value: "C:\Program Files\LLVM_12_0_1" | |||
* append "Path" env value | |||
C:\Program Files\Git\cmd | |||
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\libnvvp | |||
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 | |||
@@ -161,7 +161,7 @@ function prepare_env_for_windows_build() { | |||
fi | |||
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 | |||
# path at the head of PATH, and check the valid | |||
echo "check cmake install..." | |||
@@ -176,14 +176,22 @@ function prepare_env_for_windows_build() { | |||
fi | |||
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` | |||
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 | |||
else | |||
echo "clang-cl valid ..." | |||
fi | |||
echo "check Ninja install..." | |||
@@ -16,8 +16,10 @@ function err_env() { | |||
function append_path_env_and_check() { | |||
echo "export vs2019 install path" | |||
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 | |||
export PATH=$VS_PATH/VC/Tools/Llvm/bin/:$PATH | |||
export PATH=${LLVM_PATH}/bin/:$PATH | |||
} | |||
append_path_env_and_check | |||
@@ -12,5 +12,10 @@ install (TARGETS load_and_run EXPORT ${MGE_EXPORT_TARGETS} RUNTIME DESTINATION $ | |||
if(MGE_WITH_TEST) | |||
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() |
@@ -197,33 +197,37 @@ endif() | |||
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() | |||
# 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} | |||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | |||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |||
endif() | |||
if (NOT MGE_WITH_DISTRIBUTED) | |||
install(TARGETS megbrain | |||