diff options
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | PKGBUILD | 136 |
2 files changed, 51 insertions, 106 deletions
@@ -1,6 +1,6 @@ pkgbase = mxnet-git pkgdesc = A flexible and efficient library for deep learning - pkgver = 1.5.1.r10351.5a97cf5c92 + pkgver = 1.5.1.r10371.6c20fb9e6a pkgrel = 1 url = http://mxnet.io/ arch = x86_64 @@ -13,33 +13,28 @@ pkgbase = mxnet-git makedepends = gtk3 makedepends = nccl makedepends = opencv - makedepends = patchelf makedepends = qt5-base - depends = curl depends = cblas depends = double-conversion depends = hdf5 depends = intel-tbb depends = lapack - depends = openblas depends = protobuf depends = python-graphviz depends = python-numpy depends = python-requests depends = zeromq - provides = mxnet=1.5.1.r10351.5a97cf5c92 + provides = mxnet=1.5.1.r10371.6c20fb9e6a conflicts = mxnet source = mxnet::git+https://github.com/apache/incubator-mxnet.git sha512sums = SKIP pkgname = mxnet-git - depends = curl depends = cblas depends = double-conversion depends = hdf5 depends = intel-tbb depends = lapack - depends = openblas depends = protobuf depends = python-graphviz depends = python-numpy @@ -49,13 +44,11 @@ pkgname = mxnet-git pkgname = mxnet-mkl-git pkgdesc = A flexible and efficient library for deep learning (with MKL-DNN) - depends = curl depends = cblas depends = double-conversion depends = hdf5 depends = intel-tbb depends = lapack - depends = openblas depends = protobuf depends = python-graphviz depends = python-numpy @@ -65,13 +58,11 @@ pkgname = mxnet-mkl-git pkgname = mxnet-cuda-git pkgdesc = A flexible and efficient library for deep learning (with CUDA) - depends = curl depends = cblas depends = double-conversion depends = hdf5 depends = intel-tbb depends = lapack - depends = openblas depends = protobuf depends = python-graphviz depends = python-numpy @@ -83,13 +74,11 @@ pkgname = mxnet-cuda-git pkgname = mxnet-cuda-mkl-git pkgdesc = A flexible and efficient library for deep learning (with CUDA and MKL-DNN) - depends = curl depends = cblas depends = double-conversion depends = hdf5 depends = intel-tbb depends = lapack - depends = openblas depends = protobuf depends = python-graphviz depends = python-numpy @@ -98,4 +87,10 @@ pkgname = mxnet-cuda-mkl-git depends = cuda depends = cudnn depends = nccl + provides = mxnet=1.5.1.r10371.6c20fb9e6a + provides = mxnet-cuda=1.5.1.r10371.6c20fb9e6a + provides = mxnet-mkl=1.5.1.r10371.6c20fb9e6a + conflicts = mxnet + conflicts = mxnet-cuda=1.5.1.r10371.6c20fb9e6a + conflicts = mxnet-mkl=1.5.1.r10371.6c20fb9e6a @@ -4,20 +4,18 @@ cudaarch=Common _pkgname=mxnet pkgname=('mxnet-git' 'mxnet-mkl-git' 'mxnet-cuda-git' 'mxnet-cuda-mkl-git') _pkgver=1.5.1 -pkgver=1.5.1.r10351.5a97cf5c92 +pkgver=1.5.1.r10371.6c20fb9e6a pkgrel=1 pkgdesc="A flexible and efficient library for deep learning" arch=('x86_64') url="http://mxnet.io/" license=('Apache') depends=( - 'curl' 'cblas' 'double-conversion' 'hdf5' 'intel-tbb' 'lapack' - 'openblas' 'protobuf' 'python-graphviz' 'python-numpy' @@ -33,7 +31,6 @@ makedepends=( 'gtk3' 'nccl' 'opencv' - 'patchelf' 'qt5-base' ) provides=(mxnet=${pkgver}) @@ -41,6 +38,10 @@ conflicts=(mxnet) source=("${_pkgname}::git+https://github.com/apache/incubator-mxnet.git") sha512sums=('SKIP') +get_pyver() { + python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' +} + pkgver() { cd "${srcdir}/${_pkgname}" ver=$(printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)") @@ -50,16 +51,27 @@ pkgver() { prepare() { cd "${srcdir}/${_pkgname}" git submodule update --init --recursive + # do not use 3rd party openmp rm -rfv "${srcdir}/${_pkgname}/3rdparty/openmp" # the latest cmake set OpenMP_FOUND instead of OPENMP_FOUND sed -i 's/OPENMP_FOUND/OpenMP_FOUND/g' "${srcdir}/${_pkgname}/CMakeLists.txt" + + # find blas automatically + sed -i 's/find_package(OpenBLAS REQUIRED)/find_package(BLAS REQUIRED)/' "${srcdir}/${_pkgname}/cmake/ChooseBlas.cmake" "${srcdir}/${_pkgname}/3rdparty/mshadow/cmake/mshadow.cmake" + sed -i 's/OpenBLAS_LIB/BLAS_LIBRARIES/' "${srcdir}/${_pkgname}/cmake/ChooseBlas.cmake" "${srcdir}/${_pkgname}/cmake/ChooseBlas.cmake" "${srcdir}/${_pkgname}/3rdparty/mshadow/cmake/mshadow.cmake" + sed -i '/OpenBLAS_INCLUDE_DIR/d' "${srcdir}/${_pkgname}/cmake/ChooseBlas.cmake" "${srcdir}/${_pkgname}/3rdparty/mshadow/cmake/mshadow.cmake" + + # set CUDA_ARCH_LIST to only Pascal, Volta, Turing + sed -i '/APPEND CUDA_COMMON_GPU_ARCHITECTURES/d' "${srcdir}/${_pkgname}/cmake/FirstClassLangCuda.cmake" + sed -i '/set(CUDA_COMMON_GPU_ARCHITECTURES/c\set(CUDA_COMMON_GPU_ARCHITECTURES "6.0" "6.1" "6.1+PTX" "7.0" "7.5")' "${srcdir}/${_pkgname}/cmake/FirstClassLangCuda.cmake" + rm -rf "${srcdir}/${_pkgname}/build" mkdir "${srcdir}/${_pkgname}/build" - cp -r "${srcdir}/${_pkgname}" "${srcdir}/mxnet-git" - cp -r "${srcdir}/${_pkgname}" "${srcdir}/mxnet-mkl-git" - cp -r "${srcdir}/${_pkgname}" "${srcdir}/mxnet-cuda-git" - cp -r "${srcdir}/${_pkgname}" "${srcdir}/mxnet-cuda-mkl-git" + cp -a "${srcdir}/${_pkgname}" "${srcdir}/mxnet-git" + cp -a "${srcdir}/${_pkgname}" "${srcdir}/mxnet-mkl-git" + cp -a "${srcdir}/${_pkgname}" "${srcdir}/mxnet-cuda-git" + cp -a "${srcdir}/${_pkgname}" "${srcdir}/mxnet-cuda-mkl-git" } build() { @@ -150,12 +162,9 @@ build() { python setup.py build --with-cython } -package_mxnet-git() { - depends+=(opencv) - - export CC=gcc - export CXX=g++ +_package() { cd "${srcdir}/${pkgname}/build" + # install mxnet core component make DESTDIR="${pkgdir}" install @@ -168,49 +177,34 @@ package_mxnet-git() { python setup.py install --root="${pkgdir}" --optimize=1 --with-cython --skip-build install -Dm644 "${srcdir}/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - rm -rfv "${pkgdir}/usr/mxnet" - ln -sf '/usr/lib/libmxnet.so' "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/libmxnet.so" - ln -s "/usr/include" "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/include" - install -d "${pkgdir}/usr/lib/mxnet/mkldnn" - find "${pkgdir}/usr/lib" -name 'libmkldnn*' -exec mv {} "${pkgdir}/usr/lib/mxnet/mkldnn" \; - # patch rpath - find "${pkgdir}" -type f -perm 755 -exec patchelf --set-rpath '/usr/lib/mxnet/mkldnn' {} \; + # create neccesarry soft links + ln -sf '/usr/lib/libmxnet.so' "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/mxnet/libmxnet.so" + ln -s "/usr/include" "${pkgdir}/usr/lib/python$(get_pyver)/site-packages/mxnet/include" + # remove unwantted files + rm -rfv "${pkgdir}/usr/mxnet" rm -rfv "${pkgdir}/usr/lib/cmake" "${pkgdir}/usr/share/doc" - find "${pkgdir}/usr/include" -type f -name 'mkldnn*' -delete + find "${pkgdir}" -type f -name '*mkldnn*' -delete + find "${pkgdir}" -type f -name '*.a' -delete find "${pkgdir}" -type d -empty -delete } -package_mxnet-mkl-git() { - pkgdesc="${pkgdesc} (with MKL-DNN)" + +package_mxnet-git() { depends+=(opencv) export CC=gcc export CXX=g++ - cd "${srcdir}/${pkgname}/build" - # install mxnet core component - make DESTDIR="${pkgdir}" install - - if [ -f "${srcdir}/${pkgname}/build/im2rec" ]; then - install -Dm755 "${srcdir}/${pkgname}/build/im2rec" "${pkgdir}/usr/bin/im2rec" - fi + _package +} - # install python binding - cd "${srcdir}/${pkgname}/python" - python setup.py install --root="${pkgdir}" --optimize=1 --with-cython --skip-build - install -Dm644 "${srcdir}/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +package_mxnet-mkl-git() { + pkgdesc="${pkgdesc} (with MKL-DNN)" + depends+=(opencv) - rm -rfv "${pkgdir}/usr/mxnet" - ln -sf '/usr/lib/libmxnet.so' "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/libmxnet.so" - ln -s "/usr/include" "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/include" - install -d "${pkgdir}/usr/lib/mxnet/mkldnn" - find "${pkgdir}/usr/lib" -name 'libmkldnn*' -exec mv {} "${pkgdir}/usr/lib/mxnet/mkldnn" \; - # patch rpath - find "${pkgdir}" -type f -perm 755 -exec patchelf --set-rpath '/usr/lib/mxnet/mkldnn' {} \; - # remove unwantted files - rm -rfv "${pkgdir}/usr/lib/cmake" "${pkgdir}/usr/share/doc" - find "${pkgdir}/usr/include" -type f -name 'mkldnn*' -delete - find "${pkgdir}" -type d -empty -delete + export CC=gcc + export CXX=g++ + _package } package_mxnet-cuda-git() { @@ -219,62 +213,18 @@ package_mxnet-cuda-git() { export CC=/opt/cuda/bin/gcc export CXX=/opt/cuda/bin/g++ - cd "${srcdir}/${pkgname}/build" - # install mxnet core component - make DESTDIR="${pkgdir}" install - - if [ -f "${srcdir}/${pkgname}/build/im2rec" ]; then - install -Dm755 "${srcdir}/${pkgname}/build/im2rec" "${pkgdir}/usr/bin/im2rec" - fi - - # install python binding - cd "${srcdir}/${pkgname}/python" - python setup.py install --root="${pkgdir}" --optimize=1 --with-cython --skip-build - install -Dm644 "${srcdir}/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - - rm -rfv "${pkgdir}/usr/mxnet" - ln -sf '/usr/lib/libmxnet.so' "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/libmxnet.so" - ln -s "/usr/include" "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/include" - install -d "${pkgdir}/usr/lib/mxnet/mkldnn" - find "${pkgdir}/usr/lib" -name 'libmkldnn*' -exec mv {} "${pkgdir}/usr/lib/mxnet/mkldnn" \; - # patch rpath - find "${pkgdir}" -type f -perm 755 -exec patchelf --set-rpath '/usr/lib/mxnet/mkldnn' {} \; - # remove unwantted files - rm -rfv "${pkgdir}/usr/lib/cmake" "${pkgdir}/usr/share/doc" - find "${pkgdir}/usr/include" -type f -name 'mkldnn*' -delete - find "${pkgdir}" -type d -empty -delete + _package } package_mxnet-cuda-mkl-git() { pkgdesc="${pkgdesc} (with CUDA and MKL-DNN)" depends+=(cuda cudnn nccl) + provides+=(mxnet-cuda=${pkgver} mxnet-mkl=${pkgver}) + conflicts+=(mxnet-cuda=${pkgver} mxnet-mkl=${pkgver}) export CC=/opt/cuda/bin/gcc export CXX=/opt/cuda/bin/g++ - cd "${srcdir}/${pkgname}/build" - # install mxnet core component - make DESTDIR="${pkgdir}" install - - if [ -f "${srcdir}/${pkgname}/build/im2rec" ]; then - install -Dm755 "${srcdir}/${pkgname}/build/im2rec" "${pkgdir}/usr/bin/im2rec" - fi - - # install python binding - cd "${srcdir}/${pkgname}/python" - python setup.py install --root="${pkgdir}" --optimize=1 --with-cython --skip-build - install -Dm644 "${srcdir}/${pkgname}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" - - rm -rfv "${pkgdir}/usr/mxnet" - ln -sf '/usr/lib/libmxnet.so' "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/libmxnet.so" - ln -s "/usr/include" "${pkgdir}/usr/lib/python3.8/site-packages/mxnet/include" - install -d "${pkgdir}/usr/lib/mxnet/mkldnn" - find "${pkgdir}/usr/lib" -name 'libmkldnn*' -exec mv {} "${pkgdir}/usr/lib/mxnet/mkldnn" \; - # patch rpath - find "${pkgdir}" -type f -perm 755 -exec patchelf --set-rpath '/usr/lib/mxnet/mkldnn' {} \; - # remove unwantted files - rm -rfv "${pkgdir}/usr/lib/cmake" "${pkgdir}/usr/share/doc" - find "${pkgdir}/usr/include" -type f -name 'mkldnn*' -delete - find "${pkgdir}" -type d -empty -delete + _package } # vim:set ts=2 sw=2 et: |