diff options
-rw-r--r-- | .SRCINFO | 33 | ||||
-rw-r--r-- | PKGBUILD | 85 |
2 files changed, 67 insertions, 51 deletions
@@ -1,46 +1,43 @@ pkgbase = python-torchvision pkgdesc = Datasets, transforms, and models specific to computer vision - pkgver = 0.8.1 - pkgrel = 3 + pkgver = 0.13.1 + pkgrel = 2 url = https://github.com/pytorch/vision arch = x86_64 license = BSD - checkdepends = python-mock - checkdepends = python-pytest - checkdepends = python-scipy makedepends = cuda - makedepends = ffmpeg + makedepends = ffmpeg4.4 makedepends = python-av makedepends = python-pytorch-cuda makedepends = python-setuptools makedepends = qt5-base depends = python-numpy depends = python-pillow + depends = python-requests depends = python-scipy - depends = python-six - depends = python-tqdm - optdepends = ffmpeg: video reader backend (the recommended one with better performance) + optdepends = ffmpeg4.4: video reader backend (the recommended one with better performance) optdepends = python-av: video reader backend (the default one) optdepends = python-pycocotools: support for MS-COCO dataset - source = vision-0.8.1.tar.gz::https://github.com/pytorch/vision/archive/v0.8.1.tar.gz - sha512sums = c2dc03f631d8e801e3e96595c37963b8e9242d07782c2fd632789b3f2b783fa2f879a816ac2b31f2d9988f008f8368cd164338ba6b86a0a2e4655601c9a9b5b1 + source = vision-0.13.1.tar.gz::https://github.com/pytorch/vision/archive/v0.13.1.tar.gz + source = https://github.com/NVIDIA/DALI/raw/main/dali/operators/reader/loader/video/nvdecode/cuviddec.h + source = https://github.com/NVIDIA/DALI/raw/main/dali/operators/reader/loader/video/nvdecode/nvcuvid.h + sha512sums = 219e787cd04632f480120d6ff74d092f6804beb9543dbc9fc9be6cc0dd0c7271bb91508a2183c11f2faf6365e73ed16c2501dc6f6e7cb49f61deb6ce44476e70 + sha512sums = 8f97deedab5b0de1154ce7f8486eadcc7556a9cbb01fb44a988729da80b982daafbfe8da32b7f3ced78c1544b3ac696a569c50a6b4cb244f502b07e615b4de10 + sha512sums = 89f8d4410a238dc52b27200dfb8db9ff1a58777bdfebb346f3d157e16108930dc3b56f18b611f5de1cb081afa6be6768b52e2486cca57703b490194305dc1c67 pkgname = python-torchvision depends = python-numpy depends = python-pillow + depends = python-requests depends = python-scipy - depends = python-six - depends = python-tqdm depends = python-pytorch pkgname = python-torchvision-cuda pkgdesc = Datasets, transforms, and models specific to computer vision (with GPU support) depends = python-numpy depends = python-pillow + depends = python-requests depends = python-scipy - depends = python-six - depends = python-tqdm depends = python-pytorch-cuda - provides = python-torchvision=0.8.1 - conflicts = python-torchvision=0.8.1 - + provides = python-torchvision=0.13.1 + conflicts = python-torchvision=0.13.1 @@ -3,74 +3,91 @@ # Contributor: Jean Lucas <jean@4ray.co> # Based on python-torchvision-git; original contributors: # Contributor: Stephen Zhang <zsrkmyn at gmail dot com> +# +# NOTE: +# to build with GPU deocder, we use nvidia-sdk header files from https://github.com/NVIDIA/DALI for convenient +# 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.0+PTX;7.2;7.2+PTX;7.5;7.5+PTX;8.0;8.0+PTX;8.6;8.6+PTX" +_CUDA_ARCH_LIST="5.2;5.3;6.0;6.1;6.2;7.0;7.2;7.5;8.0;8.6;8.6+PTX" pkgname=('python-torchvision' 'python-torchvision-cuda') _pkgname=vision -pkgver=0.8.1 -pkgrel=3 +pkgver=0.13.1 +pkgrel=2 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-scipy' - 'python-six' - 'python-tqdm' + python-numpy + python-pillow + python-requests + python-scipy ) optdepends=( - 'ffmpeg: video reader backend (the recommended one with better performance)' + '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=( - 'cuda' - 'ffmpeg' - 'python-av' - 'python-pytorch-cuda' - 'python-setuptools' - 'qt5-base' + cuda + ffmpeg4.4 + python-av + python-pytorch-cuda + python-setuptools + qt5-base ) -checkdepends=( - 'python-mock' - 'python-pytest' - 'python-scipy' +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" ) -source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/pytorch/vision/archive/v${pkgver}.tar.gz") -sha512sums=('c2dc03f631d8e801e3e96595c37963b8e9242d07782c2fd632789b3f2b783fa2f879a816ac2b31f2d9988f008f8368cd164338ba6b86a0a2e4655601c9a9b5b1') - -get_pyver() { - python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))' -} +sha512sums=('219e787cd04632f480120d6ff74d092f6804beb9543dbc9fc9be6cc0dd0c7271bb91508a2183c11f2faf6365e73ed16c2501dc6f6e7cb49f61deb6ce44476e70' + '8f97deedab5b0de1154ce7f8486eadcc7556a9cbb01fb44a988729da80b982daafbfe8da32b7f3ced78c1544b3ac696a569c50a6b4cb244f502b07e615b4de10' + '89f8d4410a238dc52b27200dfb8db9ff1a58777bdfebb346f3d157e16108930dc3b56f18b611f5de1cb081afa6be6768b52e2486cca57703b490194305dc1c67') 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}" } build() { - cd "${srcdir}/${_pkgname}-${pkgver}" + cd "${_pkgname}-${pkgver}" python setup.py build - cd "${srcdir}/${_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}/${_pkgname}-${pkgver}" - PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-$(get_pyver)" pytest -v - + PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-cpython-${python_version}" \ + python -c "from torchvision.io import VideoReader" + cd "${srcdir}/${_pkgname}-cuda-${pkgver}" - PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-$(get_pyver)" pytest -v + PYTHONPATH="${PWD}/build/lib.linux-${CARCH}-cpython-${python_version}" \ + python -c "from torchvision.io import VideoReader" } package_python-torchvision() { depends+=(python-pytorch) - cd "${srcdir}/${_pkgname}-${pkgver}" + cd "${_pkgname}-${pkgver}" python setup.py install --root="${pkgdir}" --optimize=1 --skip-build install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" } @@ -80,8 +97,10 @@ package_python-torchvision-cuda() { depends+=(python-pytorch-cuda) provides+=(python-torchvision=${pkgver}) conflicts+=(python-torchvision=${pkgver}) - - cd "${srcdir}/${_pkgname}-cuda-${pkgver}" + + cd "${_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 |