[arch-commits] Commit in (caffe2 caffe2/repos caffe2/trunk caffe2/trunk/PKGBUILD)

Daniel Bermond dbermond at archlinux.org
Sun May 12 20:34:13 UTC 2019


    Date: Sunday, May 12, 2019 @ 20:34:09
  Author: dbermond
Revision: 467093

Added:
  caffe2/
  caffe2/repos/
  caffe2/trunk/
  caffe2/trunk/PKGBUILD

----------+
 PKGBUILD |  213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 213 insertions(+)

Added: caffe2/trunk/PKGBUILD
===================================================================
--- caffe2/trunk/PKGBUILD	                        (rev 0)
+++ caffe2/trunk/PKGBUILD	2019-05-12 20:34:09 UTC (rev 467093)
@@ -0,0 +1,213 @@
+# Maintainer : Daniel Bermond <dbermond at archlinux.org>
+
+pkgbase=caffe2
+pkgname=('caffe2' 'caffe2-cuda')
+_pytorchver=1.1.0 # pytorch stable release version
+pkgver="0.8.2_${_pytorchver}"
+pkgrel=1
+pkgdesc='A new lightweight, modular, and scalable deep learning framework'
+arch=('x86_64')
+url='https://caffe2.ai/'
+license=('BSD')
+depends=('google-glog' 'protobuf' 'python' 'python-numpy' 'python-protobuf'
+         'python-yaml' 'blas' 'lapack' 'gflags')
+optdepends=('python-flask' 'graphviz' 'python-hypothesis' 'python-matplotlib'
+            'python-pydot' 'python-yaml' 'python-requests' 'python-scipy'
+            'python-setuptools' 'python-future' 'python-tornado' 'python-six')
+makedepends=('git' 'cmake' 'gtest' 'snappy' 'cuda' 'cudnn' 'nccl')
+options=('!emptydirs')
+source=("git+https://github.com/pytorch/pytorch.git#tag=v${_pytorchver}"
+        'git+https://github.com/pybind/pybind11'
+        'git+https://github.com/NVlabs/cub'
+        'git+https://github.com/eigenteam/eigen-git-mirror'
+        'git+https://github.com/google/googletest'
+        'git+https://github.com/google/benchmark'
+        'git+https://github.com/google/protobuf'
+        'git+https://github.com/Yangqing/ios-cmake'
+        'git+https://github.com/Maratyszcza/NNPACK'
+        'git+https://github.com/facebookincubator/gloo'
+        'git+https://github.com/Maratyszcza/pthreadpool'
+        'git+https://github.com/Maratyszcza/FXdiv'
+        'git+https://github.com/Maratyszcza/FP16'
+        'git+https://github.com/Maratyszcza/psimd'
+        'git+https://github.com/facebook/zstd'
+        'git+https://github.com/Maratyszcza/cpuinfo'
+        'git+https://github.com/PeachPy/enum34'
+        'git+https://github.com/Maratyszcza/PeachPy'
+        'git+https://github.com/benjaminp/six'
+        'git+https://github.com/onnx/onnx'
+        'git+https://github.com/onnx/onnx-tensorrt'
+        'sleef-zdevito'::'git+https://github.com/zdevito/sleef'
+        'git+https://github.com/intel/ideep'
+        'git+https://github.com/NVIDIA/nccl.git'
+        'git+https://github.com/google/gemmlowp'
+        'git+https://github.com/pytorch/QNNPACK'
+        'git+https://github.com/intel/ARM_NEON_2_x86_SSE'
+        'git+https://github.com/pytorch/fbgemm'
+        'git+https://github.com/houseroad/foxi')
+sha256sums=('SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP'
+            'SKIP')
+
+prepare() {
+    mkdir -p pytorch/{build-cpu-only,build-cuda}
+    
+    cd pytorch
+    
+    # submodules which clone dir coincide with the submodule name
+    local _submodule_list=('pybind11'
+                           'cub'
+                           'googletest'
+                           'benchmark'
+                           'protobuf'
+                           'ios-cmake'
+                           'NNPACK'
+                           'gloo'
+                           'zstd'
+                           'onnx'
+                           'onnx-tensorrt'
+                           'sleef'
+                           'ideep'
+                           'QNNPACK'
+                           'fbgemm'
+                           'foxi')
+    local _submodule
+    for _submodule in "${_submodule_list[@]}"
+    do
+        git config --local "submodule.third_party/${_submodule}.url" "${srcdir}/${_submodule}"
+    done
+    
+    # submodules which clone dir does not coincide with the submodule name
+    git config --local "submodule.third_party/eigen.url" "${srcdir}/eigen-git-mirror"
+    git config --local "submodule.third_party/NNPACK_deps/pthreadpool.url" "${srcdir}/pthreadpool"
+    git config --local "submodule.third_party/NNPACK_deps/FXdiv.url" "${srcdir}/FXdiv"
+    git config --local "submodule.third_party/NNPACK_deps/FP16.url" "${srcdir}/FP16"
+    git config --local "submodule.third_party/NNPACK_deps/psimd.url" "${srcdir}/psimd"
+    git config --local "submodule.third_party/python-enum.url" "${srcdir}/enum34"
+    git config --local "submodule.third_party/python-peachpy.url" "${srcdir}/PeachPy"
+    git config --local "submodule.third_party/python-six.url" "${srcdir}/six"
+    git config --local "submodule.third_party/sleef.url" "${srcdir}/sleef-zdevito"
+    git config --local "submodule.third_party/neon2sse.url" "${srcdir}/ARM_NEON_2_x86_SSE"
+    git config --local "submodule.third_party/nccl/nccl.url" "${srcdir}/nccl"
+    git config --local "submodule.third_party/gemmlowp/gemmlowp.url" "${srcdir}/gemmlowp"
+    
+    # special case (upstream uses third.party instead of third_party)
+    git config --local 'submodule.third-party/cpuinfo.url' "${srcdir}/cpuinfo"
+    
+    git submodule update
+}
+
+build() {
+    local _common_opts=('..'
+                        '-DBLAS:STRING=Eigen'
+                        '-DBUILD_BINARY:BOOL=ON'
+                        '-DBUILD_CUSTOM_PROTOBUF:BOOL=OFF'
+                        '-DBUILD_SHARED_LIBS:BOOL=ON'
+                        '-DCMAKE_BUILD_TYPE:STRING=None'
+                        '-DCMAKE_INSTALL_LIBDIR:PATH=lib'
+                        '-DCMAKE_INSTALL_PREFIX:PATH=/usr'
+                        '-DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES'
+                        '-DCXX_AVX2_FOUND:BOOL=FALSE'
+                        '-DCXX_AVX_FOUND:BOOL=FALSE'
+                        '-DC_AVX2_FOUND:BOOL=FALSE'
+                        '-DC_AVX_FOUND:BOOL=FALSE'
+                        '-DUSE_GFLAGS:BOOL=ON'
+                        '-DUSE_GLOG:BOOL=ON'
+                        '-DUSE_MPI:BOOL=OFF'
+                        '-DUSE_NUMA:BOOL=OFF'
+                        '-DUSE_OPENCV:BOOL=OFF'
+                        '-Wno-dev')
+    
+    # caffe2-cuda
+    cd pytorch/build-cuda
+    cmake \
+        "${_common_opts[@]}" \
+        -DCMAKE_CXX_COMPILER:FILEPATH='/usr/bin/g++' \
+        -DCMAKE_C_COMPILER:FILEPATH='/usr/bin/gcc' \
+        -DCUDA_HOST_COMPILER:FILEPATH='/usr/bin/gcc' \
+        -DCUDA_NVCC_FLAGS:STRING='-Xfatbin -compress-all' \
+        -DTORCH_CUDA_ARCH_LIST='3.0;3.2;3.5;3.7;5.0;5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5' \
+        -DUSE_CUDA:BOOL='ON' \
+        -DUSE_CUDNN:BOOL='ON' \
+        -DUSE_METAL:BOOL='OFF' \
+        -DUSE_NCCL:BOOL='ON' \
+        -DUSE_SYSTEM_NCCL:BOOL='ON'
+    ## fix: avoid a second compilation in package()
+    sed -i 's/^preinstall:[[:space:]]all/preinstall:/' Makefile
+    make
+    
+    # caffe2 (cpu only, without cuda support)
+    cd "${srcdir}/pytorch/build-cpu-only"
+    cmake "${_common_opts[@]}" -DUSE_CUDA:BOOL='OFF' -DUSE_NCCL:BOOL='OFF'
+    make
+}
+
+_package_common() {
+    make DESTDIR="$pkgdir" install
+    
+    # remove unneeded files
+    local _entry
+    local _exclude_dirs
+    rm    "$pkgdir"/usr/include/*.h
+    rm    "$pkgdir"/usr/lib/{*.a,lib{foxi*,onnxifi*}.so*}
+    rm -r "$pkgdir"/usr/share/{ATen,cmake/{ATen,Gloo,ONNX}}
+    rm -r "$pkgdir"/torch
+    mapfile -t -d '' _exclude_dirs < <(find "${pkgdir}/usr/include" -mindepth 1 -maxdepth 1 -type d ! -name 'caffe*' ! -name 'c10' -print0)
+    for _entry in "${_exclude_dirs[@]}"
+    do
+        rm -rf "$_entry"
+    done
+    
+    # license
+    cd "${srcdir}/pytorch"
+    install -D -m644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+    install -D -m644 NOTICE  -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+
+package_caffe2-cuda() {
+    pkgdesc+=' (with cuda support)'
+    depends+=('cuda' 'cudnn' 'nccl')
+    provides=('caffe2')
+    conflicts=('caffe2')
+    
+    cd pytorch/build-cuda
+    
+    _package_common
+}
+
+package_caffe2() {
+    pkgdesc+=' (cpu only)'
+    provides=('caffe2-cpu')
+    conflicts=('caffe2-cpu')
+    replaces=('caffe2-cpu')
+    
+    cd pytorch/build-cpu-only
+    
+    _package_common
+}


More information about the arch-commits mailing list