<h1 align="center">
<img src="https://raw.githubusercontent.com/lseurttyuu/GPU-T/HEAD/docs/readme/title_gpu_t_black.png#gh-light-mode-only" alt="GPU-T">
<img src="https://raw.githubusercontent.com/lseurttyuu/GPU-T/HEAD/docs/readme/title_gpu_t_white.png#gh-dark-mode-only" alt="GPU-T">
</h1
<p align="center">
<strong>리눅스를 위한 포괄적인 그래픽 카드 정보 유틸리티</strong>.
</p>
<p align="center">
<img src="https://img.shields.io/badge/Platform-Linux-blue?logo=linux" alt="Platform Linux">
<img src="https://img.shields.io/badge/Framework-Avalonia%20UI-purple" alt="Avalonia">
<img src="https://img.shields.io/badge/.NET-%2010.0-512bd4" alt=".NET">
<img src="https://img.shields.io/badge/License-MIT-green" alt="License">
</p>
<p align="center">
<a href="https://ko-fi.com/P5P71Y95K8"><img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="ko-fi"></a>
</p>
GPU-T는 .NET과 Avalonia UI로 구축된 최신 데스크톱 유틸리티로, 사용자의 비디오 카드 및 GPU에 대한 상세 정보를 제공하도록 설계되었습니다. 이 유틸리티는 리눅스 커널(sysfs), 그래픽 API 및 사용자 지정 하드웨어 데이터베이스에서 직접 읽어와 저수준(low-level) 하드웨어 사양, 실시간 센서 및 고급 기능 지원을 표시합니다.
<p align="center">
<img src="https://raw.githubusercontent.com/lseurttyuu/GPU-T/HEAD/docs/readme/gpu_t_main_screenshot_light_v2.png#gh-light-mode-only" alt="GPU-T 애플리케이션 스크린샷 (라이트 모드)">
<img src="https://raw.githubusercontent.com/lseurttyuu/GPU-T/HEAD/docs/readme/gpu_t_main_screenshot_dark.png#gh-dark-mode-only" alt="GPU-T 애플리케이션 스크린샷 (다크 모드)">
</p>
개발 배경
수년 동안 윈도우 사용자는 그래픽 하드웨어를 검증하는 데 있어 GPU-Z를 표준으로 삼아왔습니다. 이는 깔끔하고 정확하며, 내부적으로 어떤 장치가 작동하는지 정확하게 알려줍니다.
2025년에 Linux로 전환한 후, 저는 깨끗하고 네이티브 GUI 환경에서 이토록 구체적이고 높은 '정보 밀도'를 제공하는 직접적인 대안을 찾을 수 없었습니다. 다른 훌륭한 도구들이 존재하지만, 저는 GPU-Z의 친숙함과 유용성을 모방하는 전용 애플리케이션을 원했습니다. 즉, 간단한 인터페이스, 즉각적인 하드웨어 검색, 그리고 실시간 모니터링이 가능한 것입니다.
GPU-T는 (AI의 도움을 받아) 이러한 공백을 채우기 위한 저의 시도이며, 리눅스 오픈소스 생태계를 위한 진단 도구를 제공합니다.
주요 기능 (Features)
GPU-T는 Linux 환경에서 사용자의 GPU에 대한 "유일한 정보 출처(Single Source of Truth)"가 되도록 설계되었습니다:
- 하드웨어 탐지 (Hardware Reconnaissance): 사용자 지정 및 업데이트 가능한 JSON 데이터베이스를 사용하여 GPU 제조사, 모델, 개정판(revision), 다이 크기(die size), 트랜지스터 수, 출시 날짜 등을 식별합니다.
- 스마트 감지 (Smart Detection) (실험적): 특정 실리콘 개정판을 탐지하는 "최적 일치(Best Match)" 알고리즘을 구현하며, 정확한 일치를 찾지 못할 경우 경고를 표시합니다.
- 실시간 센서 (Real-time Sensors): 클럭 속도(GPU/VRAM), 온도(Hotspot/Edge), 팬 속도, 보드 전력 소비량(PPT) 및 기타 필수 지표들을 실시간으로 모니터링합니다. 파일로 센서 데이터를 기록하는 기능도 포함됩니다.
- 고급 기능 (Advanced Capabilities): Vulkan, OpenCL, CUDA, 레이 트레이싱(Ray Tracing) 등의 지원 여부를 확인합니다.
- 심층 분석 (Deep Dive):
- PCIe 가변 BAR(Resizable BAR) 상태 탐지 (직접 PCI 리소스 분석을 통해).
- BIOS 및 드라이버 버전 정보 읽기.
- 메모리 유형, 공급업체(vendor), 버스 폭 검증.
- Vulkan 버전, 확장 기능(extensions), 및 기능 조회.
- OpenCL 버전, 공급업체, 기타 기능 조회.
- VA-API 상태, 인코딩 및 디코딩 기능 조회 (AMD GPU).
- CUDA 기술 정보 - 지표 및 기능 (NVIDIA GPU).
- NVENC/NVDEC 인코딩 및 디코딩 기능 조회 (NVIDIA GPU).
- 벤더 비종속 아키텍처 (Vendor-Agnostic Architecture): 모듈식 아키텍처로 구축되었습니다.
현재 AMD Radeon 및 NVIDIA GeForce GPU를 지원합니다 (각각 amdgpu 및/또는 독점(proprietary) nvidia 드라이버 사용). 하지만 향후 Intel 지원을 목표로 설계되었습니다.
- TechPowerUp 조회: TechPowerUp 웹사이트에 직접 접속하여 특정 GPU 모델의 데이터를 확인하세요.
지원 하드웨어 (Supported Hardware)
현재 이 애플리케이션은 Linux 환경에서 AMD Radeon 및 NVIDIA GeForce GPU에 대해 완벽하게 구현되었습니다.
로드맵 (Roadmap)
'Discussions' 탭을 확인해 주세요.
설치 (Installation)
1. Arch Linux (AUR)
커뮤니티 유지 관리자 덕분에 Arch 사용자는 AUR을 통해 설치할 수 있습니다:
alternatively, 불안정한 개발 버전의 경우 다음 명령어를 사용하세요:
2. AppMan (AM)
am 패키지 관리자를 통해 설치할 수 있습니다:
3. 범용 AppImage
- Releases 탭에서 최신 AppImage를 다운로드합니다.
- 파일을 실행 가능하게 표시합니다:
chmod +x GPU-T.AppImage.
- 애플리케이션을 실행합니다.
참고 1: 앱이 /sys/class/drm의 사용자 접근 경로를 읽기 때문에 루트 권한은 필요하지 않습니다.
참고 2: .AppImage 내부에 이미 번들되어 있으므로 dotnet 런타임을 설치할 필요가 없습니다.
*참고 3: 이 애플리케이션은 Debian 13, Mint 22.3, Ubuntu 22.04, Ubuntu 24.04 및 Alpine Linux v3.23에서 검증되었습니다. 대부분의 최신 Linux 배포판에서 작동할 것으로 예상됩니다.
필수 준비 사항
GPU-T는 API별 정보를 가져오기 위해 표준 리눅스 유틸리티에 의존합니다. 다음 항목들이 시스템에 설치되어 있는지 확인하십시오 (이러한 도구들 없이도 앱은 작동하지만, 이것들을 사용하면 더 많은/더 정확한 정보를 표시할 수 있습니다):
vulkan-tools (vulkaninfo 제공)
clinfo (OpenCL 감지를 위해)
mesa-utils (OpenGL용 glxinfo 제공)
pciutils (ReBAR 감지를 위한 lspci 제공)
vainfo (멀티미디어 기능 읽기용 - AMD GPU)
nvidia-smi (독점 NVIDIA 드라이버에 포함되어 있으며, 정확한 센서 값 읽기에 필요합니다 - NVIDIA GPU)
소스 코드에서 빌드하기
요구 사항: .NET SDK 10.0 이상.
- 저장소 클론하기:
git clone https://github.com/lseurttyuu/GPU-T
cd GPU-T
- 종속성 복원 및 빌드:
- 애플리케이션 실행하기:
앱을 Release 구성으로 빌드하려면, 기본적으로 자동 NVAPI/NVML 사이드카 컴파일(GPU-T.Nvapi.csproj)이 표준 Release 단계에서 제외된다는 점에 유의하십시오. 패키징을 위한 사용자 지정 Release 컴파일 프로세스 작동 방식에 대해 더 알고 싶다면 Issue #74로 이동해 주십시오.
아키텍처
코드에 관심 있는 개발자들을 위해, GPU-T는 모듈성에 중점을 둔 깔끔한 MVVM 아키텍처를 사용합니다:
- 서비스 레이어(Services Layer):
Probes (하드웨어 폴링), Advanced (API 제공자), 그리고 Utilities로 분리되어 있습니다.
- 팩토리 패턴(Factory Pattern):
GpuProbeFactory는 런타임에 GPU 제조사를 판별하고 적절한 로직(예: LinuxAmdGpuProbe, LinuxNvidiaGpuProbe)을 주입하여, UI 코드를 건드리지 않고도 Intel 지원을 쉽게 추가할 수 있게 합니다.
- 데이터베이스(Database): 로컬 JSON 데이터베이스가 정적 하드웨어 사양을 처리합니다. 이 데이터베이스는 사용자 재정의(user overrides)와 새로운 하드웨어 정의에 대한 쉬운 업데이트를 지원합니다. GPU-T가 사용하는 데이터베이스를 수정하고 싶다면,
~/.local/share/GPU-T/로 이동하여 적절한 JSON 파일을 편집하기만 하면 됩니다.
- 설정(Settings): 앱은 다양한 사용자 환경 설정(테마 선택, 창 높이 등)을 로컬에 저장합니다. JSON 구성 파일은 안전하게
~/.config/GPU-T/에 보관됩니다.
또한, 프로젝트에는 전용 NVAPI/NVML 사이드카(sidecar) 앱(Nvapi 디렉토리에 위치한 GPU-T.Nvapi.csproj)이 포함되어 있습니다. 이 사이드카는 고급 센서 판독 및 NVIDIA GPU의 Advanced 탭에 깊이 있는 정보를 채우는 역할을 담당합니다. 절대적인 안정성과 메모리 안전성을 보장하기 위해 메인 애플리케이션으로부터 완전히 분리되었습니다.
빌드된 기술 (Built With)
기여 (Contributing)
기여는 언제나 환영입니다! Intel GPU가 있고 Intel GPU 지원 구현을 돕고 싶다면, 자유롭게 Pull Request를 열어주세요. 새로운 기능에 대해 논의하고 싶으신가요? 토론(Discussions) 탭으로 이동해 주세요.
프로젝트 후원 (Support the Project)
GPU-T는 전적으로 제 여가 시간에 개발되었습니다. 이 도구가 시간을 절약했거나, 하드웨어 문제를 진단하는 데 도움이 되었거나, 혹은 단순히 지속적인 개발을 지원하고 싶으시다면, 팁(tip)을 남겨주시길 고려해 주십시오.
ko-fi
여러분의 지원에 깊이 감사드리며, 이는 프로젝트가 지속되는 데 큰 도움이 됩니다!
감사의 글, 크레딧 및 면책 조항
본 프로젝트는 TechPowerUp의 GPU-Z로부터 많은 영감을 받았습니다. 본 애플리케이션은 공식 포트(port)가 아니며 TechPowerUp과 어떠한 방식으로도 제휴되어 있지 않습니다. GPU-T는 원래 Windows용 도구의 명확성과 유용성을 그리워하는 리눅스 사용자를 위해 설계된 도구입니다.
GPU 진단 분야에서 표준을 설정하고 광범위한 GPU 데이터베이스를 유지 관리해 준 TechPowerUp 팀에게 특별히 감사를 표합니다. 본 애플리케이션은