Date: Wednesday, April 19, 2023 @ 12:00:24
  Author: kgizdov
Revision: 1447439

archrelease: copy trunk to community-staging-x86_64

Added:
  torchvision/repos/community-staging-x86_64/
  torchvision/repos/community-staging-x86_64/PKGBUILD
    (from rev 1447438, torchvision/trunk/PKGBUILD)

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

Copied: torchvision/repos/community-staging-x86_64/PKGBUILD (from rev 1447438, 
torchvision/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD                           (rev 0)
+++ community-staging-x86_64/PKGBUILD   2023-04-19 12:00:24 UTC (rev 1447439)
@@ -0,0 +1,184 @@
+# 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
+#
+
+# update when available in pytorch
+_CUDA_ARCH_LIST="5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6;8.9;8.9+PTX;9.0;9.0+PTX"
+_CUDA_ARCH_LIST_CMAKE="52-real;53-real;60-real;61-real;62-real;70-real;72-real;75-real;80-real;86-real;89-real;89-virtual;90-real;90-virtual"
+_pkgname=vision
+pkgbase='torchvision'
+pkgname=('torchvision' 'torchvision-cuda' 'python-torchvision' 
'python-torchvision-cuda')
+pkgver=0.15.1
+pkgrel=2
+pkgdesc='Datasets, transforms, and models specific to computer vision'
+arch=('x86_64')
+url='https://github.com/pytorch/vision'
+license=('BSD')
+depends=(
+  numactl
+  python-numpy
+  python-pillow
+  python-requests
+  python-scipy
+  python-sympy
+)
+optdepends=(
+  'ffmpeg4.4: video reader backend (the recommended one with better 
performance)'
+  'python-pycocotools: support for MS-COCO dataset'
+)
+makedepends=(
+  cmake
+  ninja
+  cuda
+  ffmpeg4.4
+  python-pytorch-opt-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=('4a2cdfb1067c9e1ce86cc632803e86e7133e63a79c7124afa5c514b6fa2a1e056316bb29d66a6d16ec976899ab7218b79572ae8673df2566b4a7b0d6238e8551'
+        
'e0e3637aae332c9c9ba0546597685b0368cb569f6d5a0ce2e792e1c204dc787b88d8f149fd0a3fba12527fa3048e41ba8605c3215df5062e6988f22fc5caabc8'
+        
'7db5d621f3099bc5455f1faeb7f4c3575a9cf70153ba56a6efc6d67d0ef2ac5438f6e117e621c5ef35c239eb3bce3fe17ce160e6b7765e8203d67a7299085429')
+
+prepare() {
+  cd "${srcdir}/${_pkgname}-${pkgver}"
+
+  # 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 -e 's#ffmpeg_include_dir = os.path.join(ffmpeg_root, 
"include")#ffmpeg_include_dir = "/usr/include/ffmpeg4.4"#' \
+      -e 's#ffmpeg_library_dir = os.path.join(ffmpeg_root, 
"lib")#ffmpeg_library_dir = "/usr/lib/ffmpeg4.4"#' \
+      -e 's#has_ffmpeg = ffmpeg_exe is not None#has_ffmpeg = True#' \
+      -e '/ffmpeg_exe/d' \
+      -e '/ffmpeg_bin/d' \
+      -e '/ffmpeg_root/d' \
+      -i setup.py
+
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" 
"${srcdir}/${_pkgname}-cuda-${pkgver}"
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" 
"${srcdir}/python-${_pkgname}-${pkgver}"
+  # need this to disable CUDA
+  cd "${srcdir}/python-${_pkgname}-${pkgver}"
+  sed -e 's#torch.cuda.is_available()#False#' -i setup.py
+  cp -a "${srcdir}/${_pkgname}-${pkgver}" 
"${srcdir}/python-${_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
+  make
+
+
+  # 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}"
+  make
+
+
+  # build python-torchvision
+  cd "${srcdir}/python-${_pkgname}-${pkgver}"
+  WITH_CUDA=0 \
+  FORCE_CUDA=0 \
+  TORCHVISION_USE_NVJPEG=0 \
+  python setup.py build
+
+
+  # build python-torchvision-cuda
+  cd "${srcdir}/python-${_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}/python-${_pkgname}-${pkgver}"
+  PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-cpython-${python_version}" \
+  python -c "from torchvision.io import VideoReader"
+
+  cd "${srcdir}/python-${_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}/python-${_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')
+  conflicts+=('python-torchvision')
+
+  cd "${srcdir}/python-${_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')
+
+  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')
+  conflicts+=('torchvision')
+
+  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