You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by ma...@apache.org on 2018/03/22 16:04:20 UTC
[incubator-mxnet] branch master updated: [MXNET-73] Add Armv6 ci
build (#10172)
This is an automated email from the ASF dual-hosted git repository.
marcoabreu 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 d283c51 [MXNET-73] Add Armv6 ci build (#10172)
d283c51 is described below
commit d283c516bc97fa7c1ed18d2e32d28812b473979f
Author: Anton Chernov <me...@gmail.com>
AuthorDate: Thu Mar 22 17:04:15 2018 +0100
[MXNET-73] Add Armv6 ci build (#10172)
* Initial add for ARMv6
* Fixed Armv6 build
* Introduced workaround for fortran lib linking
* Added comments to armv6 ci build
---
CMakeLists.txt | 4 +++-
Jenkinsfile | 8 ++++++++
ci/docker/Dockerfile.build.armv6 | 40 ++++++++++++++++++++++++++++++++++++++++
ci/docker/runtime_functions.sh | 28 ++++++++++++++++++++++++++++
4 files changed, 79 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 66732ff..e18c480 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -132,7 +132,9 @@ else(MSVC)
endif()
endif(MSVC)
-set(mxnet_LINKER_LIBS "")
+if(NOT mxnet_LINKER_LIBS)
+ set(mxnet_LINKER_LIBS "")
+endif(NOT mxnet_LINKER_LIBS)
if(USE_GPROF)
message(STATUS "Using GPROF")
diff --git a/Jenkinsfile b/Jenkinsfile
index 03c7fe8..f9e038f 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -338,6 +338,14 @@ try {
sh "ci/build.py --build --platform armv7 /work/runtime_functions.sh build_armv7"
}
}
+ },
+ 'Raspberry / ARMv6l':{
+ node('mxnetlinux-cpu') {
+ ws('workspace/build-raspberry-armv6') {
+ init_git()
+ sh "ci/build.py --build --platform armv6 /work/runtime_functions.sh build_armv6"
+ }
+ }
}
} // End of stage('Build')
diff --git a/ci/docker/Dockerfile.build.armv6 b/ci/docker/Dockerfile.build.armv6
new file mode 100755
index 0000000..4718462
--- /dev/null
+++ b/ci/docker/Dockerfile.build.armv6
@@ -0,0 +1,40 @@
+# -*- mode: dockerfile -*-
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Dockerfile to build MXNet for ARMv6
+
+FROM dockcross/linux-armv6
+
+ENV ARCH armv6l
+ENV CC /usr/bin/arm-linux-gnueabihf-gcc
+ENV CXX /usr/bin/arm-linux-gnueabihf-g++
+ENV FC /usr/bin/arm-linux-gnueabihf-gfortran
+ENV HOSTCC gcc
+ENV TARGET ARMV6
+
+WORKDIR /work/deps
+
+# Build OpenBLAS
+ADD https://api.github.com/repos/xianyi/OpenBLAS/git/refs/tags/v0.2.9 openblas_version.json
+RUN git clone --recursive -b v0.2.9 https://github.com/xianyi/OpenBLAS.git && \
+ cd OpenBLAS && \
+ make -j$(nproc) && \
+ make PREFIX=$CROSS_ROOT install
+
+COPY runtime_functions.sh /work/
+WORKDIR /work/mxnet
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index f12772e..abb3702 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -73,6 +73,34 @@ build_jetson() {
popd
}
+build_armv6() {
+ set -ex
+ pushd .
+ cd /work/build
+
+ # Lapack functionality will be included and statically linked to openblas.
+ # But USE_LAPACK needs to be set to OFF, otherwise the main CMakeLists.txt
+ # file tries to add -llapack. Lapack functionality though, requires -lgfortran
+ # to be linked additionally.
+
+ cmake \
+ -DCMAKE_TOOLCHAIN_FILE=$CROSS_ROOT/Toolchain.cmake \
+ -DUSE_CUDA=OFF \
+ -DUSE_OPENCV=OFF \
+ -DUSE_SIGNAL_HANDLER=ON \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DUSE_MKL_IF_AVAILABLE=OFF \
+ -DUSE_LAPACK=OFF \
+ -Dmxnet_LINKER_LIBS=-lgfortran \
+ -G Ninja /work/mxnet
+ ninja
+ export MXNET_LIBRARY_PATH=`pwd`/libmxnet.so
+ cd /work/mxnet/python
+ python setup.py bdist_wheel --universal
+ cp dist/*.whl /work/build
+ popd
+}
+
build_armv7() {
set -ex
pushd .
--
To stop receiving notification emails like this one, please contact
marcoabreu@apache.org.