모델별 실행 레시피

AMD Radeon에서 PyTorch ROCm 설치와 GPU 작동 확인하기

torch.cuda.is_available() 한 줄만으로는 ROCm 설치나 모델 작동을 판정할 수 없습니다.

현재 ROCm1 지원 조합을 맞추고 AMD 공식 selector의 Radeon wheel 경로를 가상환경2에 설치한 다음, torch.version.hip3와 GPU4 연산으로 확인합니다. 마지막에는 앱 세션을 재시작해 대표 이미지 작업이 반복되는지 시험합니다.

실행 조건과 핵심 내용
  • RX 9070 XT, Ubuntu, 드라이버, ROCm, PyTorch가 현재 호환성 표의 같은 경로에 있는지 확인합니다.
  • PyTorch ROCm도 torch.cuda 이름공간을 유지하므로 torch.version.hip으로 HIP 빌드를 구분합니다.
  • 작은 GPU 연산의 성공은 실제 이미지 앱의 모델과 확장 모듈 작동을 보장하지 않습니다. 문제가 나면 환경 전체를 재설치하기 전 가상환경, 로그, 세션 재시작 후 재현을 확인합니다.

정확한 GPU와 지원 조합부터 고릅니다

PyTorch5를 설치했는데 torch.cuda6.is_available()이 False이거나, 반대로 True인데 GPU 작업에서 오류가 날 수 있습니다. 출력 한 줄만으로는 어느 쪽도 판단하기 어렵습니다. AMD Radeon용 PyTorch는 CUDA API7와 호환되는 이름을 일부 그대로 사용하므로 “cuda가 True”라고 NVIDIA CUDA를 쓴다고 결론 내릴 수 없습니다. 이 글에서는 RX 9070 XT가 장착된 Ubuntu Linux 데스크톱을 예로 들어, 현재 지원 조합을 확인하고 AMD가 안내하는 설치 경로를 선택한 뒤, GPU 발견과 실제 모델 작업을 따로 검사합니다.

우선 장치 정보에서 그래픽카드의 정확한 모델명을 확인합니다. “Radeon 9000 시리즈”로 뭉뚱그리지 말고 RX 9070 XT인지 RX 9070인지, 또는 CPU8 내장 그래픽인지 구분하세요. 2026년 9월 27일 기준 AMD는 ROCm Core SDK 10.0.0을 8월 26일 릴리스했으며, 현재 통합 호환성 표에서 GPU별 조합을 확인하도록 안내합니다. 표에서 RX 9070 XT, Ubuntu 버전과 커널, 드라이버, ROCm, PyTorch가 같은 경로에 있는지 읽습니다. 릴리스 노트의 OS 개요나 오래된 Radeon 전용 안내에서 버전을 따로 가져와 조립하지 마세요. 정확한 조합이 보이지 않는다면 먼저 지원표에 맞는 OS/버전을 고르는 것이 복구하기 쉬운 시작입니다.

그래픽카드 옆에 작은 화분과 빈 종이, 확대경이 놓여 있습니다.
설치 전에는 GPU 이름과 OS, 드라이버가 같은 지원 행에 있는지 먼저 대조합니다.

Python 패키지를 가상환경에 분리합니다

아래 명령은 Python 3.12를 쓸 때 패키지를 시스템 전체에 설치하지 않고 분리된 공간에 두는 예입니다. GPU 드라이버나 시스템 ROCm 구성요소를 설치하는 명령은 아닙니다.

가상환경은 torch 같은 Python 라이브러리를 프로젝트별 공간에 설치합니다. 다른 프로젝트가 쓰는 Python 패키지를 덮어쓰지 않으므로, 가상환경을 나가거나 해당 환경을 지우면 실험한 패키지를 분리할 수 있습니다. 가상환경을 만드는 것만으로 호스트의 GPU 드라이버가 설치되지는 않으므로 드라이버는 AMD의 OS별 안내를 따릅니다. 반면 사용자 공간의 ROCm 라이브러리는 선택한 공식 패키지 경로에 따라 함께 제공되거나 별도 구성이 필요할 수 있습니다. 따라서 모든 PyTorch 설치에 전체 ROCm SDK를 먼저 따로 설치해야 한다고 생각할 필요는 없습니다.

Python 패키지를 격리하는 가상환경 만들기
python3.12 -m venv ~/venvs/rocm-pytorch
source ~/venvs/rocm-pytorch/bin/activate
python -m pip install --upgrade pip wheel
이 단계는 Python 패키지 공간을 분리합니다. 호스트 GPU 드라이버와 사용자 공간 라이브러리는 선택한 AMD 공식 설치 경로의 요구사항을 확인합니다.
닫힌 데스크톱 컴퓨터와 나란히 놓인 책상 위에 뚜껑 있는 작은 상자와 파일철이 있습니다.
분리된 가상환경을 쓰면 실험용 패키지를 기존 Python 구성과 나눠 관리할 수 있습니다.

공식 Radeon selector에서 같은 버전의 wheel을 고릅니다

다음은 AMD가 RX 9070 XT(gfx1201), Linux, ROCm 10.0, PyTorch 2.13.0 선택 시 제시하는 공식 설치 형태입니다. 선택기는 torch 2.13.0+rocm10.0.0, torchvision 0.28.0+rocm10.0.0, torchaudio 2.11.0.2+rocm10.0.0 및 AMD의 stable.repo.amd.com/rocm/whl-next 인덱스를 표시합니다. 이는 해당 선택기의 구체적 버전 예시이며, 다른 GPU나 운영체제에 복사할 명령은 아닙니다. 설치 주소와 지원 상태는 공식 선택기와 현재 호환성 표를 함께 확인하세요. 일반 PyPI의 pip install torch는 AMD 빌드를 선택한다는 보장이 없으므로 공식 선택기가 내놓는 명령을 기준으로 삼습니다.

RX 9070 XT Linux용 AMD PyTorch selector 예시
python -m pip install --index-url https://stable.repo.amd.com/rocm/whl-next/ \
  "torch[device-gfx1201]==2.13.0+rocm10.0.0" \
  "torchvision[device-gfx1201]==0.28.0+rocm10.0.0" \
  "torchaudio==2.11.0.2+rocm10.0.0"
고정된 예시 선택입니다. 실제 설치 전 selector에서 내 GPU와 OS를 고르고 현재 지원 행과 대조하세요.

설치된 PyTorch가 HIP 빌드인지 확인합니다

설치 후에는 먼저 어떤 PyTorch 빌드가 설치됐는지 봅니다. 다음 명령은 PyTorch가 감지한 Python, 운영체제, GPU와 런타임9 정보를 출력하는 데 도움을 줍니다.

출력에서 PyTorch 버전, Python과 OS, GPU 모델, HIP runtime 정보를 살핍니다. torch.version.hip은 ROCm용 PyTorch 빌드의 HIP 버전 문자열을 표시할 수 있습니다. 이는 torch.version.cuda와 구별해야 합니다. 버전 문자열은 PyTorch 패키지가 어떤 런타임을 포함하는지 보여 주지만, GPU가 공식 지원 목록에 있는지 또는 모든 모델 연산이 작동할지를 보장하지는 않습니다. collect_env 결과를 다른 사람에게 보낼 때는 사용자 이름이 포함된 경로, 토큰10이나 API 키처럼 비밀인 값은 먼저 가리세요.

PyTorch가 감지한 환경 정보 보기
python -m torch.utils.collect_env
결과를 공유하기 전 비밀 값과 개인 경로를 가립니다.

GPU 발견과 실제 연산은 별도로 검사합니다

이어서 같은 가상환경에서 간단한 GPU 연산까지 확인할 수 있습니다.

여기서 torch.cuda는 PyTorch가 CUDA와 HIP 백엔드에서 공통으로 노출하는 장치 API 이름입니다. ROCm 빌드에서는 torch.version.hip에 값이 있고, torch.version.cuda는 보통 None이며, 그럼에도 torch.cuda.is_available()은 True가 될 수 있습니다. 장치 이름은 현재 Python 프로세스에서 GPU를 찾았다는 뜻입니다. 마지막의 작은 텐서 덧셈은 장치를 목록으로 보는 데서 그치지 않고 GPU 계산과 CPU로 결과를 읽어 오는 작업도 확인합니다. 하지만 이는 간단한 점검일 뿐, 대형 모델을 메모리에 올리거나 실제 애플리케이션의 모든 연산이 동작함을 증명하지 않습니다.

HIP 버전과 GPU 연산 확인
python -c 'import torch; print("PyTorch:", torch.__version__); print("HIP:", torch.version.hip); print("CUDA build:", torch.version.cuda); print("GPU available:", torch.cuda.is_available()); print("Device:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "not detected"); print("2x2 sum:", torch.ones((2,2), device="cuda").sum().item() if torch.cuda.is_available() else "skipped")'
ROCm 빌드가 torch.cuda API 표기를 유지할 수 있으므로 torch.version.hip도 확인합니다.

장치 진단 결과만으로 앱 작동을 단정하지 않습니다

GPU가 보이지 않으면 한 번에 여러 패키지를 지우기보다 설치 경로부터 살펴봅니다. python 실행 파일과 pip show torch가 같은 가상환경을 가리키는지 확인합니다. 이어서 내 GPU 모델, Linux 배포판과 커널, AMD 드라이버, ROCm 구성요소, PyTorch wheel이 공식 지원 조합인지 대조합니다. Windows 네이티브라면 Linux 절차를 가져오지 말고 Windows 전용 표와 설치 문서를 봅니다. WSL에서는 Windows 네이티브 GPU 목록 대신 WSL 호환성 표와 ROCDXG 설치 경로를 적용해야 합니다. 어디서 조합이 어긋났는지 찾기 전 시스템 전체를 재설치하면 문제 범위가 더 커질 수 있습니다.

Linux에서 rocminfo가 설치돼 있다면 추가 장치 정보를 확인할 수 있습니다. 그러나 이 명령이 없다는 사실만으로 GPU가 미지원이라고 판단하지 마세요. 설치 구성에 포함되지 않았거나 PATH에 없을 수 있으니 현재 AMD 설치 안내에서 먼저 확인합니다. 반대로 rocminfo가 GPU를 보여도 PyTorch가 CPU 빌드이거나 프로그램이 ROCm용 연산을 제공하지 않으면 원하는 AI 모델은 실행되지 않을 수 있습니다. 하드웨어 열거와 실제 앱의 작동은 서로 다른 검사입니다.

이 단계에서 막히면 GPU 식별을 바꾸는 우회 변수부터 추가하지 마세요. 선택한 OS·드라이버·ROCm·PyTorch가 지원표의 같은 조합인지 대조하고, 불일치가 있으면 수정한 뒤 같은 검사를 반복합니다.

선택 사항: rocminfo가 설치된 Linux 환경에서 장치 열거 확인
rocminfo
명령이 없거나 출력이 비어 있다는 사실 하나만으로 지원 여부를 판단하지 않습니다.
그래픽카드와 닫힌 초록색 상자, 빈 종이, 확대경이 나무 책상 위에 놓여 있습니다.
GPU가 보이는지 확인한 뒤, 실제로 쓸 모델과 프레임워크로 별도 작동 검사를 해야 합니다.

실제 모델과 앱 세션을 새로 열어 재현합니다

마지막에는 실제 사용할 모델과 프로그램으로 별도 점검을 해야 합니다. PyTorch가 작은 텐서를 계산해도 모델의 형식, 정밀도, 커널, 메모리 사용량, 추가 확장에 따라 실패할 수 있습니다. 앱의 공식 ROCm 지원 문서에서 GPU와 설치법을 확인하고, 작은 입력으로 로드와 추론이 되는지 시험하세요. 어떤 프로그램은 CUDA 이름만 검색해 ROCm 사용을 막기도 하고, 반대로 기본 PyTorch 연산은 되더라도 특정 확장 모듈에 AMD용 빌드가 없을 수 있습니다. 오류가 난다면 모델 로딩, 연산, 메모리 할당 중 어느 단계에서 멈췄는지 기록해야 적절한 문서와 지원 경로를 찾을 수 있습니다.

RX 9070 XT와 Ubuntu라면 지원표 확인→선택된 wheel 설치→torch.version.hip·GPU 가용성·장치명 확인→작은 GPU 연산 순으로 검사합니다. 모두 통과하면 실제 이미지 도구에서 대표 이미지 한 장을 처리하고, 앱을 다시 열어 재현한 뒤 평소 크기로 늘립니다. 실패한 단계의 collect_env, 전체 로그와 입력을 저장해 해당 구성이나 연산을 좁혀 보세요. 환경 전체를 지우고 다시 설치할 필요는 없습니다.

용어 각주

  1. ROCm — AMD GPU에서 AI와 고성능 계산을 실행하는 소프트웨어 플랫폼입니다. 지원 여부는 GPU 모델뿐 아니라 운영체제·드라이버·프레임워크 버전의 조합으로 확인합니다.

    본문으로 돌아가기
  2. Python 가상환경 — 프로젝트별로 Python 패키지를 분리해 설치하는 공간입니다. 패키지 버전 충돌을 줄이며 가상 머신과는 다릅니다.

    본문으로 돌아가기
  3. HIP — GPU용 C++ 코드를 여러 플랫폼으로 옮기는 데 쓰는 API와 실행 환경입니다. CUDA 코드 이식을 돕지만, 모든 라이브러리·연산의 호환성이나 같은 속도를 보장하지 않습니다.

    본문으로 돌아가기
  4. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  5. PyTorch — AI 모델을 만들고 실행하는 소프트웨어 프레임워크입니다. 모델과 함께 호환되는 PyTorch 버전 및 하드웨어 지원도 확인해야 합니다.

    본문으로 돌아가기
  6. CUDA — NVIDIA GPU에서 범용 계산을 실행하기 위한 소프트웨어 플랫폼입니다. CUDA용으로 만든 프로그램은 다른 GPU에서 그대로 동작한다고 보장되지 않습니다.

    본문으로 돌아가기
  7. API — 프로그램의 기능을 다른 코드에서 호출하기 위한 약속된 인터페이스입니다. API라는 말만으로 외부 서버 전송을 뜻하지는 않습니다.

    본문으로 돌아가기
  8. CPU — 컴퓨터에서 일반적인 프로그램 명령을 실행하는 중앙 처리 장치입니다. AI 작업에서는 GPU 등 다른 프로세서와 역할을 나누기도 합니다.

    본문으로 돌아가기
  9. 런타임 — 프로그램이 실행될 때 필요한 기능을 제공하는 소프트웨어 환경입니다. 로컬 AI에서는 모델을 실행하는 엔진을 가리키기도 하며, GPU 런타임 라이브러리와 완성된 서빙 앱은 서로 다른 구성요소입니다.

    본문으로 돌아가기
  10. 토큰 — 모델이 입력이나 출력을 나누어 처리하는 단위입니다. 토큰 하나가 글자 하나나 일정한 시간 길이에 해당하지는 않습니다.

    본문으로 돌아가기