Skip to navigation

GPU Detection and PyTorch Setup

View as Markdown

This guide helps you resolve GPU detection issues when using PyTorch, CUDA, and machine learning frameworks like Unsloth on H100 instances.

Platform: AWS H100 instances, NGC containers

Problem

Users running machine learning frameworks on H100 instances report errors when importing modules or when GPUs are not detected by PyTorch.

Typical symptoms include:

  • RuntimeError: CUDA error: no CUDA-capable device is detected
  • torch.cuda.is_available() == False
  • Unsloth import fails or defaults to CPU

This occurs when the runtime environment lacks proper CUDA and PyTorch enablement for H100 GPUs.

Prerequisites

  • H100 or compatible NVIDIA GPU instance (for example, AWS H100)
  • Docker and NVIDIA Container Toolkit installed
  • Internet access to pull NGC containers or PyTorch wheels

Solution

The NGC PyTorch container includes verified CUDA and cuDNN versions for H100 GPUs.

1

Launch the container

Replace <PATH> with your local project path:

sudo docker run --rm -it \
--gpus all \
-v <PATH>:/workspace \
-w /workspace \
nvcr.io/nvidia/pytorch:24.09-py3
2

Install and test your framework

Inside the container, install and verify your ML framework:

pip install -U unsloth unsloth-zoo
python - <<'PY'
from unsloth import FastLanguageModel
print("Unsloth import OK")
PY

Option 2: Manual Setup in Existing Environment

If you need to use your current Python environment:

1

Check GPU visibility

nvidia-smi || echo "no NVIDIA detected"
echo $NVIDIA_VISIBLE_DEVICES
cat /proc/driver/nvidia/version 2>/dev/null | head -1
2

Verify PyTorch sees the GPU

import torch
print("cuda_available:", torch.cuda.is_available())
print("torch_cuda:", torch.version.cuda)
print("device_count:", torch.cuda.device_count())
print("name0:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else None)
3

Install CUDA-enabled PyTorch

If NVIDIA is visible but PyTorch shows CPU-only, install CUDA wheels:

pip uninstall -y torch torchvision torchaudio
pip install --index-url https://download.pytorch.org/whl/cu124 torch torchvision torchaudio
4

Install your ML framework

pip install -U unsloth unsloth-zoo
5

Test GPU detection

python -c "import unsloth; print('GPU available:', unsloth.torch.cuda.is_available())"

Common Issues

PyTorch installed without CUDA support

Symptom: torch.cuda.is_available() returns False or ModuleNotFoundError: No module named 'torch'

Fix: Reinstall PyTorch with CUDA support:

pip uninstall -y torch torchvision torchaudio
pip install --index-url https://download.pytorch.org/whl/cu124 \
torch torchvision torchaudio

Missing dependencies (xformers, torchao)

Error examples:

  • unsloth ... requires xformers>=0.0.27.post2
  • unsloth-zoo ... requires torchao>=0.13.0

Fix: Install required extras:

pip install xformers torchao

These dependencies are optional. Unsloth may work without them depending on your use case.

GPU visible in nvidia-smi but Python cannot import torch

Cause: Torch installed in a different environment or missing from PATH.

Fix: Reinstall in the correct environment:

which python3
python3 -m pip install --force-reinstall torch

Verification

After completing the setup:

  • nvidia-smi lists the H100 GPU with no Xid or driver errors
  • torch.cuda.is_available() returns True
  • from unsloth import FastLanguageModel runs without error
  • Model training or inference runs utilize the GPU (visible via nvidia-smi process list)

Workaround

If the container or CUDA installation fails, revert to CPU-only mode temporarily:

pip uninstall unsloth unsloth-zoo
pip install unsloth-cpu

Alternatively, use an older NGC PyTorch container (for example, 23.10-py3) for temporary compatibility.

Additional Resources

H100 GPUs typically require modern drivers (>= 550 recommended) and PyTorch cu124 wheels. Unsloth doesn’t support AMD/CPU paths—it requires NVIDIA CUDA or Intel XPU.