#!/usr/bin/env bash set -euo pipefail cuda_root="${CUDA_HOME:-/usr/local/cuda}" probe_header() { local name="$1" header="$2" if [[ -e "$cuda_root/include/$header" ]]; then echo "$name=header_present:$header" else echo "$name=missing:$header" fi } probe_header cuSPARSE cusparse.h probe_header cuSPARSELt cusparseLt.h probe_header cuFFT cufft.h probe_header cuRAND curand.h probe_header cuSOLVER cusolverDn.h probe_header cuTENSOR cutensor.h probe_header cuTensorNet cutensornet.h probe_header Thrust thrust/version.h probe_header CUB cub/version.cuh probe_header libcu++ cuda/std/version probe_header Cooperative_Groups cooperative_groups.h probe_header cuFile cufile.h probe_header nvJPEG nvjpeg.h probe_header nvJPEG2000 nvjpeg2k.h probe_header NPP npp.h probe_header cuDSS cudss.h python3 - <<'PY' import importlib.metadata as metadata packages = { "DALI": "nvidia-dali-cuda130", "CV-CUDA": "cvcuda-cu13", "nvImageCodec": "nvidia-nvimgcodec-cu13", "nvCOMP": "nvidia-nvcomp-cu13", } for name, package in packages.items(): try: print(f"{name}={metadata.version(package)}") except metadata.PackageNotFoundError: print(f"{name}=missing:{package}") PY if command -v ffmpeg >/dev/null; then ffmpeg -hide_banner -decoders 2>/dev/null | grep -E 'cuvid|nvdec' | sed -n '1,10p' || true ffmpeg -hide_banner -encoders 2>/dev/null | grep nvenc | sed -n '1,10p' || true else echo "NVDEC/NVENC=ffmpeg_missing" fi cat <<'NOTE' Header/package discovery proves installation only. Every Later component stays available_not_on_trace until a workload event and profiler artifact name its API or kernel. NOTE