Windows GPU Setup Guide | Kamiwaza Docs
Overview
Kamiwaza supports hardware acceleration on Windows through WSL2 with the following GPU configurations:
- NVIDIA GPUs (RTX series, GTX series, Quadro series)
- Intel Arc GPUs (A3xx, A5xx, A7xx series)
- Intel Integrated GPUs (UHD Graphics, Iris Xe)
Prerequisites
System Requirements
- Windows 11 (Build 22000 or later)
- WSL2 enabled and updated
- Latest GPU drivers installed
- Compatible GPU hardware
WSL2 Requirements
- WSL2 kernel version 5.10.60.1 or later
- Windows 11 with GPU virtualization support
- GPU drivers with WSL2 compatibility
NVIDIA GPU Setup
Supported Hardware
- RTX 40 Series: RTX 4090, RTX 4080, RTX 4070 Ti, RTX 4070, RTX 4060 Ti, RTX 4060
- RTX 30 Series: RTX 3090, RTX 3080, RTX 3070, RTX 3060 Ti, RTX 3060
- RTX 20 Series: RTX 2080 Ti, RTX 2080, RTX 2070, RTX 2060
- GTX 16 Series: GTX 1660 Ti, GTX 1660, GTX 1650
- GTX 10 Series: GTX 1080 Ti, GTX 1080, GTX 1070, GTX 1060
Driver Requirements
- Minimum: NVIDIA Driver 470.82 or later
- Recommended: NVIDIA Driver 535.98 or later
- Latest: Download from NVIDIA Driver Downloads
Installation Steps
1. Install NVIDIA Drivers
- Download the latest driver for your GPU
- Run the installer as Administrator
- Restart your computer
- Verify installation:
nvidia-smiin Command Prompt
2. Install NVIDIA CUDA Toolkit for WSL
# In WSL (Ubuntu 24.04)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
3. Verify GPU Access in WSL
# Check if GPU is visible
nvidia-smi
Configuration Files
.wslconfig (Windows)
[wsl2]
gpuSupport=true
memory=16GB
processors=8
Environment Variables (WSL)
# Add to ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
Intel Arc GPU Setup
Supported Hardware
- Arc A7 Series: A770, A750
- Arc A5 Series: A580, A570, A560, A550
- Arc A3 Series: A380, A370, A350, A310
Driver Requirements
- Minimum: Intel Arc Driver 31.0.101.4502 or later
- Recommended: Latest Intel Arc Driver
- Download: Intel Arc Driver Downloads
Installation Steps
1. Install Intel Arc Drivers
- Download the latest Intel Arc driver
- Run the installer as Administrator
- Restart your computer
- Verify installation in Device Manager
2. Install Intel OpenCL Runtime and oneAPI (Recommended)
# In WSL (Ubuntu 24.04)
# Add Intel's GPG key
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-keyring.gpg > /dev/null
# Add the oneAPI repository
echo "deb [signed-by=/usr/share/keyrings/oneapi-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \
sudo tee /etc/apt/sources.list.d/oneAPI.list
# Update and install Intel OpenCL runtime and oneAPI
sudo apt update
sudo apt install -y intel-opencl-icd intel-basekit
# Configure permissions
sudo usermod -a -G render $USER
newgrp render
3. Alternative: Install OpenCL Runtime Only
# Install OpenCL loader and tools
sudo apt-get update
sudo apt-get install -y ocl-icd-libopencl1 ocl-icd-opencl-dev opencl-headers clinfo
# Add Intel Graphics PPA for latest drivers
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y ppa:kobuk-team/intel-graphics
sudo apt-get update
sudo apt-get install -y libze-intel-gpu1 libze1 intel-opencl-icd
4. Verify GPU Access in WSL
# Check OpenCL availability
clinfo | grep "Platform Name"
# Check GPU devices
clinfo | grep "Device Name"
Configuration Files
.wslconfig (Windows)
[wsl2]
gpuSupport=true
memory=16GB
processors=8
Environment Variables (WSL)
# Add to ~/.bashrc
export INTEL_OPENCL_CONFIG=/etc/OpenCL/vendors/intel.icd
# For oneAPI users, source the environment
echo 'source /opt/intel/oneapi/setvars.sh' >> ~/.bashrc
Intel Integrated GPU Setup
Supported Hardware
- 12th Gen Intel: UHD Graphics 730, UHD Graphics 770
- 13th Gen Intel: UHD Graphics 770, UHD Graphics 730
- 14th Gen Intel: UHD Graphics 770, UHD Graphics 730
- Intel Iris Xe: Integrated graphics in 11th-14th gen processors
Driver Requirements
- Minimum: Intel Graphics Driver 30.0.101.1190 or later
- Recommended: Latest Intel Graphics Driver
- Download: Intel Graphics Driver Downloads
Installation Steps
1. Install Intel Graphics Drivers
- Download the latest Intel Graphics driver
- Run the installer as Administrator
- Restart your computer
- Verify installation in Device Manager
2. Install Intel OpenCL Runtime
# In WSL (Ubuntu 24.04)
sudo apt-get update
sudo apt-get install -y intel-opencl-icd
3. Verify GPU Access in WSL
# Check OpenCL availability
clinfo | grep "Platform Name"
# Check GPU devices
clinfo | grep "Device Name"
GPU Detection Scripts
Automatic Detection (PowerShell)
# detect_gpu.ps1
$gpuInfo = Get-WmiObject -Class Win32_VideoController | Select-Object Name, AdapterRAM, DriverVersion
foreach ($gpu in $gpuInfo) {
if ($gpu.Name -match "NVIDIA") {
Write-Host "NVIDIA GPU detected: $($gpu.Name)"
# Run NVIDIA setup
}
elseif ($gpu.Name -match "Intel.*Arc") {
Write-Host "Intel Arc GPU detected: $($gpu.Name)"
# Run Intel Arc setup
}
elseif ($gpu.Name -match "Intel.*UHD|Intel.*Iris") {
Write-Host "Intel Integrated GPU detected: $($gpu.Name)"
# Run Intel Integrated setup
}
}
GPU Setup Scripts
NVIDIA Setup (setup_nvidia_gpu.sh)
#!/bin/bash
# setup_nvidia_gpu.sh
echo "Setting up NVIDIA GPU acceleration..."
# Install CUDA toolkit
sudo apt-get update
sudo apt-get install -y cuda-toolkit-12-4
# Configure environment
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
echo 'export PATH=$PATH:$CUDA_HOME/bin' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64' >> ~/.bashrc
# Test GPU access
nvidia-smi
echo "NVIDIA GPU setup complete!"
Intel Arc Setup (setup_intel_arc_gpu.sh)
#!/bin/bash
# setup_intel_arc_gpu.sh
echo "Setting up Intel Arc GPU acceleration..."
# Install oneAPI for optimal performance
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-keyring.gpg > /dev/null
# Configure permissions
sudo usermod -a -G render $USER
newgrp render
echo "Intel Arc GPU setup complete!"
Intel Integrated Setup (setup_intel_integrated_gpu.sh)
#!/bin/bash
# setup_intel_integrated_gpu.sh
echo "Setting up Intel Integrated GPU acceleration..."
# Install OpenCL runtime
sudo apt-get update
sudo apt-get install -y intel-opencl-icd
# Test GPU access
clinfo | grep "Device Name"
echo "Intel Integrated GPU setup complete!"
Advanced Intel GPU Setup for AI Workloads
Building llama.cpp with Intel GPU Support
# Install build dependencies
sudo apt-get install -y build-essential cmake libcurl4-openssl-dev
# Clone llama.cpp
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
# Source oneAPI environment (required for SYCL build)
source /opt/intel/oneapi/setvars.sh
# Build with SYCL support
rm -rf build
mkdir -p build && cd build
cmake .. -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx
make -j$(nproc)
Testing Intel GPU Acceleration
# Download a sample model
mkdir -p ../models
cd ../models
wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/qwen2.5-0.5b-instruct-q8_0.gguf
# Test inference with GPU offloading
cd ../build
source /opt/intel/oneapi/setvars.sh
./bin/llama-cli \
-m ../models/qwen2.5-0.5b-instruct-q8_0.gguf \
-p "Hello, how are you?" \
-n 128 \
-ngl 999 # Offload all layers to GPU
Troubleshooting
Common GPU Issues
GPU Not Detected in WSL
# Check WSL version
wsl --list --verbose
# Ensure WSL2 is being used
wsl --set-version Ubuntu-24.04 2
# Check GPU support
wsl --status
Driver Compatibility Issues
- Update Windows: Ensure Windows 11 is fully updated
- Update WSL:
wsl --update - Reinstall drivers: Remove and reinstall GPU drivers
- Check compatibility: Verify GPU supports WSL2 virtualization
Intel GPU Specific Issues
# Check OpenCL installation
clinfo
# Verify oneAPI environment (if installed)
source /opt/intel/oneapi/setvars.sh
sycl-ls
# Check permissions
groups $USER
Performance Issues
- Memory allocation: Increase WSL memory in .wslconfig
- Processor allocation: Allocate more CPU cores
- GPU memory: Ensure sufficient GPU VRAM
- Background processes: Close unnecessary applications
GPU Status Verification
NVIDIA GPU
# Check GPU status
nvidia-smi
# Check CUDA availability
nvcc --version
# Test CUDA functionality
cuda-install-samples-12.4.sh ~
cd ~/NVIDIA_CUDA-12.4_Samples/1_Utilities/deviceQuery
make
./deviceQuery
Intel GPU
# Check OpenCL availability
clinfo
# Check GPU information
lspci | grep -i vga
# Test OpenCL functionality
sudo apt-get install -y ocl-icd-opencl-dev
Performance Optimization
WSL Configuration (.wslconfig)
[wsl2]
gpuSupport=true
memory=32GB
processors=16
swap=8GB
localhostForwarding=true
Environment Optimization
# Add to ~/.bashrc
export CUDA_CACHE_DISABLE=0
export CUDA_CACHE_MAXSIZE=1073741824
export INTEL_OPENCL_CONFIG=/etc/OpenCL/vendors/intel.icd