tqchen closed pull request #11130: [3rdparty] introduce tvm
URL: https://github.com/apache/incubator-mxnet/pull/11130
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/.gitmodules b/.gitmodules
index e10eae20fe9..9aeb1c75498 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 2bc5144cd37..00000000000
--- a/3rdparty/nnvm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2bc5144cd3733fd239287e3560c7db8285d21f02
diff --git a/3rdparty/tvm b/3rdparty/tvm
new file mode 160000
index 00000000000..8f80df0c461
--- /dev/null
+++ b/3rdparty/tvm
@@ -0,0 +1 @@
+Subproject commit 8f80df0c46188cdf227764848d8aba0cba6e8273
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 246ae995e90..eff36a24a7e 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 e45bea7f456..c3fe535af8c 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 95d45265cfd..158bd37f278 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 951b29b41cf..03212841fa3 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 f03a2b97fc4..d4b2ee0ef22 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 e038fa44b98..52d775b7692 100644
--- a/amalgamation/amalgamation.py
+++ b/amalgamation/amalgamation.py
@@ -167,7 +167,7 @@ def expand(x, pending, stage):
# 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 @@ def expand(x, pending, stage):
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 b9222945a98..8e30481d9eb 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 c83260c2671..eb0676cedf5 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 58824013583..50bc1a9426b 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 73b85905197..15033535e4a 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>
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services