Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
61016ce
Switch ROCm CI test job from 7.1 to 7.14
akashveramd Aug 18, 2026
0e2c4f0
Bundle librocjpeg into ROCm wheels and set RPATH for zero-config runt…
akashveramd Aug 10, 2026
f6e8661
Exclude libva* from auditwheel bundling to fix ROCm wheel repair
akashveramd Aug 18, 2026
a234427
Skip dnf rocjpeg install when already present via ROCm 7.14 pip wheels
akashveramd Aug 18, 2026
d7faeaa
Always install libva even when librocjpeg is present via pip wheels
akashveramd Aug 19, 2026
ddf2313
Fix ROCm 7.14 librocjpeg bundling: glob-search _rocm_sdk_* site-packages
akashveramd Aug 19, 2026
e0d4da7
Add torch/lib to bundled librocjpeg RPATH for PyTorch ROCm bundled la…
akashveramd Aug 19, 2026
2efd33f
fix: collapse multi-line python -c to fix YAML syntax error on line 168
akashveramd Aug 19, 2026
efaac78
Set LD_LIBRARY_PATH for _rocm_sdk_core at test time; improve ldd diag…
akashveramd Aug 19, 2026
1fc3bec
rocm: don't bundle librocjpeg; RPATH libtorchcodec_image.so instead
akashveramd Aug 19, 2026
4fa0e55
ci: add AMD librocjpeg RPATH diagnostic to verify non-CI user correct…
akashveramd Aug 19, 2026
432435a
rocm: fix check_bundling() to accept not-bundled librocjpeg
akashveramd Aug 19, 2026
f69c6a1
rocm: fix bundle_third_party_licenses and license check for unbundled…
akashveramd Aug 19, 2026
5bd86d3
fix: remove nested zipfile open that shadowed outer zf in check_bundling
akashveramd Aug 19, 2026
a22a7b2
fix: correct RPATH depth in _patch_image_so_rpath_in_wheel
akashveramd Aug 19, 2026
442ac6c
rocm: install mesa-amdgpu-va-drivers for ROCm 7.14 pip-wheel path
akashveramd Aug 19, 2026
f58d326
rocm: set LIBVA_DRIVERS_PATH to mesa bundled in _rocm_sdk_core
akashveramd Aug 19, 2026
535957e
fix: single-line python in CI yaml and improve mesa driver discovery
akashveramd Aug 19, 2026
2a61179
rocm: also set LIBVA_DRIVER_NAME for AMD's vendored gallium VA-API dr…
akashveramd Aug 19, 2026
a6ee5f9
rocm: fix four distinct rocJPEG test failures on MI350X
akashveramd Aug 19, 2026
405dc3c
rocm: fix ROCJPEG_CSS_GRAY -> ROCJPEG_CSS_400 (grayscale is CSS_400 i…
akashveramd Aug 20, 2026
91964be
rocm: gracefully handle ROCJPEG_BACKEND_HYBRID unavailability
akashveramd Aug 20, 2026
a94cf09
rocm: fix install_rocjpeg.sh pip-wheel detection to not match /opt/rocm
akashveramd Aug 20, 2026
312d26d
rocm: remove redundant libva dnf install for ROCm 7.14 pip-wheel path
akashveramd Aug 20, 2026
dc89c91
rocm: simplify ROCm <=7.2 install to just rocjpeg-devel
akashveramd Aug 20, 2026
8fd2c61
rocm: restore explicit libva-amdgpu + mesa install for ROCm <=7.2
akashveramd Aug 20, 2026
7639d20
rocm: simplify install_rocjpeg.sh following official rocJPEG 7.2 docs
akashveramd Aug 20, 2026
88f7ead
rocm: fix dnf install and add ROCM_HOME debug prints
akashveramd Aug 21, 2026
e853e3e
rocm: fix rocjpeg install with rpm --nodeps fallback for missing mesa…
akashveramd Aug 21, 2026
fc67147
rocm: remove debug print statements from _find_rocjpeg_license
akashveramd Aug 21, 2026
909d84b
rocm: address PR review comments on repair_wheel.py and install_rocjp…
akashveramd Aug 21, 2026
a5121a9
rocm: fix pip-wheel detection across Python versions in install_rocjp…
akashveramd Aug 21, 2026
4fb7aa0
rocm: fix pip-wheel detection glob depth for /opt/conda layout
akashveramd Aug 21, 2026
443ea4f
rocm: use per-interpreter importlib check for pip-wheel rocjpeg detec…
akashveramd Aug 21, 2026
bc9fafb
rocm: discover python3* executables dynamically instead of hardcoding…
akashveramd Aug 21, 2026
733cea9
rocm: simplify decoder to hardware-only backend and remove test infra
akashveramd Aug 25, 2026
310035e
rocm: add diagnostic logging to verify HARDWARE backend initialization
akashveramd Aug 25, 2026
99d3266
rocm: add VA-API/DRM diagnostics to CI workflow
akashveramd Aug 25, 2026
c233905
rocm: enable ROCJPEG_LOG_LEVEL=3 in CI for verbose rocJPEG diagnostics
akashveramd Aug 25, 2026
21a9678
rocm: add ls of rocm_sysdeps/lib to CI diagnostics
akashveramd Aug 25, 2026
83b5d66
rocm: add vainfo and UUID diagnostics to investigate vaInitialize fai…
akashveramd Aug 25, 2026
9c405c4
rocm: remove vainfo and hardcoded renderD128 diagnostic commands
akashveramd Aug 26, 2026
431139f
[ROCm] Update ROCm version to 10.0 and clean up version-specific comm…
akashveramd Aug 27, 2026
5637b6e
[ROCm] Drop legacy system install support, only support TheRock pip-w…
akashveramd Aug 28, 2026
fd1a48b
[ROCm] Remove install_rocjpeg.sh - rocJPEG ships in _rocm_sdk_core fo…
akashveramd Aug 28, 2026
2ce8236
[ROCm] Remove all legacy system install fallbacks and references
akashveramd Aug 28, 2026
11464b0
[ROCm] Remove hardcoded /opt/conda fallback from _find_rocjpeg_lib
akashveramd Aug 28, 2026
0344000
[ROCm] Fix wheel build matrix to use ROCm 10.0 instead of 7.2/7.14
akashveramd Aug 28, 2026
b1edf25
[ROCm] Revert to upstream generate_binary_build_matrix for wheel builds
akashveramd Aug 28, 2026
c1cf81f
[ROCm] Filter build matrix to ROCm 10.0 only
akashveramd Aug 28, 2026
59a7c6b
[ROCm] Filter out legacy 7.14 from build matrix rather than selecting…
akashveramd Aug 28, 2026
7cbf2c5
[ROCm] Fix filter-matrix jq command to produce valid JSON
akashveramd Aug 28, 2026
0a8c51a
[ROCm] Fix libva* exclusion comment: lives in _rocm_sdk_core, not system
akashveramd Aug 29, 2026
e84bb5e
trigger CI
akashveramd Aug 31, 2026
a745239
[ROCm] Fix rocJPEG VA-API init by creating missing symlink and preloa…
akashveramd Aug 31, 2026
36c2e0d
[ROCm] Fix rocJPEG VA-API init by creating missing symlinks in pip wheel
akashveramd Aug 31, 2026
2a6a8ca
[ROCm] Remove diagnostic code from CI workflow
akashveramd Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 39 additions & 9 deletions .github/workflows/linux_rocm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,22 @@ jobs:
with-rocm: enable
build-python-only: "disable"

build:
filter-matrix:
# torchcodec only supports the TheRock/pip-wheel layout (ROCm 10.0+).
# Strip legacy ROCm versions that the upstream matrix may include.
needs: generate-matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.filter.outputs.matrix }}
steps:
- id: filter
run: |
matrix=$(echo '${{ needs.generate-matrix.outputs.matrix }}' \
| jq -c 'del(.include[] | select(.gpu_arch_version == "7.14"))')
echo "matrix=$matrix" >> "$GITHUB_OUTPUT"

build:
needs: filter-matrix
strategy:
fail-fast: false
name: Build and Upload wheel
Expand All @@ -49,7 +63,7 @@ jobs:
ref: ""
test-infra-repository: pytorch/test-infra
test-infra-ref: main
build-matrix: ${{ needs.generate-matrix.outputs.matrix }}
build-matrix: ${{ needs.filter-matrix.outputs.matrix }}
pre-script: packaging/pre_build_script.sh
post-script: packaging/post_build_script.sh
smoke-test-script: packaging/fake_smoke_test.py
Expand All @@ -72,7 +86,7 @@ jobs:
fail-fast: false
matrix:
python-version: ['3.10']
rocm-version: ['7.1']
rocm-version: ['10.0']
uses: pytorch/test-infra/.github/workflows/linux_job_v2.yml@main
permissions:
id-token: write
Expand Down Expand Up @@ -138,12 +152,6 @@ jobs:
# Prevent the checked-out src/ tree from shadowing the installed wheel.
bash packaging/remove_src.sh

echo '::group::Install rocJPEG runtime'
# The wheel deliberately does not bundle librocjpeg (see repair_wheel.py),
# so decode_jpeg(device="cuda") needs it present at runtime.
bash packaging/install_rocjpeg.sh
echo '::endgroup::'

echo '::group::Install torchcodec from the wheel'
python -m pip install "${RUNNER_ARTIFACT_DIR}"/*.whl -vvv
echo '::endgroup::'
Expand All @@ -160,6 +168,28 @@ jobs:
echo '::endgroup::'

echo '::group::Run FFmpeg-free image decoder tests (incl. rocJPEG GPU)'
rocm_core_lib=$(python -c "import importlib.util, pathlib, os; spec = importlib.util.find_spec('_rocm_sdk_core'); p = pathlib.Path(spec.submodule_search_locations[0]) if spec else None; dirs = [str(p/'lib'), str(p/'lib'/'rocm_sysdeps'/'lib')] if p else []; print(os.pathsep.join(d for d in dirs if pathlib.Path(d).is_dir()))" 2>/dev/null || true)
if [ -n "${rocm_core_lib}" ]; then
export LD_LIBRARY_PATH="${rocm_core_lib}:${LD_LIBRARY_PATH:-}"
fi
rocm_path=$(python -c "import importlib.util, pathlib; spec = importlib.util.find_spec('_rocm_sdk_core'); print(str(pathlib.Path(spec.submodule_search_locations[0]))) if spec else ''" 2>/dev/null || true)
if [ -n "${rocm_path}" ]; then
export ROCM_PATH="${rocm_path}"
# The _rocm_sdk_core pip wheel is missing several symlinks that are
# present in the TheRock tarball installation. Without them rocjpeg
# cannot locate the VA-API driver and its dependencies. Create any
# missing ones using the reference tarball layout as the guide.
sysdeps="${ROCM_PATH}/lib/rocm_sysdeps/lib"
_mk_symlink() {
local link="${sysdeps}/$1" target="$2"
[ -e "${sysdeps}/${target}" ] && [ ! -e "${link}" ] && ln -sf "${target}" "${link}"
}
_mk_symlink radeonsi_drv_video.so librocm_sysdeps_gallium_drv_video.so
_mk_symlink libgallium_drv_video.so librocm_sysdeps_gallium_drv_video.so
_mk_symlink libva.so librocm_sysdeps_va.so.2
_mk_symlink libva-drm.so librocm_sysdeps_va-drm.so.2
unset -f _mk_symlink
fi
# torch.cuda.is_available() is True on ROCm (HIP masquerades as CUDA), so
# the needs_cuda image tests run here and exercise the GPU JPEG decoder,
# which is rocJPEG on ROCm: the jpeg_cuda params call
Expand Down
32 changes: 0 additions & 32 deletions packaging/install_rocjpeg.sh

This file was deleted.

4 changes: 0 additions & 4 deletions packaging/pre_build_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,3 @@
set -ex

bash packaging/install_build_dependencies.sh

if [[ "${CU_VERSION:-}" == rocm* ]]; then
bash packaging/install_rocjpeg.sh
fi
Loading
Loading