You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by tq...@apache.org on 2018/06/03 00:58:53 UTC

[incubator-mxnet] branch master updated: [3rdparty] introduce tvm (#11130)

This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a63114  [3rdparty] introduce tvm (#11130)
2a63114 is described below

commit 2a63114983e947ce308b7bfa35da6e0b398b86d8
Author: Tianqi Chen <tq...@users.noreply.github.com>
AuthorDate: Sat Jun 2 17:58:25 2018 -0700

    [3rdparty] introduce tvm (#11130)
---
 .gitmodules                                 |  6 +++---
 3rdparty/nnvm                               |  1 -
 3rdparty/tvm                                |  1 +
 CMakeLists.txt                              | 28 ++++++++++++++--------------
 Jenkinsfile                                 | 16 ++++++++--------
 LICENSE                                     | 13 +++++--------
 Makefile                                    |  6 +++---
 amalgamation/Makefile                       |  6 +++---
 amalgamation/amalgamation.py                |  4 +---
 amalgamation/prep_nnvm.sh                   |  6 +++---
 cpp-package/example/Makefile                |  6 +++---
 perl-package/AI-NNVMCAPI/Makefile.PL        |  2 +-
 scala-package/native/osx-x86_64-cpu/pom.xml |  2 +-
 13 files changed, 46 insertions(+), 51 deletions(-)

diff --git a/.gitmodules b/.gitmodules
index e10eae2..9aeb1c7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,9 +7,6 @@
 [submodule "3rdparty/ps-lite"]
 	path = 3rdparty/ps-lite
 	url = https://github.com/dmlc/ps-lite
-[submodule "3rdparty/nnvm"]
-	path = 3rdparty/nnvm
-	url = https://github.com/dmlc/nnvm
 [submodule "3rdparty/dlpack"]
 	path = 3rdparty/dlpack
 	url = https://github.com/dmlc/dlpack
@@ -26,3 +23,6 @@
 [submodule "3rdparty/cub"]
 	path = 3rdparty/cub
 	url = https://github.com/dmlc/cub
+[submodule "3rdparty/tvm"]
+	path = 3rdparty/tvm
+	url = https://github.com/dmlc/tvm
diff --git a/3rdparty/nnvm b/3rdparty/nnvm
deleted file mode 160000
index 2bc5144..0000000
--- a/3rdparty/nnvm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2bc5144cd3733fd239287e3560c7db8285d21f02
diff --git a/3rdparty/tvm b/3rdparty/tvm
new file mode 160000
index 0000000..8f80df0
--- /dev/null
+++ b/3rdparty/tvm
@@ -0,0 +1 @@
+Subproject commit 8f80df0c46188cdf227764848d8aba0cba6e8273
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 246ae99..eff36a2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -193,7 +193,7 @@ if(USE_MKLDNN)
   set(WITH_TEST OFF)
   set(WITH_EXAMPLE OFF)
   add_subdirectory(3rdparty/mkldnn)
-  
+
   include_directories(3rdparty/mkldnn/include)
   add_definitions(-DUSE_MKL=1)
   add_definitions(-DCUB_MKL=1)
@@ -261,8 +261,8 @@ endforeach()
 include_directories("include")
 include_directories("3rdparty/mshadow")
 include_directories("3rdparty/cub")
-include_directories("3rdparty/nnvm/include")
-include_directories("3rdparty/nnvm/tvm/include")
+include_directories("3rdparty/tvm/nnvm/include")
+include_directories("3rdparty/tvm/include")
 include_directories("3rdparty/dmlc-core/include")
 include_directories("3rdparty/dlpack/include")
 
@@ -418,13 +418,13 @@ FILE(GLOB_RECURSE CUDA "src/*.cu" "src/*.cuh")
 
 # add nnvm to source
 FILE(GLOB_RECURSE NNVMSOURCE
-  3rdparty/nnvm/src/c_api/*.cc
-  3rdparty/nnvm/src/core/*.cc
-  3rdparty/nnvm/src/pass/*.cc
-  3rdparty/nnvm/src/c_api/*.h
-  3rdparty/nnvm/src/core/*.h
-  3rdparty/nnvm/src/pass/*.h
-  3rdparty/nnvm/include/*.h)
+  3rdparty/tvm/nnvm/src/c_api/*.cc
+  3rdparty/tvm/nnvm/src/core/*.cc
+  3rdparty/tvm/nnvm/src/pass/*.cc
+  3rdparty/tvm/nnvm/src/c_api/*.h
+  3rdparty/tvm/nnvm/src/core/*.h
+  3rdparty/tvm/nnvm/src/pass/*.h
+  3rdparty/tvm/nnvm/include/*.h)
 list(APPEND SOURCE ${NNVMSOURCE})
 
 # add mshadow file
@@ -434,8 +434,8 @@ list(APPEND SOURCE ${MSHADOWSOURCE})
 list(APPEND CUDA ${MSHADOW_CUDASOURCE})
 
 # add source group
-FILE(GLOB_RECURSE GROUP_SOURCE "src/*.cc" "3rdparty/nnvm/*.cc" "plugin/*.cc")
-FILE(GLOB_RECURSE GROUP_Include "src/*.h" "3rdparty/nnvm/*.h" "3rdparty/mshadow/mshadow/*.h" "plugin/*.h")
+FILE(GLOB_RECURSE GROUP_SOURCE "src/*.cc" "3rdparty/tvm/nnvm/*.cc" "plugin/*.cc")
+FILE(GLOB_RECURSE GROUP_Include "src/*.h" "3rdparty/tvm/nnvm/*.h" "3rdparty/mshadow/mshadow/*.h" "plugin/*.h")
 FILE(GLOB_RECURSE GROUP_CUDA "src/*.cu" "src/*.cuh" "3rdparty/mshadow/mshadow/*.cuh" "plugin/*.cu"
   "plugin/*.cuh" "3rdparty/cub/cub/*.cuh")
 assign_source_group("Source" ${GROUP_SOURCE})
@@ -574,7 +574,7 @@ if(USE_PLUGIN_CAFFE)
   endif()
 endif()
 
-if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/nnvm/CMakeLists.txt")
+if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/tvm/nnvm/CMakeLists.txt")
   set(nnvm_LINKER_LIBS nnvm)
   list(APPEND mxnet_LINKER_LIBS ${nnvm_LINKER_LIBS})
 endif()
@@ -593,7 +593,7 @@ else()
   set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF")
   set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL} /OPT:REF /OPT:ICF")
   set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /OPT:REF /OPT:ICF")
-  
+
 endif()
 
 set(MXNET_INSTALL_TARGETS mxnet)
diff --git a/Jenkinsfile b/Jenkinsfile
index e45bea7..c3fe535 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -21,13 +21,13 @@
 // See documents at https://jenkins.io/doc/book/pipeline/jenkinsfile/
 
 // mxnet libraries
-mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/nnvm/lib/libnnvm.a'
+mx_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
 // for scala build, need to pass extra libs when run with dist_kvstore
-mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a'
+mx_dist_lib = 'lib/libmxnet.so, lib/libmxnet.a, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a, 3rdparty/ps-lite/build/libps.a, deps/lib/libprotobuf-lite.a, deps/lib/libzmq.a'
 // mxnet cmake libraries, in cmake builds we do not produce a libnvvm static library by default.
 mx_cmake_lib = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so'
 mx_cmake_mkldnn_lib = 'build/libmxnet.so, build/libmxnet.a, build/3rdparty/dmlc-core/libdmlc.a, build/tests/mxnet_unit_tests, build/3rdparty/openmp/runtime/src/libomp.so, build/3rdparty/mkldnn/src/libmkldnn.so.0'
-mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, lib/libmkldnn.so.0, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/nnvm/lib/libnnvm.a'
+mx_mkldnn_lib = 'lib/libmxnet.so, lib/libmxnet.a, lib/libiomp5.so, lib/libmkldnn.so.0, lib/libmklml_intel.so, 3rdparty/dmlc-core/libdmlc.a, 3rdparty/tvm/nnvm/lib/libnnvm.a'
 // command to start a docker container
 docker_run = 'tests/ci_build/ci_build.sh'
 // timeout in minutes
@@ -175,7 +175,7 @@ try {
     'GPU: CentOS 7': {
       node('mxnetlinux-cpu') {
         ws('workspace/build-centos7-gpu') {
-          timeout(time: max_time, unit: 'MINUTES') { 
+          timeout(time: max_time, unit: 'MINUTES') {
             init_git()
             docker_run('centos7_gpu', 'build_centos7_gpu', false)
             pack_lib('centos7_gpu')
@@ -186,7 +186,7 @@ try {
     'CPU: Openblas': {
       node('mxnetlinux-cpu') {
         ws('workspace/build-cpu-openblas') {
-          timeout(time: max_time, unit: 'MINUTES') { 
+          timeout(time: max_time, unit: 'MINUTES') {
             init_git()
             docker_run('ubuntu_cpu', 'build_ubuntu_cpu_openblas', false)
             pack_lib('cpu', mx_dist_lib)
@@ -228,7 +228,7 @@ try {
     'CPU: Clang 5 MKLDNN': {
       node('mxnetlinux-cpu') {
         ws('workspace/build-cpu-mkldnn-clang50') {
-          timeout(time: max_time, unit: 'MINUTES') { 
+          timeout(time: max_time, unit: 'MINUTES') {
             init_git()
             docker_run('ubuntu_cpu', 'build_ubuntu_cpu_clang50_mkldnn', false)
             pack_lib('mkldnn_cpu_clang5', mx_mkldnn_lib)
@@ -254,7 +254,7 @@ try {
             init_git()
             docker_run('ubuntu_build_cuda', 'build_ubuntu_gpu_mkldnn', false)
             pack_lib('mkldnn_gpu', mx_mkldnn_lib)
-          }  
+          }
         }
       }
     },
@@ -856,7 +856,7 @@ try {
           init_git()
           docker_run('ubuntu_cpu', 'deploy_docs', false)
           sh "tests/ci_build/deploy/ci_deploy_doc.sh ${env.BRANCH_NAME} ${env.BUILD_NUMBER}"
-        }        
+        }
       }
     }
   }
diff --git a/LICENSE b/LICENSE
index 95d4526..158bd37 100644
--- a/LICENSE
+++ b/LICENSE
@@ -222,13 +222,12 @@
     5. 3rdparty/dlpack - For details, see, 3rdparty/dlpack/LICENSE
     6. 3rdparty/dmlc-core - For details, see, 3rdparty/dmlc-core/LICENSE
     7. 3rdparty/mshadow - For details, see, 3rdparty/mshadow/LICENSE
-    8. 3rdparty/nnvm/dmlc-core - For details, see, 3rdparty/nnvm/dmlc-core/LICENSE
-    9. 3rdparty/nnvm - For details, see, 3rdparty/nnvm/LICENSE
-    10. 3rdparty/nnvm/plugin/nnvm-fusion - For details, see, 3rdparty/nnvm/plugin/nnvm-fusion/LICENSE
+    8. 3rdparty/tvm - For details, see, 3rdparty/tvm/LICENSE
+    9. 3rdparty/tvm/dmlc-core - For details, see, 3rdparty/tvm/dmlc-core/LICENSE
+    10. 3rdparty/tvm/nnvm - For details, see, 3rdparty/tvm/nnvm/LICENSE
     11. 3rdparty/ps-lite - For details, see, 3rdparty/ps-lite/LICENSE
-    12. 3rdparty/nnvm/tvm - For details, see, 3rdparty/nnvm/tvm/LICENSE
-    13. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE
-    14. googlemock scripts/generator - For details, see, 3rdparty/googletest/googlemock/scripts/generator/LICENSE
+    12. 3rdparty/mkldnn - For details, see, 3rdparty/mkldnn/LICENSE
+    13. googlemock scripts/generator - For details, see, 3rdparty/googletest/googlemock/scripts/generator/LICENSE
 
 
     =======================================================================================
@@ -513,5 +512,3 @@
     For details, see, 3rdparty/dmlc-core/include/dmlc/concurrentqueue.h
 
     =======================================================================================
-
-
diff --git a/Makefile b/Makefile
index 951b29b..0321284 100644
--- a/Makefile
+++ b/Makefile
@@ -42,7 +42,7 @@ endif
 CORE_INC = $(wildcard $(DMLC_CORE)/include/*/*.h)
 
 ifndef NNVM_PATH
-	NNVM_PATH = $(TPARTYDIR)/nnvm
+	NNVM_PATH = $(TPARTYDIR)/tvm/nnvm
 endif
 
 ifndef DLPACK_PATH
@@ -92,7 +92,7 @@ ifeq ($(DEBUG), 1)
 else
 	CFLAGS += -O3 -DNDEBUG=1
 endif
-CFLAGS += -I$(TPARTYDIR)/mshadow/ -I$(TPARTYDIR)/dmlc-core/include -fPIC -I$(NNVM_PATH)/include -I$(DLPACK_PATH)/include -I$(NNVM_PATH)/tvm/include -Iinclude $(MSHADOW_CFLAGS)
+CFLAGS += -I$(TPARTYDIR)/mshadow/ -I$(TPARTYDIR)/dmlc-core/include -fPIC -I$(NNVM_PATH)/include -I$(DLPACK_PATH)/include -I$(TPARTYDIR)/tvm/include -Iinclude $(MSHADOW_CFLAGS)
 LDFLAGS = -pthread $(MSHADOW_LDFLAGS) $(DMLC_LDFLAGS)
 ifeq ($(DEBUG), 1)
 	NVCCFLAGS += -std=c++11 -Xcompiler -D_FORCE_INLINES -g -G -O0 -ccbin $(CXX) $(MSHADOW_NVCCFLAGS)
@@ -551,7 +551,7 @@ rpkg:
 	mkdir -p R-package/inst/include
 	cp -rf include/* R-package/inst/include
 	cp -rf 3rdparty/dmlc-core/include/* R-package/inst/include/
-	cp -rf 3rdparty/nnvm/include/* R-package/inst/include
+	cp -rf 3rdparty/tvm/nnvm/include/* R-package/inst/include
 	Rscript -e "if(!require(devtools)){install.packages('devtools', repo = 'https://cloud.r-project.org/')}"
 	Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cloud.r-project.org/')); install_deps(pkg='R-package', dependencies = TRUE)"
 	echo "import(Rcpp)" > R-package/NAMESPACE
diff --git a/amalgamation/Makefile b/amalgamation/Makefile
index f03a2b9..d4b2ee0 100644
--- a/amalgamation/Makefile
+++ b/amalgamation/Makefile
@@ -62,7 +62,7 @@ endif
 ifneq ($(MIN), 1)
 	CFLAGS += -I${OPENBLAS_ROOT} -I${OPENBLAS_ROOT}/include
 	LDFLAGS+= -L${OPENBLAS_ROOT} -L${OPENBLAS_ROOT}/lib
-        
+
 	# Define which blas is installed. Uses OpenBLAS by default.
 	ifeq ($(USE_BLAS), atlas)
                 LDFLAGS += -lcblas
@@ -88,7 +88,7 @@ dmlc.d: dmlc-minimum0.cc
 mxnet_predict0.d: mxnet_predict0.cc nnvm.d dmlc.d
 	${CXX} ${CFLAGS} -M -MT mxnet_predict0.o \
 	-I ${MXNET_ROOT}/ -I ${TPARTYDIR}/mshadow/ -I ${TPARTYDIR}/dmlc-core/include -I ${TPARTYDIR}/dmlc-core/src \
-	-I ${TPARTYDIR}/nnvm/include \
+	-I ${TPARTYDIR}/tvm/nnvm/include \
 	-I ${MXNET_ROOT}/3rdparty/dlpack/include \
 	-I ${MXNET_ROOT}/include \
 	-D__MIN__=$(MIN) mxnet_predict0.cc > mxnet_predict0.d
@@ -105,7 +105,7 @@ mxnet_predict-all.o: mxnet_predict-all.cc
 libmxnet_predict.a: mxnet_predict-all.o
 	ar rcs libmxnet_predict.a $+
 
-jni_libmxnet_predict.o: mxnet_predict-all.cc jni/predictor.cc 
+jni_libmxnet_predict.o: mxnet_predict-all.cc jni/predictor.cc
 	${CXX} ${CFLAGS} -fPIC -o $@ -c jni/predictor.cc
 
 jni_libmxnet_predict.so: jni_libmxnet_predict.o
diff --git a/amalgamation/amalgamation.py b/amalgamation/amalgamation.py
index e038fa4..52d775b 100644
--- a/amalgamation/amalgamation.py
+++ b/amalgamation/amalgamation.py
@@ -167,7 +167,7 @@ expand.fileCount = 0
 
 # Expand the stages
 expand(sys.argv[2], [], "3rdparty/dmlc-core")
-expand(sys.argv[3], [], "3rdparty/nnvm")
+expand(sys.argv[3], [], "3rdparty/tvm/nnvm")
 expand(sys.argv[4], [], "src")
 
 # Write to amalgamation file
@@ -211,5 +211,3 @@ with open(sys.argv[5], 'wb') as f:
 for src in sources:
     if src not in history and not src.endswith('.o'):
         print('Not processed:', src)
-
-
diff --git a/amalgamation/prep_nnvm.sh b/amalgamation/prep_nnvm.sh
index b922294..8e30481 100755
--- a/amalgamation/prep_nnvm.sh
+++ b/amalgamation/prep_nnvm.sh
@@ -18,10 +18,10 @@
 # under the License.
 
 DMLC_CORE=$(pwd)/../3rdparty/dmlc-core
-cd ../3rdparty/nnvm/amalgamation
+cd ../3rdparty/tvm/nnvm/amalgamation
 make clean
 make DMLC_CORE_PATH=$DMLC_CORE nnvm.d
-cp nnvm.d ../../../amalgamation/
+cp nnvm.d ../../../../amalgamation/
 echo '#define MSHADOW_FORCE_STREAM
 
 #ifndef MSHADOW_USE_CBLAS
@@ -43,4 +43,4 @@ echo '#define MSHADOW_FORCE_STREAM
 #include "nnvm/tuple.h"
 #include "mxnet/tensor_blob.h"' > temp
 cat nnvm.cc >> temp
-mv temp ../../../amalgamation/nnvm.cc
+mv temp ../../../../amalgamation/nnvm.cc
diff --git a/cpp-package/example/Makefile b/cpp-package/example/Makefile
index c83260c..eb0676c 100644
--- a/cpp-package/example/Makefile
+++ b/cpp-package/example/Makefile
@@ -21,7 +21,7 @@ prebuild :
 CPPEX_SRC = $(wildcard *.cpp)
 CPPEX_EXE = $(patsubst %.cpp, %, $(CPPEX_SRC))
 
-CFLAGS += -I../../include -I../../3rdparty/nnvm/include -I../../3rdparty/dmlc-core/include  -I../include
+CFLAGS += -I../../include -I../../3rdparty/tvm/nnvm/include -I../../3rdparty/dmlc-core/include  -I../include
 
 ifeq ($(MXNET_USE_CPU),1)
 	CFLAGS += -D MXNET_USE_CPU
@@ -34,11 +34,11 @@ CPPEX_EXTRA_LDFLAGS := -L../../lib -lmxnet
 
 all: prebuild  $(CPPEX_EXE)
 
-debug: CPPEX_CFLAGS += -DDEBUG -g 
+debug: CPPEX_CFLAGS += -DDEBUG -g
 debug: prebuild all
 
 
-$(CPPEX_EXE):% : %.cpp  
+$(CPPEX_EXE):% : %.cpp
 	$(CXX) -std=c++0x $(CFLAGS)  $(CPPEX_CFLAGS) -o $@ $(filter %.cpp %.a, $^) $(CPPEX_EXTRA_LDFLAGS)
 
 clean:
diff --git a/perl-package/AI-NNVMCAPI/Makefile.PL b/perl-package/AI-NNVMCAPI/Makefile.PL
index 5882401..50bc1a9 100644
--- a/perl-package/AI-NNVMCAPI/Makefile.PL
+++ b/perl-package/AI-NNVMCAPI/Makefile.PL
@@ -47,7 +47,7 @@ WriteMakefile(
     VERSION_FROM    => 'lib/AI/NNVMCAPI.pm',
     ABSTRACT_FROM   => 'lib/AI/NNVMCAPI.pm',
     LIBS           => ['-L../../lib -lmxnet'],
-    INC            => '-I../../3rdparty/nnvm/include/nnvm',
+    INC            => '-I../../3rdparty/tvm/nnvm/include/nnvm',
     OBJECT         => 'nnvm_wrap.o',
     LDDLFLAGS      => join(' ', @lddlflags),
     PREREQ_PM      => {
diff --git a/scala-package/native/osx-x86_64-cpu/pom.xml b/scala-package/native/osx-x86_64-cpu/pom.xml
index 73b8590..1503353 100644
--- a/scala-package/native/osx-x86_64-cpu/pom.xml
+++ b/scala-package/native/osx-x86_64-cpu/pom.xml
@@ -67,7 +67,7 @@
             <linkerMiddleOption>-Wl,-x</linkerMiddleOption>
             <linkerMiddleOption>${lddeps}</linkerMiddleOption>
             <linkerMiddleOption>-force_load ../../../lib/libmxnet.a</linkerMiddleOption>
-            <linkerMiddleOption>-force_load ../../../3rdparty/nnvm/lib/libnnvm.a</linkerMiddleOption>
+            <linkerMiddleOption>-force_load ../../../3rdparty/tvm/nnvm/lib/libnnvm.a</linkerMiddleOption>
           </linkerMiddleOptions>
           <linkerEndOptions>
             <linkerEndOption>${ldflags}</linkerEndOption>

-- 
To stop receiving notification emails like this one, please contact
tqchen@apache.org.