본문 바로가기

Computer_IT/Python

no kernel image is available 오류, GTX 10 PyTorch 5단계 해결

반응형

GTX 1060이나 GTX 1080으로 잘 돌던 PyTorch, ComfyUI, Stable Diffusion WebUI가 pip install --upgrade 한 번 뒤에 첫 GPU 연산에서 멈추고, 화면에 RuntimeError: CUDA error: no kernel image is available for execution on the device가 출력되는 경우가 있습니다. 바로 위에는 sm_61 is not compatible with the current PyTorch installation이라는 경고도 함께 보이는 경우가 많습니다. 어제까지 되던 환경이 갑자기 깨진 것처럼 보이지만, 그래픽카드가 고장 난 것은 아니며 설치된 PyTorch 휠이 내 GPU용 코드를 담고 있지 않아서 생기는 문제입니다.

리눅스에서 pip 재설치가 막힌다면 가상환경부터 준비해야 합니다. 관련 내용은 error: externally-managed-environment pip 오류 5단계 해결을 먼저 확인하시기 바랍니다.

3줄 핵심 요약

  • 원인: PyTorch 2.11부터 PyPI 기본 휠이 CUDA 13.0으로 바뀌었고, CUDA 13.0은 Maxwell·Pascal·Volta를 지원하지 않습니다. cu128·cu129 휠은 2.8.0부터 sm50~sm60을 제외했습니다.
  • 해결의 정석: CUDA 12.6 인덱스(cu126)로 PyTorch 2.14를 다시 설치하고 그 버전에 고정합니다.
  • 안 될 때의 대안: 2.15부터는 CUDA 12.6 휠이 나오지 않을 예정이므로, 최신 버전이 꼭 필요하면 CUDA 12.6 툴킷으로 소스 빌드하거나 GPU 교체를 검토합니다.

no kernel image is available for execution on the device가 뜨는 이유

NVIDIA GPU는 세대마다 compute capability(sm 번호)가 다릅니다. GTX 900 시리즈(Maxwell)는 5.x, GTX 10 시리즈(Pascal)는 6.x, V100(Volta)은 7.0입니다. GTX 10 시리즈 일반 소비자용 카드는 대부분 6.1(sm_61)입니다. PyTorch 휠은 빌드할 때 지정한 sm 번호용 GPU 코드(커널)만 담기 때문에, 휠 안에 내 GPU의 sm 번호가 없으면 연산을 실행할 커널을 찾지 못해 이 오류가 납니다.
최근 이 오류가 다시 늘어난 데는 세 가지 변경이 겹쳐 있습니다.

  1. PyTorch 2.8.0(cu128·cu129 휠): 릴리스 노트에는 "Due to binary size limitations, support for sm50 - sm60 architectures with CUDA 12.8 and 12.9 has been dropped for the 2.8.0 release. If you need support for these architectures, please utilize CUDA 12.6 instead."라고 적혀 있습니다. 바이너리 크기 제한 때문에 CUDA 12.8·12.9 휠에서 sm50~sm60을 뺐으며, 해당 GPU는 CUDA 12.6 휠을 쓰라는 안내입니다.
  2. PyTorch 2.11(2026-03-11 공지): PyPI에 올라가는 기본(stable) CUDA 휠이 CUDA 13.0으로 바뀌었습니다. NVIDIA는 CUDA 13.0에서 Maxwell·Pascal·Volta 아키텍처 지원을 제거했습니다("Removed support for Maxwell, Pascal and Volta architectures"). 따라서 인덱스를 지정하지 않고 pip install torch만 실행하면 GTX 10 시리즈에서 쓸 수 없는 휠이 설치됩니다.
  3. PyTorch 2.14(2026-09-04 공지): 공지 원문은 "PyTorch 2.14 is the last release to ship any CUDA 12.x wheels"입니다. 2.15부터는 CUDA 12.6 바이너리가 중단되고 Maxwell(sm_50)·Pascal(sm_60)·Volta(sm_70)가 빠질 예정입니다. CUDA 12.6 nightly 빌드는 2026-09-07에 이미 제거되었습니다.

정리하면, 지금 GTX 10 시리즈에서 공식 휠로 PyTorch를 쓸 수 있는 길은 2.14 이하 버전의 cu126 휠입니다. 2.15의 정식 출시일은 아직 확인되지 않았으나, 출시되면 기본 설치는 물론 cu126 인덱스로도 새 버전을 받을 수 없게 됩니다.

드라이버를 올려도 해결되지 않는 이유

이 오류를 보고 가장 먼저 그래픽 드라이버를 업데이트하는 분이 많지만, 드라이버 업데이트로는 해결되지 않습니다. 문제는 드라이버가 아니라 PyTorch 휠 안에 sm_61용 커널이 없다는 데 있기 때문입니다. 오히려 NVIDIA는 Unix Graphics Feature Deprecation Schedule에서 "The release 580 series will be the last to support GPUs based on the Maxwell, Pascal, and Volta architectures."라고 밝혔습니다. 즉 R580 드라이버 계열이 Maxwell·Pascal·Volta를 지원하는 마지막 계열입니다. Arch Linux는 590 계열로 넘어가면서 GTX 10 시리즈용으로 nvidia-580xx 패키지를 따로 두고 있습니다. GTX 10 시리즈 사용자는 드라이버를 580 계열로 유지하는 것이 안전합니다.

윈도우에서 드라이버를 무리하게 교체하다 화면이 멈추거나 블루스크린이 났다면 VIDEO_TDR_FAILURE 블루스크린 nvlddmkm.sys 6단계 해결에서 드라이버 정리와 재설치 방법을 참고하시기 바랍니다.

no kernel image is available 오류 5단계 해결

1단계. 진단 명령 3줄로 원인 확인

PyTorch를 설치한 가상환경을 활성화한 뒤 아래 세 줄을 하나씩 실행합니다.

python -c "import torch; print(torch.__version__, torch.version.cuda)"
python -c "import torch; print(torch.cuda.get_device_capability())"
python -c "import torch; print(torch.cuda.get_arch_list())"
  • 첫 줄은 PyTorch 버전과 휠이 빌드된 CUDA 버전을 보여 줍니다. CUDA 버전이 13.x이거나 12.8·12.9라면 GTX 10 시리즈에서는 문제가 될 가능성이 높습니다.
  • 둘째 줄은 내 GPU의 compute capability입니다. GTX 10 시리즈는 보통 (6, 1)로 나옵니다. 정확한 값은 NVIDIA의 CUDA GPUs 표에서 모델별로 확인할 수 있습니다.
  • 셋째 줄은 설치된 휠이 지원하는 sm 목록입니다. 이 목록에 sm_61(또는 내 GPU 번호)이 없으면 이번 글의 원인이 맞습니다.

2단계. 기존 PyTorch 제거

섞여 설치된 휠이 남지 않도록 관련 패키지를 먼저 지웁니다.

pip3 uninstall -y torch torchvision torchaudio

torchaudio를 쓰는 프로그램이라면 3단계에서 같은 cu126 인덱스로 torch 버전에 맞는 torchaudio를 함께 설치합니다. 짝 버전은 PyTorch 공식 이전 버전 설치 페이지에서 확인하시기 바랍니다. 지우기만 하고 다시 설치하지 않으면 torchaudio를 쓰는 노드나 확장에서 import 오류가 납니다.

3단계. CUDA 12.6 인덱스로 PyTorch 2.14 재설치

아래 두 명령 중 하나만 실행합니다. 기본은 첫 번째 명령입니다. 2026-09-30에 공지된 버그 수정판 2.14.1을 설치하며, 2.14.1 정식 공지에 따르면 2.14.1의 짝은 torchvision 0.29.1입니다.

pip3 install torch==2.14.1 torchvision==0.29.1 --index-url https://download.pytorch.org/whl/cu126

두 번째 명령은 2026-09-04 PyTorch 공지 원문에 나온 2.14.0 설치 명령입니다. 공지와 똑같은 버전이 필요할 때만 첫 번째 명령 대신 실행합니다.

pip3 install torch==2.14.0 torchvision==0.29.0 --index-url https://download.pytorch.org/whl/cu126

핵심은 --index-url로 cu126 인덱스를 지정하는 것입니다. 이 옵션 없이 PyPI에서 설치하면 다시 CUDA 13.0 휠이 들어옵니다. 설치가 끝나면 1단계의 세 줄을 다시 실행해 torch.version.cuda가 12.6으로, get_arch_list()에 sm_61이 보이는지 확인합니다. 공식 torchvision 휠은 torch를 정확한 버전으로 고정하므로(0.29.0은 torch 2.14.0, 0.29.1은 torch 2.14.1) 두 패키지는 반드시 짝을 맞춰 설치해야 합니다.

uv를 쓰는 경우 --torch-backend=auto가 GTX 1080 Ti(sm_61)에 cu128 휠을 설치하고 "minimum cuda capability supported by this library is 7.5" 경고가 뜬 사례가 이슈로 보고되어 있습니다. 자동 선택에 맡기지 말고 아래처럼 백엔드를 명시하거나 위의 pip 명령을 쓰는 편이 확실합니다.

uv pip install torch==2.14.1 torchvision==0.29.1 --torch-backend=cu126

단, --torch-backend 옵션은 uv pip 인터페이스에서만 동작하며 uv add·uv sync에서는 쓸 수 없습니다(uv 공식 문서).

4단계. 다시 깨지지 않도록 버전 고정

ComfyUI, WebUI 같은 도구는 업데이트 과정에서 requirements를 다시 설치하며 torch를 최신으로 올려 버리는 경우가 많습니다. 2.15가 출시되면 이때 다시 같은 오류가 납니다. 프로젝트 폴더에 constraints.txt 파일을 만들고 아래 두 줄을 넣어 버전을 고정해 둡니다. torch와 torchvision을 모두 와일드카드로 적어야 2.14.0/0.29.0과 2.14.1/0.29.1 어느 짝이든 만족합니다.

torch==2.14.*
torchvision==0.29.*

설치는 두 단계로 나눠 실행합니다. 먼저 3단계 명령으로 torch·torchvision을 cu126 인덱스에서 설치합니다. 그다음 인덱스를 지정하지 않고 나머지 의존성을 설치합니다.

pip3 install -r requirements.txt -c constraints.txt

이렇게 하면 이미 설치된 cu126용 torch가 constraints 조건을 만족하므로 그대로 유지되고, 다른 패키지가 torch를 최신으로 끌어올리는 것도 막을 수 있습니다. 이 명령에 --index-url https://download.pytorch.org/whl/cu126을 붙이면 안 됩니다. --index-url은 PyPI를 대체하므로 transformers, aiohttp처럼 torch가 아닌 패키지를 찾지 못해 설치가 실패할 수 있습니다.

ComfyUI 포터블 판처럼 자체 파이썬이 동봉된 프로그램은 시스템 파이썬이 아니라 동봉된 파이썬으로 pip를 실행해야 고정이 적용됩니다. 업데이트 스크립트를 실행하기 전에는 1단계 명령으로 현재 버전을 기록해 두는 것을 권장합니다.

5단계. 최신 버전이 꼭 필요하면 소스 빌드

2.15 이후 기능이 반드시 필요하다면 직접 빌드하는 방법이 있습니다. 2026-09-04 PyTorch 공지에 안내된 순서는 다음과 같습니다.

  1. CUDA 12.6 툴킷을 설치합니다.
  2. PyTorch 소스를 하위 모듈까지 함께 받고 소스 폴더로 이동합니다.
    git clone --recursive https://github.com/pytorch/pytorch
    cd pytorch
  3. 대상 아키텍처를 지정합니다. 공지 원문의 값은 "5.0;6.0;7.0"이며 "adjust to your GPU", 즉 GPU에 맞게 바꾸라고 안내되어 있습니다. GTX 10 시리즈 일반 소비자용 카드는 6.1이므로 6.1로 지정합니다.
    export TORCH_CUDA_ARCH_LIST="6.1"
  4. 빌드에 필요한 파이썬 패키지를 설치합니다.
    python -m pip install -r requirements.txt
  5. 빌드합니다.
    python setup.py develop

윈도우 PowerShell에서는 $env:TORCH_CUDA_ARCH_LIST="6.1"로 환경변수를 지정합니다. 빌드에는 CUDA 12.6 툴킷, C++ 컴파일러, 수십 GB의 디스크와 긴 시간이 필요하므로 일반 사용자에게는 권하지 않습니다. 윈도우에서 빌드 중 컴파일러 오류가 나면 Microsoft Visual C++ 14.0 or greater is required 5단계 해결을 참고해 빌드 도구부터 갖추시기 바랍니다.

PyTorch 버전별 GTX 10 시리즈 지원 타임라인

PyTorch 2.8.0cu128·cu129 휠에서 sm50~sm60 제외cu128·cu129 지정 시 오류, cu126은 정상
PyTorch 2.11 (2026-03-11 공지)PyPI 기본 휠을 CUDA 13.0으로 전환인덱스 없이 설치하면 오류
PyTorch 2.14 (2026-09-04 공지)CUDA 12.x 휠을 내는 마지막 릴리스cu126 인덱스로 설치 가능한 마지막 버전
2026-09-07CUDA 12.6 nightly 제거nightly로는 설치 불가
PyTorch 2.15 (예정)CUDA 12.6 바이너리 중단, Maxwell·Pascal·Volta 제외 예정공식 휠 없음, 소스 빌드만 가능

방법별 비교

cu126 인덱스로 재설치낮음낮음쉬움가장 먼저 시도
2.14 버전 고정낮음낮음쉬움업데이트 시 재발 방지
소스 빌드높음중간보통2.15 이후 기능이 필요할 때만
GPU 교체중간낮음해당 없음장기적으로 근본 해결

그래도 no kernel image is available이 계속 뜰 때

  • 다른 파이썬 환경을 보고 있는지 확인: 터미널의 python과 프로그램이 쓰는 python이 다르면 재설치가 반영되지 않습니다. python -c "import sys; print(sys.executable)"로 경로를 확인하고, 그 경로의 pip로 설치합니다.
  • 다른 확장 패키지 확인: xformers처럼 자체 CUDA 커널을 가진 패키지가 최신 CUDA용으로 설치되어 있으면 torch를 바꿔도 같은 오류가 날 수 있습니다. 해당 패키지를 제거한 뒤 torch 2.14와 맞는 버전으로 다시 설치합니다.
  • CPU 모드로 임시 실행: 급한 작업이라면 장치를 cpu로 지정해 느리더라도 결과를 먼저 얻는 방법이 있습니다.

요약

GTX 10 시리즈에서 뜨는 no kernel image is available for execution on the device는 고장이 아니라 지원 범위 변경 때문에 생기는 오류입니다. 진단 3줄로 sm 번호를 확인하고, cu126 인덱스로 PyTorch 2.14를 다시 설치한 뒤 버전을 고정하면 대부분 해결됩니다. 드라이버는 580 계열을 유지하고, 2.15 이후가 필요하면 소스 빌드나 GPU 교체를 검토합니다.

자주 묻는 질문

Q1. CUDA 툴킷을 따로 설치해야 하나요?

pip로 받는 PyTorch 휠에는 필요한 CUDA 런타임이 함께 들어 있으므로, 일반 사용에는 별도 툴킷 설치가 필요하지 않습니다. 다만 NVIDIA 그래픽 드라이버는 따로 설치되어 있어야 하며, GTX 10 시리즈는 580 계열 드라이버를 유지하는 것이 안전합니다. 소스 빌드할 때만 CUDA 12.6 툴킷이 추가로 필요합니다.

Q2. 예전 글처럼 CUDA 11.x 버전으로 내려야 하나요?

그럴 필요는 없습니다. 2021~2023년 글에 나오는 CUDA 11.x 조언은 당시 기준입니다. 현재는 cu126 인덱스의 PyTorch 2.14가 GTX 10 시리즈에서 공식 휠로 쓸 수 있는 가장 최신 조합입니다.

Q3. 우분투에서 CUDA 저장소를 추가하다 apt 오류가 납니다.

NVIDIA 저장소 키 문제로 NO_PUBKEY 오류가 나는 경우가 많습니다. 다음 단계로 NO_PUBKEY apt update 오류, 우분투 26.04 5단계 해결을 참고하시기 바랍니다.

반응형