콘텐츠로 이동

환경 변수 가이드

이 가이드는 BC-250 그래픽 설정, 성능 튜닝, 디버깅을 위한 모든 환경 변수를 다룹니다.

핵심 환경 변수

중요: RADV_DEBUG는 환경 변수이며 커널 인자가 아닙니다

grub, /etc/default/grub 등 커널 파라미터에 추가하지 마세요.

RADV_DEBUG는 다음 방법으로만 설정하세요: - Steam 실행 옵션: RADV_DEBUG=nohiz %command% - 셸: 실행 전 export RADV_DEBUG=nohiz - /etc/environment(시스템 전역) - 앱별 래퍼

RADV_DEBUG=nocompute

상태: Mesa 25.1+에서 DEPRECATED

연산 큐 문제는 업스트림에서 해결되었습니다. Mesa 25.0 이하에서만 사용하세요.

Mesa 25.1 이상에서는 Game Mode 안정성을 위해 RADV_DEBUG=nohiz를 사용하세요.

역할: BC-250 연산 큐에 하드웨어 문제가 있어 그래픽 아티팩트와 렌더링 문제를 유발했습니다. 이 변수는 모든 워크로드를 그래픽 큐로 강제했습니다.

사용 시점:

  • Mesa 25.0 이하에서만 필요
  • Mesa 25.1+에서는 불필요 — 연산 큐 문제 수정됨

설정 방법(오래된 Mesa에서 필요 시):

# Steam 실행 옵션
RADV_DEBUG=nocompute %command%

# 시스템 전역(/etc/environment에 추가)
RADV_DEBUG=nocompute

# 앱별
RADV_DEBUG=nocompute ./game

RADV_DEBUG=nohiz

목적: 추가 그래픽 아티팩트 수정

nocompute를 써도 일부 게임에서 렌더링 문제가 있습니다. 이 변수는 계층적 Z-buffer 최적화를 비활성화합니다.

사용 시점:

  • 게임에서 시각적 아티팩트 또는 glitch가 보일 때
  • 다른 RADV_DEBUG 옵션과 결합 가능

설정 방법:

# 쉼표로 여러 RADV_DEBUG 플래그 결합
RADV_DEBUG=nocompute,nohiz %command%

RADV(Vulkan 드라이버) 변수

VK_ICD_FILENAMES

목적: Vulkan 드라이버 위치 명시

일부 애플리케이션, 특히 Steam Big Picture 모드에서 하드웨어 가속에 필요합니다.

사용법:

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json

필요한 경우:

  • Steam Big Picture 하드웨어 가속
  • Vulkan 드라이버를 자동으로 찾지 못하는 앱
  • Flatpak 애플리케이션(경로가 다름)

radv_enable_unified_heap_on_apu

목적: 메모리 할당 문제 우회

APU 시스템에서 통합 메모리 힙을 활성화합니다. 일부 게임의 OOM 오류에 도움이 됩니다.

설정:

/etc/drirc에 추가:

<driconf>
    <device>
        <application name="Default">
            <option name="radv_enable_unified_heap_on_apu" value="true" />
        </application>
    </device>
</driconf>

필요한 경우:

  • 메모리 오류로 게임 크래시
  • 전체 VRAM을 활용하지 못하는 앱
  • BC-250 메모리 지원이 완전하지 않은 Mesa 버전

AMD GPU 변수

AMD_LOG_LEVEL

목적: AMD 드라이버 문제 디버깅

AMD GPU 드라이버 로깅 상세 수준을 제어합니다.

값:

  • 0 — 오류만
  • 1 — 경고
  • 2 — 정보
  • 3 — 상세
  • 4 — 디버그(매우 상세)

사용법:

AMD_LOG_LEVEL=4 ./application

사용 시점:

  • 드라이버 문제 해결
  • ROCm/연산 문제 디버깅
  • 크래시 또는 멈춤 조사

HSA_OVERRIDE_GFX_VERSION

목적: GPU 아키텍처 감지 우회

BC-250(gfx1013)을 다른 아키텍처로 인식하게 합니다.

일반적인 값:

  • 10.1.0 — gfx1010(RDNA 1.0)으로 위장
  • 10.3.0 — gfx1030(RDNA 2.0)으로 위장

사용법:

HSA_OVERRIDE_GFX_VERSION=10.1.0 ./rocm-application

사용 시점:

  • gfx1013을 지원하지 않는 ROCm 앱
  • 연산 워크로드에서 제한적 지원 확보
  • llama.cpp로 LLM 추론(성공은 제한적)

경고: 우회 방법이며 불안정 또는 잘못된 결과를 유발할 수 있습니다.

LLM/연산 변수

GGML_VK_FORCE_MAX_ALLOCATION_SIZE

목적: llama.cpp용 Vulkan 메모리 할당 크기 제한

단일 할당 크기를 제한하여 OOM 오류를 방지합니다.

값:

GGML_VK_FORCE_MAX_ALLOCATION_SIZE=2000000000  # 2GB(바이트)

사용 시점:

  • Vulkan 백엔드로 llama.cpp 실행
  • 대형 모델에서 OOM 오류
  • 메모리 fragmentation 문제

성능:

  • 4비트 양자화 8B 모델 ~60 tokens/sec 가능
  • Vulkan은 12GB VRAM 분할 중 ~10GB만 인식(제한)

TTM 모듈 설정

목적: GPU 공유 메모리 관리 제어

TTM(Translation Table Manager) 모듈은 CPU와 GPU 간 공유 메모리를 관리합니다.

설정:

/etc/modprobe.d/ttm-mem-limit.conf 생성:

options ttm pages_limit=3959290 page_pool_size=3959290

역할:

  • GPU용 사용 가능 메모리 페이지 설정(4KB 페이지 단위)
  • 기본값은 12GB VRAM 분할에도 8GB만 허용할 수 있음
  • 필요 시 전체 RAM을 VRAM으로 사용 가능

pages_limit 계산:

# GPU에 15GB 사용 가능 시(3959290 페이지 × 4KB)
# (총 RAM - 1GB) / 4096 바이트/페이지

성능 변수

mitigations=off

유형: 커널 부트 파라미터(환경 변수 아님)

CPU 보안 완화를 비활성화하여 프로세서 성능을 향상합니다.

설정 방법:

/etc/default/grub 편집:

GRUB_CMDLINE_LINUX_DEFAULT="... mitigations=off"

GRUB 업데이트:

# Fedora/RHEL
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# Debian/Ubuntu
sudo update-grub

성능 향상:

  • CPU 성능 5–10% 개선
  • 에뮬레이션 및 CPU 부담 게임에 특히 도움

보안 트레이드오프:

  • Spectre, Meltdown 등 취약점 완화 비활성화
  • 신뢰할 수 있는/격리된 시스템에서만 사용

Flatpak 변수

FLATPAK_GL_DRIVERS

목적: Flatpak이 특정 Mesa 드라이버 사용 강제

Flatpak 애플리케이션에서 mesa-git 드라이버를 활성화합니다.

설정:

sudo mkdir -p /etc/systemd/system/service.d
sudo bash -c 'echo -e "[Service]\nEnvironment=FLATPAK_GL_DRIVERS=mesa-git" > /etc/systemd/system/service.d/99-flatpak-mesa-git.conf'

flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
flatpak install --system flathub-beta org.freedesktop.Platform.GL.mesa-git//24.08
flatpak install --system flathub-beta org.freedesktop.Platform.GL32.mesa-git//24.08

ROCm 변수(제한적 지원)

GGML_HIP_UMA

목적: HIP용 Unified Memory Architecture 활성화

llama.cpp를 ROCm 지원으로 컴파일할 때 사용합니다.

사용법:

HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \
cmake -S . -B build \
  -DLLAMA_CURL=ON \
  -DGGML_HIP=ON \
  -DAMDGPU_TARGETS=gfx1013 \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_HIP_COMPILER_ROCM_ROOT=/usr \
  -DGGML_HIP_UMA=ON

현재 상태:

  • BC-250에서 ROCm 지원은 매우 제한적
  • rocBLAS에 gfx1013 바이너리 누락(TensileLibrary_lazy_gfx1013.dat)
  • 우회 시 무의미한 출력
  • Vulkan 백엔드 권장

변수 설정

게임별(Steam)

게임 우클릭 > 속성 > 실행 옵션:

RADV_DEBUG=nocompute %command%
RADV_DEBUG=nocompute,nohiz DXVK_HUD=fps %command%

시스템 전역(모든 앱)

/etc/environment 편집:

RADV_DEBUG=nocompute
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:/usr/share/vulkan/icd.d/radeon_icd.i686.json

세션별(터미널)

export RADV_DEBUG=nocompute
export AMD_LOG_LEVEL=2
./your-application

systemd 서비스 파일

게임 서버 등 서비스용:

[Service]
Environment="RADV_DEBUG=nocompute"
Environment="VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json"

Proton/Wine 변수

DXVK_HUD

목적: DXVK 성능 오버레이 표시

DXVK_HUD=fps,gpu,cpu %command%

PROTON_LOG

목적: Proton 디버그 로깅 활성화

PROTON_LOG=1 %command%

PROTON_USE_WINED3D

목적: Vulkan 대신 OpenGL 사용

Vulkan에 문제가 있을 때 폴백:

PROTON_USE_WINED3D=1 %command%

디버깅 변수

RADV_PERFTEST

목적: 실험적 RADV 기능 활성화

RADV_PERFTEST=nggc,sam  # 예: NGG culling, Smart Access Memory

경고: 실험적 기능은 불안정을 유발할 수 있습니다.

MESA_DEBUG

목적: Mesa 드라이버 디버깅

MESA_DEBUG=1  # 디버그 출력 활성화

OpenCL 변수

RUSTICL_ENABLE

목적: Rusticl OpenCL 구현 활성화

RUSTICL_ENABLE=radeonsi

참고: BC-250에서 OpenCL 지원은 제한적입니다. GPU가 GPU 디바이스로 인식되지 않을 수 있습니다.

완전한 게이밍 설정 예시

Steam 게임 권장 실행 옵션(Mesa 25.1+):

RADV_DEBUG=nohiz mangohud %command%

추가 디버깅(Mesa < 25.1만 — 25.1+에서는 nocompute 불필요):

RADV_DEBUG=nohiz DXVK_HUD=fps,gpu MANGOHUD=1 %command%

환경 변수 우선순위

변수는 다음 순서로 적용됩니다(뒤가 앞을 덮어씀):

  1. 시스템 전역 /etc/environment
  2. 사용자 프로필 ~/.profile 또는 ~/.bashrc
  3. systemd 서비스 파일
  4. Steam 실행 옵션
  5. 직접 명령줄 VARIABLE=value ./app

확인

변수가 설정되었는지 확인:

# 모든 환경 변수 표시
env | grep -i radv
env | grep -i amd

# Vulkan 테스트
vulkaninfo | grep -i "device name"

# 드라이버 발견 여부
glxinfo | grep -i "opengl renderer"

Mesa 25.1+ 변경 사항

Mesa 25.1 이상:

  • RADV_DEBUG=nocompute가 더 필요 없을 수 있음(연산 큐 기본 비활성화)
  • 먼저 변수 없이 테스트
  • 문제가 지속되면 다시 활성화
  • Mesa MR #33116 상태 모니터링

문제 해결

게임이 GPU를 사용하지 않음

확인:

VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo

여전히 아티팩트 발생

시도:

RADV_DEBUG=nocompute,nohiz %command%

메모리 오류

/etc/drirc에 추가:

<option name="radv_enable_unified_heap_on_apu" value="true" />

ROCm 동작 안 함

ROCm 지원은 실험적이고 매우 제한적입니다. Vulkan을 사용하세요.

관련 설정 파일

  • /etc/environment — 시스템 전역 변수
  • /etc/drirc — Mesa 드라이버 설정
  • /etc/modprobe.d/ — 커널 모듈 옵션
  • ~/.bashrc — 사용자 환경 변수
  • ~/.config/MangoHud/MangoHud.conf — MangoHud 설정

요약 표

변수 목적 필수 값
RADV_DEBUG=nocompute 연산 큐 수정 Yes (Mesa < 25.1) nocompute
RADV_DEBUG=nohiz 아티팩트 수정 Sometimes nohiz
VK_ICD_FILENAMES Vulkan 드라이버 경로 Steam Big Picture용 위 참고
AMD_LOG_LEVEL 디버그 로깅 디버그 전용 0-4
HSA_OVERRIDE_GFX_VERSION ROCm 호환 ROCm 전용 10.1.0
GGML_VK_FORCE_MAX_ALLOCATION_SIZE llama.cpp 메모리 LLM 추론 2000000000
mitigations=off CPU 성능 선택 kernel param

모범 사례

  1. Mesa 25.1+에서는 RADV_DEBUG=nohiz만 시작(nocompute는 더 필요 없음)
  2. 특정 문제가 있을 때만 변수 추가
  3. 한 번에 하나의 변수만 변경하고 테스트
  4. 게임별 동작 설정 문서화
  5. Mesa 25.1+로 업그레이드했다면 RADV_DEBUG=nocompute 제거 — 자동 처리됨
  6. 가능하면 시스템 전역보다 Steam 게임별 설정 사용