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.