From 2e638dfc85a2338ae475f804d0e7aac08de8faff Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Thu, 26 Mar 2020 13:21:59 -0700 Subject: [PATCH 01/12] 32 to 64 bit toolchain --- ci/build_windows.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 2590d211c671..45ca8ab9608b 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -154,7 +154,7 @@ def windows_build(args): with remember_cwd(): os.chdir(path) - cmd = "\"{}\" && {} -G \"NMake Makefiles JOM\" {} {}".format( + cmd = "\"{}\" && {} -A x64 -T host=x64 -G \"NMake Makefiles JOM\" {} {}".format( args.vcvars, os.path.join(tmpdir, 'cmake-3.16.1-win64-x64', 'bin', 'cmake.exe'), CMAKE_FLAGS[args.flavour], mxnet_root) From 10b82f82b6305503cd9583198a3bda7ad4896372 Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Thu, 26 Mar 2020 13:28:37 -0700 Subject: [PATCH 02/12] Removing jom --- ci/build_windows.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 45ca8ab9608b..e69a058f2c63 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -154,15 +154,15 @@ def windows_build(args): with remember_cwd(): os.chdir(path) - cmd = "\"{}\" && {} -A x64 -T host=x64 -G \"NMake Makefiles JOM\" {} {}".format( + cmd = "\"{}\" && {} -A x64 -T host=x64 {} {}".format( args.vcvars, os.path.join(tmpdir, 'cmake-3.16.1-win64-x64', 'bin', 'cmake.exe'), CMAKE_FLAGS[args.flavour], mxnet_root) logging.info("Generating project with CMake:\n{}".format(cmd)) check_call(cmd, shell=True) - cmd = "\"{}\" && jom".format(args.vcvars) - logging.info("Building with jom:\n{}".format(cmd)) + cmd = "\"{}\" && cmake --build".format(args.vcvars) + logging.info("Building:\n{}".format(cmd)) t0 = int(time.time()) check_call(cmd, shell=True) From 0f7b5f12b85fc93212be6d93caee617d55e2dedb Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Thu, 26 Mar 2020 13:52:26 -0700 Subject: [PATCH 03/12] Update build_windows.py --- ci/build_windows.py | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index e69a058f2c63..5d2d7f958480 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -54,10 +54,14 @@ class BuildFlavour(Enum): CMAKE_FLAGS = { 'WIN_CPU': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=OFF ' '-DUSE_CUDNN=OFF ' '-DENABLE_CUDA_RTC=OFF ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=open ' '-DUSE_LAPACK=ON ' @@ -67,10 +71,14 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_CPU_MKLDNN': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=OFF ' '-DUSE_CUDNN=OFF ' '-DENABLE_CUDA_RTC=OFF ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=open ' '-DUSE_LAPACK=ON ' @@ -80,10 +88,14 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_CPU_MKLDNN_MKL': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=OFF ' '-DUSE_CUDNN=OFF ' '-DENABLE_CUDA_RTC=OFF ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=mkl ' '-DUSE_LAPACK=ON ' @@ -93,10 +105,14 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_CPU_MKL': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=OFF ' '-DUSE_CUDNN=OFF ' '-DENABLE_CUDA_RTC=OFF ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=mkl ' '-DUSE_LAPACK=ON ' @@ -106,10 +122,14 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=ON ' '-DUSE_CUDNN=ON ' '-DENABLE_CUDA_RTC=ON ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=open ' '-DUSE_LAPACK=ON ' @@ -120,10 +140,14 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU_MKLDNN': ( + '-DCMAKE_C_COMPILER=cl ' + '-DCMAKE_CXX_COMPILER=cl ' + '-DOpenCV_RUNTIME=vc15 ' + '-DOpenCV_ARCH=x64 ' '-DUSE_CUDA=ON ' '-DUSE_CUDNN=ON ' '-DENABLE_CUDA_RTC=ON ' - '-DUSE_OPENCV=ON ' + '-DUSE_OPENCV=OFF ' '-DUSE_OPENMP=ON ' '-DUSE_BLAS=open ' '-DUSE_LAPACK=ON ' From 91c14fd158cd1fbd36f263aa4097ccfb8c31982d Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Thu, 26 Mar 2020 14:07:03 -0700 Subject: [PATCH 04/12] Update build_windows.py --- ci/build_windows.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 5d2d7f958480..b54984b2407e 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -185,7 +185,7 @@ def windows_build(args): logging.info("Generating project with CMake:\n{}".format(cmd)) check_call(cmd, shell=True) - cmd = "\"{}\" && cmake --build".format(args.vcvars) + cmd = "\"{}\" && cmake --build .".format(args.vcvars) logging.info("Building:\n{}".format(cmd)) t0 = int(time.time()) From 3063167939d4bc28038ff4d8a4b7b5fe2b49d03e Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Thu, 26 Mar 2020 17:42:15 -0700 Subject: [PATCH 05/12] check if split arch resolves linking errors --- ci/build_windows.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/build_windows.py b/ci/build_windows.py index b54984b2407e..8e4ca6a26aff 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -122,6 +122,7 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU': ( + '-DUSE_SPLIT_ARCH_DLL=OFF ' '-DCMAKE_C_COMPILER=cl ' '-DCMAKE_CXX_COMPILER=cl ' '-DOpenCV_RUNTIME=vc15 ' @@ -140,6 +141,7 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU_MKLDNN': ( + '-DUSE_SPLIT_ARCH_DLL=OFF ' '-DCMAKE_C_COMPILER=cl ' '-DCMAKE_CXX_COMPILER=cl ' '-DOpenCV_RUNTIME=vc15 ' From f8e1f43c589510103863d795388b29de3b8de4d9 Mon Sep 17 00:00:00 2001 From: ChaiBapchya Date: Fri, 27 Mar 2020 01:11:13 +0000 Subject: [PATCH 06/12] Revert "check if split arch resolves linking errors" This reverts commit 3063167939d4bc28038ff4d8a4b7b5fe2b49d03e. --- ci/build_windows.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 8e4ca6a26aff..b54984b2407e 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -122,7 +122,6 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU': ( - '-DUSE_SPLIT_ARCH_DLL=OFF ' '-DCMAKE_C_COMPILER=cl ' '-DCMAKE_CXX_COMPILER=cl ' '-DOpenCV_RUNTIME=vc15 ' @@ -141,7 +140,6 @@ class BuildFlavour(Enum): '-DCMAKE_BUILD_TYPE=Release') , 'WIN_GPU_MKLDNN': ( - '-DUSE_SPLIT_ARCH_DLL=OFF ' '-DCMAKE_C_COMPILER=cl ' '-DCMAKE_CXX_COMPILER=cl ' '-DOpenCV_RUNTIME=vc15 ' From 4d70698c0ce777fa03dec0bc19f6298778a2542c Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Fri, 27 Mar 2020 14:09:05 -0700 Subject: [PATCH 07/12] Update build_windows.py --- ci/build_windows.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index b54984b2407e..3b4e71a8d0ea 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -37,9 +37,14 @@ from util import * +# Fix for broken PATH with newline inserted presumably by VS studio installation of SQL server or + # other component which makes visual studio stop working. + os.environ['PATH']=os.environ.get('PATH').replace('\n','') + KNOWN_VCVARS = { 'VS 2015': r'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat', - 'VS 2017': r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat' + 'VS 2017': r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat + 'VS 2019': r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat' } @@ -257,7 +262,7 @@ def main(): parser.add_argument("--vcvars", help="vcvars batch file location, typically inside vs studio install dir", - default=KNOWN_VCVARS['VS 2015'], + default=KNOWN_VCVARS['VS 2019'], type=str) parser.add_argument("--arch", From 0c929299b20c53a9e42957c45746836da532cf53 Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Fri, 27 Mar 2020 14:09:30 -0700 Subject: [PATCH 08/12] Update build_windows.py --- ci/build_windows.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 3b4e71a8d0ea..79683c4e2a3d 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -43,7 +43,7 @@ KNOWN_VCVARS = { 'VS 2015': r'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat', - 'VS 2017': r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat + 'VS 2017': r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat', 'VS 2019': r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat' } From 921e70f4ccb68d401b58105e11fdf65790ccbf73 Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Fri, 27 Mar 2020 14:21:10 -0700 Subject: [PATCH 09/12] indent fix --- ci/build_windows.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 79683c4e2a3d..1021c80cd4ea 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -38,8 +38,8 @@ from util import * # Fix for broken PATH with newline inserted presumably by VS studio installation of SQL server or - # other component which makes visual studio stop working. - os.environ['PATH']=os.environ.get('PATH').replace('\n','') +# other component which makes visual studio stop working. +os.environ['PATH']=os.environ.get('PATH').replace('\n','') KNOWN_VCVARS = { 'VS 2015': r'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat', From 0ae231118d1184d7eac570cc66c2d8e4c7f36309 Mon Sep 17 00:00:00 2001 From: ChaiBapchya Date: Fri, 27 Mar 2020 21:54:15 +0000 Subject: [PATCH 10/12] Update dmlc-core to include VS2019 fix --- 3rdparty/dmlc-core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty/dmlc-core b/3rdparty/dmlc-core index c8f7f9c81dfc..14bf7e884328 160000 --- a/3rdparty/dmlc-core +++ b/3rdparty/dmlc-core @@ -1 +1 @@ -Subproject commit c8f7f9c81dfcf2489d3bbc6d3b2a9200a20fbcde +Subproject commit 14bf7e884328eb97bfde160ec6f64c20f5337459 From a367cb843fe9d384319ddc2b59948b808e2799ec Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Sat, 28 Mar 2020 02:05:19 -0700 Subject: [PATCH 11/12] Change bat file from x86_64 to 64 --- ci/build_windows.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 1021c80cd4ea..32dd027f5d33 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -44,7 +44,7 @@ KNOWN_VCVARS = { 'VS 2015': r'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat', 'VS 2017': r'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat', - 'VS 2019': r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat' + 'VS 2019': r'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat' } From 88e63f1cf64b2c894f336769d75d23ec166bb980 Mon Sep 17 00:00:00 2001 From: Chaitanya Prakash Bapat Date: Sat, 28 Mar 2020 03:18:50 -0700 Subject: [PATCH 12/12] try with ninja --- ci/build_windows.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/build_windows.py b/ci/build_windows.py index 32dd027f5d33..b5ede4c5eca7 100755 --- a/ci/build_windows.py +++ b/ci/build_windows.py @@ -183,14 +183,14 @@ def windows_build(args): with remember_cwd(): os.chdir(path) - cmd = "\"{}\" && {} -A x64 -T host=x64 {} {}".format( + cmd = "\"{}\" && {} -G Ninja -A x64 -T host=x64 {} {}".format( args.vcvars, os.path.join(tmpdir, 'cmake-3.16.1-win64-x64', 'bin', 'cmake.exe'), CMAKE_FLAGS[args.flavour], mxnet_root) logging.info("Generating project with CMake:\n{}".format(cmd)) check_call(cmd, shell=True) - cmd = "\"{}\" && cmake --build .".format(args.vcvars) + cmd = "\"{}\" && ninja".format(args.vcvars) logging.info("Building:\n{}".format(cmd)) t0 = int(time.time())