blob: 0f20c4f1210162e652e5edb20f3a208c52651841 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# Maintainer: wuxxin <wuxxin@gmail.com>
# Contributor: Lubosz Sarnecki @lubosz
# Based on python-torchvision; original contributors:
# Contributor: Christian Heusel
# Contributor: Konstantin Gizdov
# Contributor: Torsten Keßler <tpkessler@archlinux.org>
# Contributor: Konstantin Gizdov <arch at kge dot pw>
# Contributor: Butui Hu <hot123tea123@gmail.com>
# Contributor: Chih-Hsuan Yen <yan12125@archlinux.org>
# Contributor: Jean Lucas <jean@4ray.co>
# Based on python-torchvision-git; original contributors:
# Contributor: Stephen Zhang <zsrkmyn at gmail dot com>
_pkgname='vision'
pkgbase='python-torchvision-rocm'
pkgname=('torchvision-rocm' 'python-torchvision-rocm')
pkgver=0.28.0
pkgrel=1
pkgdesc='Datasets, transforms, and models specific to computer vision (with ROCm/HIP support)'
arch=('x86_64')
url='https://github.com/pytorch/vision'
license=('BSD-3-Clause')
depends=(
numactl
python-numpy
python-pillow
python-requests
python-scipy
python-sympy
python-pytorch-rocm
ffmpeg
libjpeg-turbo
libpng
)
makedepends=(
cmake
ninja
python-setuptools
rocm-hip-sdk
rocm-toolchain
qt6-base
miopen-hip
)
source=(
"${_pkgname}-${pkgver}.tar.gz::https://github.com/pytorch/vision/archive/v${pkgver}.tar.gz"
"glog_use_glog_export_none.patch"
)
sha256sums=('ecc4451241c8eeadc0c88213bd65c7932c9622d1d0034254b938f25362283ee9'
'a611dadf2e125a7b73a026bac05c8327e776c24d4876f1b0bdfc9249c6f4fe37')
prepare() {
cd "${srcdir}/${_pkgname}-${pkgver}"
patch -N -i "${srcdir}/glog_use_glog_export_none.patch"
# patch -p1 -i "${srcdir}"/ffmpeg-8.patch
}
build() {
cd "${srcdir}/${_pkgname}-${pkgver}"
if test -e build; then rm -rf build; fi
mkdir build
# populate build architecture list similar to pkg arch:python-pytorch
# python-pytorch 2.10.0-1: gfx950 lacks support for 128 bit atomics
_PYTORCH_ROCM_ARCH="$(rocm-supported-gfx -e gfx950)"
if test -n "$GPU_TARGETS"; then _PYTORCH_ROCM_ARCH="$GPU_TARGETS"; fi
if test -n "$AMDGPU_TARGETS"; then _PYTORCH_ROCM_ARCH="$AMDGPU_TARGETS"; fi
if test -n "$PYTORCH_ROCM_ARCH"; then _PYTORCH_ROCM_ARCH="$PYTORCH_ROCM_ARCH"; fi
export PYTORCH_ROCM_ARCH="${_PYTORCH_ROCM_ARCH}"
echo "building for PYTORCH_ROCM_ARCH=$PYTORCH_ROCM_ARCH"
# if ROCM_HOME is not set, hardcode ROCM_HOME, ROCM_PATH, HIP_ROOT_DIR to /opt/rocm
export ROCM_HOME="${ROCM_HOME:-/opt/rocm}"
export ROCM_PATH="$ROCM_HOME"
export HIP_ROOT_DIR="$ROCM_HOME"
# -fcf-protection is not supported by HIP/clang
# https://rocm.docs.amd.com/projects/llvm-project/en/latest/reference/rocmcc.html#support-status-of-other-clang-options
CXXFLAGS+=" -fcf-protection=none"
cmake \
-G Ninja \
-Wno-dev \
-B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_CXX_FLAGS="${CXXFLAGS} -O3" \
-DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \
-DWITH_PNG=ON \
-DWITH_JPEG=ON \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build
TORCHVISION_INCLUDE=${srcdir} \
TORCHVISION_LIBRARY=/usr/lib \
TORCHVISION_USE_NVJPEG=0 \
TORCHVISION_USE_VIDEO_CODEC=0 \
TORCHVISION_USE_FFMPEG=1 \
python setup.py build
}
package_torchvision-rocm() {
pkgdesc='Datasets, transforms, and models specific to computer vision (C++ library only, with ROCM support)'
provides+=(torchvision torchvision=${pkgver})
conflicts+=(torchvision)
cd "${srcdir}/${_pkgname}-${pkgver}"
DESTDIR="${pkgdir}" cmake --install build
install -m644 -Dt "$pkgdir/usr/share/licenses/$pkgname" LICENSE
}
package_python-torchvision-rocm() {
pkgdesc='Datasets, transforms, and models specific to computer vision (with ROCM support)'
provides+=(python-torchvision python-torchvision=${pkgver})
conflicts+=(python-torchvision)
cd "${srcdir}/${_pkgname}-${pkgver}"
TORCHVISION_INCLUDE=${srcdir} \
TORCHVISION_LIBRARY=/usr/lib \
FORCE_CUDA=1 \
python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
|