Date: Wednesday, October 19, 2022 @ 13:56:17
  Author: kgizdov
Revision: 1332874

WIP: initial release

Added:
  torchvision/
  torchvision/repos/
  torchvision/trunk/
  torchvision/trunk/PKGBUILD

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

Added: torchvision/trunk/PKGBUILD
===================================================================
--- torchvision/trunk/PKGBUILD                          (rev 0)
+++ torchvision/trunk/PKGBUILD  2022-10-19 13:56:17 UTC (rev 1332874)
@@ -0,0 +1,170 @@
+# Maintainer: Konstantin Gizdov <arch at kge dot pw>
+# Contributor: Butui Hu <[email protected]>
+# Contributor: Chih-Hsuan Yen <[email protected]>
+# Contributor: Jean Lucas <[email protected]>
+# Based on python-torchvision-git; original contributors:
+# Contributor: Stephen Zhang <zsrkmyn at gmail dot com>
+#
+# NOTE:
+# to build with GPU decoder, we use nvidia-sdk header files from 
https://github.com/NVIDIA/DALI for convenience
+# you could also use https://aur.archlinux.org/packages/nvidia-sdk
+# just update environment variable `TORCHVISION_INCLUDE` and 
`TORCHVISION_LIBRARY`
+# see also 
https://github.com/pytorch/vision/blob/main/torchvision/csrc/io/decoder/gpu/README.rst
+#
+
+_CUDA_ARCH_LIST="5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6;8.7;8.7+PTX"
+_CUDA_ARCH_LIST_CMAKE="52;53;60;61;62;70;72;75;80;86;87;87-virtual"
+_pkgname=vision
+pkgbase='torchvision'
+pkgname=('torchvision' 'torchvision-cuda' 'python-torchvision' 
'python-torchvision-cuda')
+pkgver=0.13.1
+pkgrel=3
+pkgdesc='Datasets, transforms, and models specific to computer vision'
+arch=('x86_64')
+url='https://github.com/pytorch/vision'
+license=('BSD')
+depends=(
+  python-numpy
+  python-pillow
+  python-requests
+  python-scipy
+)
+optdepends=(
+  'ffmpeg4.4: video reader backend (the recommended one with better 
performance)'
+  'python-av: video reader backend (the default one)'
+  'python-pycocotools: support for MS-COCO dataset'
+)
+makedepends=(
+  cmake
+  cuda
+  ffmpeg4.4
+  python-av
+  python-pytorch-cuda
+  python-setuptools
+  qt5-base
+  nvidia-utils
+)
+source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/pytorch/vision/archive/v${pkgver}.tar.gz";
+        
"https://github.com/NVIDIA/DALI/raw/main/dali/operators/reader/loader/video/nvdecode/cuviddec.h";
+        
"https://github.com/NVIDIA/DALI/raw/main/dali/operators/reader/loader/video/nvdecode/nvcuvid.h";
+)
+b2sums=('7c44458177f18866b133d8f47fb6b8e1b4f6ecc6a757b46cafe2ae0bbebf582f2b5b64cc208a4c3d6a5e59e740177ed9457c1be36a58b423ae70b5d67a5973e9'
+        
'e0e3637aae332c9c9ba0546597685b0368cb569f6d5a0ce2e792e1c204dc787b88d8f149fd0a3fba12527fa3048e41ba8605c3215df5062e6988f22fc5caabc8'
+        
'7db5d621f3099bc5455f1faeb7f4c3575a9cf70153ba56a6efc6d67d0ef2ac5438f6e117e621c5ef35c239eb3bce3fe17ce160e6b7765e8203d67a7299085429')
+
+prepare() {
+  # fix building with ffmpeg4.4 by manually setup include and lib dir
+  # and remove other codes to find ffmpeg exe, as ffmpeg4.4 are only headers 
and libs without ffmpeg cmd
+  sed -i '351,358d' "${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i 's#ffmpeg_include_dir = os.path.join(ffmpeg_root, 
"include")#ffmpeg_include_dir = "/usr/include/ffmpeg4.4"#' 
"${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i 's#ffmpeg_library_dir = os.path.join(ffmpeg_root, 
"lib")#ffmpeg_library_dir = "/usr/lib/ffmpeg4.4"#' 
"${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i 's#has_ffmpeg = ffmpeg_exe is not None#has_ffmpeg = True#' 
"${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i '/ffmpeg_exe/d' "${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i '/ffmpeg_bin/d' "${srcdir}/${_pkgname}-${pkgver}/setup.py"
+  sed -i '/ffmpeg_root/d' "${srcdir}/${_pkgname}-${pkgver}/setup.py"
+
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" 
"${srcdir}/${_pkgname}-cuda-${pkgver}"
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" "${srcdir}/py-${_pkgname}-${pkgver}"
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" 
"${srcdir}/py-${_pkgname}-cuda-${pkgver}"
+}
+
+build() {
+  # build torchvision
+  cd "${srcdir}/${_pkgname}-${pkgver}"
+  rm -rf build
+  mkdir build
+  cd build
+
+  cmake "../" \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_BUILD_TYPE=None \
+    -DCMAKE_CXX_FLAGS="${CXXFLAGS} -O3" \
+    -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
+    -DWITH_CUDA=OFF
+  # build torchvision-cuda
+  cd "${srcdir}/${_pkgname}-cuda-${pkgver}"
+  rm -rf build
+  mkdir build
+  cd build
+
+  cmake "../" \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DCMAKE_BUILD_TYPE=None \
+    -DCMAKE_CXX_FLAGS="${CXXFLAGS} -O3" \
+    -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
+    -DWITH_CUDA=ON \
+    -DTORCH_CUDA_ARCH_LIST="${_CUDA_ARCH_LIST}" \
+    -DCUDA_ARCH_LIST="${_CUDA_ARCH_LIST}" \
+    -DCMAKE_CUDA_ARCHITECTURES="${_CUDA_ARCH_LIST_CMAKE}"
+
+  # build python-torchvision
+  cd "${srcdir}/py-${_pkgname}-${pkgver}"
+  python setup.py build
+
+  # build python-torchvision-cuda
+  cd "${srcdir}/py-${_pkgname}-cuda-${pkgver}"
+  TORCHVISION_INCLUDE=${srcdir} \
+  TORCHVISION_LIBRARY=/usr/lib \
+  FORCE_CUDA=1 \
+  TORCH_CUDA_ARCH_LIST=${_CUDA_ARCH_LIST} \
+  python setup.py build
+}
+
+check() {
+  local python_version=$(python -c 'import sys; print("".join(map(str, 
sys.version_info[:2])))')
+  # check if VideoReader is build
+  # VideoReader depends on ffmpeg
+  cd "${srcdir}/py-${_pkgname}-${pkgver}"
+  PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-cpython-${python_version}" \
+  python -c "from torchvision.io import VideoReader"
+
+  cd "${srcdir}/py-${_pkgname}-cuda-${pkgver}"
+  PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-cpython-${python_version}" \
+  python -c "from torchvision.io import VideoReader"
+}
+
+package_python-torchvision() {
+  depends+=(python-pytorch)
+
+  cd "${srcdir}/py-${_pkgname}-${pkgver}"
+  python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
+  install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+
+package_python-torchvision-cuda() {
+  pkgdesc='Datasets, transforms, and models specific to computer vision (with 
GPU support)'
+  depends+=(python-pytorch-cuda)
+  provides+=(python-torchvision=${pkgver})
+  conflicts+=(python-torchvision=${pkgver})
+
+  cd "${srcdir}/py${_pkgname}-cuda-${pkgver}"
+  TORCHVISION_INCLUDE=${srcdir} \
+  TORCHVISION_LIBRARY=/usr/lib \
+  FORCE_CUDA=1 \
+  TORCH_CUDA_ARCH_LIST=${_CUDA_ARCH_LIST} \
+  python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
+  install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+
+package_torchvision() {
+  pkgdesc='Datasets, transforms, and models specific to computer vision (C++ 
library only)'
+  depends+=(python-pytorch-cuda)
+  provides+=(torchvision=${pkgver})
+  conflicts+=(torchvision=${pkgver})
+
+  cd "${srcdir}/${_pkgname}-${pkgver}"
+  make -C build install DESTDIR="$pkgdir"
+  install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
+package_torchvision-cuda() {
+  pkgdesc='Datasets, transforms, and models specific to computer vision (C++ 
library only with GPU support)'
+  depends+=(python-pytorch-cuda)
+  provides+=(torchvision=${pkgver})
+  conflicts+=(torchvision=${pkgver})
+
+  cd "${srcdir}/${_pkgname}-cuda-${pkgver}"
+  make -C build install DESTDIR="$pkgdir"
+  install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+}
+
+# vim:set ts=2 sw=2 et:

Reply via email to