studio: honor UNSLOTH_TORCH_INDEX_FAMILY in CUDA repair path, assert torch CUDA family at studio image build
_detect_cuda_torch_index_url now respects the explicit family override before probing nvidia-smi, matching install.sh get_torch_index_url and install.ps1 Get-TorchIndexUrl. Without it, a GPU-less environment falls back to cu126 wheels which lack sm_100/sm_120 kernels and break training on Blackwell. ROCm repair path is intentionally unchanged. Dockerfile.studio now fails the build if the Studio venv torch local version tag does not match the pinned TORCH_FAMILY, so a studio ref whose installer ignores the override can never ship a silently wrong image. Metadata-only check so QEMU arm64 builds do not need to load torch.
This commit is contained in:
parent
99873237a1
commit
9d39aeec2b
2 changed files with 12 additions and 0 deletions
|
|
@ -101,6 +101,12 @@ RUN set -eux \
|
|||
&& UNSLOTH_STUDIO_HOME="${UNSLOTH_STUDIO_HOME}" \
|
||||
UNSLOTH_TORCH_INDEX_FAMILY="${TORCH_FAMILY}" \
|
||||
bash install.sh --local \
|
||||
# Fail loud if the Studio venv torch missed the pinned CUDA family (an
|
||||
# install.sh that ignores UNSLOTH_TORCH_INDEX_FAMILY falls back to
|
||||
# nvidia-smi probing, which cannot work at build time and lands on cu126
|
||||
# wheels with no sm_100/sm_120 kernels). metadata check only: importing
|
||||
# torch needs native libs, which QEMU arm64 builds cannot load.
|
||||
&& "${UNSLOTH_STUDIO_HOME}/unsloth_studio/bin/python" -c "from importlib.metadata import version; v = version('torch'); assert v.endswith('+${TORCH_FAMILY}'), 'Studio venv torch ' + v + ' does not match ${TORCH_FAMILY}'; print('Studio venv torch', v)" \
|
||||
&& rm -rf "${UNSLOTH_STUDIO_HOME}/src/.git" /root/.cache \
|
||||
&& if [ "${TARGETARCH:-amd64}" = "arm64" ]; then \
|
||||
for NVRTC_DIR in "${UNSLOTH_STUDIO_HOME}"/unsloth_studio/lib/python*/site-packages/nvidia/cuda_nvrtc/lib; do \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue