unsloth/blackwell
stevenxdavis 56dd244340 Fix incorrect function call in test_qwen3_grpo.py (#3212)
* Update test_qwen3_grpo.py to correct function call

This test file uses the incorrect name for the function, which is gradient_checkpointing_disable(), not disable_gradient_checkpointing(). 

I copied the line from test_llama32_sft.py - I'm not sure if this actually is required, just wanted it consistent for when other people like me test this and have no clue what they're doing when it throws an exception.

* Update blackwell/test_qwen3_grpo.py

Co-authored-by: Daniel Han <danielhanchen@gmail.com>

---------

Co-authored-by: Daniel Han <danielhanchen@gmail.com>
2025-09-03 04:39:12 -07:00
..
blackwell.requirements.txt add instructions for installing on blackwell (#2812) 2025-06-27 04:54:55 -07:00
README.md Replace back ticks with single quotes (#3157) 2025-08-18 05:52:30 -07:00
test_llama32_sft.py add instructions for installing on blackwell (#2812) 2025-06-27 04:54:55 -07:00
test_qwen3_grpo.py Fix incorrect function call in test_qwen3_grpo.py (#3212) 2025-09-03 04:39:12 -07:00

Unsloth Blackwell Compatibility

For RTX 5060, RTX 5070, RTX 5080, RTX 5090 GPUs and also B200, B40, GB100, GB102, GB20* and GPUs listed in https://en.wikipedia.org/wiki/Blackwell_(microarchitecture)

Overview

Blackwell (sm100+) requires all dependent libraries to be compiled with cuda 12.8.

The core libs for running unsloth which have dependencies on CUDA version are:

  • bitsandbytes - already has wheels built with CUDA 12.8 so pip install should work out of the box
  • triton - requires triton>=3.3.1
  • torch - requires installing with pip install torch --extra-index-url https://download.pytorch.org/whl/cu128
  • vllm - vLLM 0.10.0 supports Blackwell now, but use CUDA 12.8: uv pip install -U vllm --torch-backend=cu128
  • xformers - (Optional) as of 6/26, xformers wheels are not yet built with sm100+ enabled as support was only recently added so will require a source build (see below).

Installation

Using uv

The installation order is important, since we want the overwrite bundled dependencies with specific versions (namely, xformers and triton).

  1. I prefer to use uv over pip as it's faster and better for resolving dependencies, especially for libraries which depend on torch but for which a specific CUDA version is required per this scenario.

    Install uv

    curl -LsSf https://astral.sh/uv/install.sh | sh && source $HOME/.local/bin/env
    

    Create a project dir and venv:

    mkdir 'unsloth-blackwell' && cd 'unsloth-blackwell'
    uv venv .venv --python=3.12 --seed
    source .venv/bin/activate
    
  2. Install vllm

    uv pip install -U vllm --torch-backend=cu128
    

    Note that we have to specify cu128, otherwise vllm will install torch==2.7.0 but with cu126.

  3. Install unsloth dependencies

    uv pip install unsloth unsloth_zoo bitsandbytes
    

    If you notice weird resolving issues due to Xformers, you can also install Unsloth from source without Xformers:

    uv pip install -qqq \
    "unsloth_zoo[base] @ git+https://github.com/unslothai/unsloth-zoo" \
    "unsloth[base] @ git+https://github.com/unslothai/unsloth"
    
  4. Download and build xformers (Optional)

    Xformers is optional, but it is definitely faster and uses less memory. We'll use PyTorch's native SDPA if you do not want Xformers. Building Xformers from source might be slow, so beware!

    # First uninstall xformers installed by previous libraries
    uv pip uninstall xformers
    
    # Clone and build
    git clone --depth=1 https://github.com/facebookresearch/xformers --recursive
    cd xformers
    export TORCH_CUDA_ARCH_LIST="12.0"
    python setup.py install
    

    Note that we have to explicitly set TORCH_CUDA_ARCH_LIST=12.0.

  5. transformers Install any transformers version, but best to get the latest.

    uv pip install -U transformers
    

Using conda or mamba

  1. Install conda/mamba

    curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
    

    Run the installation script

    bash Miniforge3-$(uname)-$(uname -m).sh
    

    Create a conda or mamba environment

    conda create --name unsloth-blackwell python==3.12 -y
    

    Activate newly created environment

    conda activate unsloth-blackwell
    
  2. Install vllm

    Make sure you are inside the activated conda/mamba environment. You should see the name of your environment as a prefix to your terminal shell like this your (unsloth-blackwell)user@machine:

    pip install -U vllm --extra-index-url https://download.pytorch.org/whl/cu128
    

    Note that we have to specify cu128, otherwise vllm will install torch==2.7.0 but with cu126.

  3. Install unsloth dependencies

    Make sure you are inside the activated conda/mamba environment. You should see the name of your environment as a prefix to your terminal shell like this your (unsloth-blackwell)user@machine:

    pip install unsloth unsloth_zoo bitsandbytes
    
  4. Download and build xformers (Optional)

    Xformers is optional, but it is definitely faster and uses less memory. We'll use PyTorch's native SDPA if you do not want Xformers. Building Xformers from source might be slow, so beware!

    You should see the name of your environment as a prefix to your terminal shell like this your (unsloth-blackwell)user@machine:

    # First uninstall xformers installed by previous libraries
    pip uninstall xformers
    
    # Clone and build
    git clone --depth=1 https://github.com/facebookresearch/xformers --recursive
    cd xformers
    export TORCH_CUDA_ARCH_LIST="12.0"
    python setup.py install
    

    Note that we have to explicitly set TORCH_CUDA_ARCH_LIST=12.0.

  5. Update triton

    Make sure you are inside the activated conda/mamba environment. You should see the name of your environment as a prefix to your terminal shell like this your (unsloth-blackwell)user@machine:

    pip install -U triton>=3.3.1
    

    triton>=3.3.1 is required for Blackwell support.

  6. Transformers Install any transformers version, but best to get the latest.

    uv pip install -U transformers
    

If you are using mamba as your package just replace conda with mamba for all commands shown above.

WSL-Specific Notes

If you're using WSL (Windows Subsystem for Linux) and encounter issues during xformers compilation (reminder Xformers is optional, but faster for training) follow these additional steps:

  1. Increase WSL Memory Limit Create or edit the WSL configuration file:

    # Create or edit .wslconfig in your Windows user directory
    # (typically C:\Users\YourUsername\.wslconfig)
    
    # Add these lines to the file
    [wsl2]
    memory=16GB  # Minimum 16GB recommended for xformers compilation
    processors=4  # Adjust based on your CPU cores
    swap=2GB
    localhostForwarding=true
    

    After making these changes, restart WSL:

    wsl --shutdown
    
  2. Install xformers Use the following command to install xformers with optimized compilation for WSL:

    # Set CUDA architecture for Blackwell GPUs
    export TORCH_CUDA_ARCH_LIST="12.0"
    
    # Install xformers from source with optimized build flags
    pip install -v --no-build-isolation -U git+https://github.com/facebookresearch/xformers.git@main#egg=xformers
    

    The --no-build-isolation flag helps avoid potential build issues in WSL environments.

Post Installation notes:

After installation, your environment should look similar to blackwell.requirements.txt.

Note, might need to downgrade numpy<=2.2 after all the installs.

Test

Both test_llama32_sft.py and test_qwen3_grpo.py should run without issue if correct install. If not, check diff between your installed env and blackwell.requirements.txt.