GPU - 현대적인 크로스 플랫폼 GPU 라이브러리
요약
GPU는 Metal, Vulkan, DirectX 12, WebGPU를 지원하는 크로스 플랫폼 C 라이브러리입니다. 이 라이브러리는 일반적인 렌더링 경로를 유지하면서 각 백엔드의 제어권을 확보합니다. USL(Universal Shading Language)과 통합되어 셰이더 컴파일 및 아티팩트 캐싱을 효율적으로 처리하며, 다양한 샘플 코드를 제공하여 사용자가 쉽게 접근할 수 있습니다.
핵심 포인트
- Metal, Vulkan, DirectX 12, WebGPU를 지원하는 크로스 플랫폼 GPU 라이브러리입니다.
- USL(Universal Shading Language)과 통합되어 셰이더 관리를 표준화합니다.
- 프레임 흐름을 위한 명시적인 커맨드 버퍼 및 제출 제어 기능을 제공합니다.
- 다양한 샘플 코드를 통해 렌더링, 컴퓨트, WebGPU 등 다양한 워크로드를 테스트할 수 있습니다.
🔭 GPU - 현대적인 크로스 플랫폼 GPU 라이브러리
GPU는 명시적 그래픽 및 컴퓨트 워크로드를 위한 크로스 플랫폼 C 라이브러리입니다.
Metal에서 영감을 받아, 그 API는 Vulkan과 DirectX 12가 요구하는 제어권을 유지하면서 일반적인 렌더링 경로를 Metal에 가깝게 유지합니다.
!! 이 프로젝트는 활발하게 개발 중이며, 공개 API는 아직 안정적이지 않을 수 있습니다.
백엔드 (Backends)
- Metal
- Vulkan
- DirectX 12
- WebGPU
셰이더 (Shaders)
GPU는 Universal Shading과 통합됩니다.
USL은 소스 파싱, 리플렉션(reflection), 타겟 컴파일, 영구적인 셰이더 아티팩트 캐싱을 담당합니다. GPU는 USL 아티팩트를 소비하고 네이티브 백엔드 셰이더 객체를 생성합니다.
빌드 (Build)
Direct3D 12 백엔드는 현재 DirectX 12 Agility SDK 프리뷰를 사용합니다. CMake는 고정된 NuGet 패키지를 가져와 D3D12Core.dll을 로컬 앱에 스테이징하며, 시스템 설치가 필요하지 않습니다. 오프라인 빌드를 위해서는 GPU_DX12_AGILITY_SDK_ROOT를 추출된 패키지로 설정하십시오. 새로운 Agility 릴리스를 채택할 때는 패키지 버전, SDK 번호, SHA-256을 함께 업데이트해야 합니다. 프리뷰 런타임은 Direct3D 12 바이너리를 실행하는 장치에서 Windows 개발자 모드를 필요로 합니다.
macOS용 Metal 디버그 빌드:
cmake --preset macos-debug
cmake --build --preset macos-debug
ctest --test-dir out/build/macos-debug --output-on-failure
macOS용 Vulkan 디버그 빌드:
cmake --preset macos-vulkan-debug
cmake --build --preset macos-vulkan-debug
ctest --test-dir out/build/macos-vulkan-debug --output-on-failure
프레임 흐름 (Frame Flow)
일반적인 렌더 경로에서는 획득된 프레임, 하나의 커맨드 버퍼(command buffer), 명시적 렌더 패스 명령어, 그리고 단일 제출/프리젠트(submit/present) 헬퍼를 사용합니다:
GPUFrame *frame = GPUBeginFrame(swapchain);
GPUCommandBuffer *cmdb = NULL;
...
수동 제출 제어가 필요한 경우 GPUSchedulePresent, GPUQueueSubmit, 그리고 GPUEndFrame을 개별적으로 사용하십시오.
샘플 (Samples)
실시간 WebGPU 샘플은 다음에서 확인하세요: https://recp.github.io/gpu/
samples/triangle-usl: USL 아티팩트를 사용한 Metal 삼각형samples/triangle-vulkan-usl: 동일한 USL 소스를 사용한 Vulkan 삼각형samples/triangle-dx12-usl: 동일한 USL 소스를 사용한 Direct3D 12 삼각형samples/textured-quad-usl: Metal 텍스처 및 샘플러 바인딩samples/compute-buffer-usl: compute-to-render 버퍼 흐름samples/*-webgpu-usl: 브라우저 WebGPU 렌더링, compute, 스토리지 및 바인딩 흐름samples/usl-reflection-check: 리플렉션 및 바인딩 메타데이터 유효성 검사
The Metal 삼각형 실행 파일은 다음 위치에서 생성됩니다:
./out/build/macos-debug/samples/gpu-triangle-metal-usl/gpu-triangle-metal-usl
라이선스
GPU는 Apache License 2.0에 따라 라이선스가 부여됩니다.
상표권
Apple, Metal, DirectX, Vulkan 및 기타 제품명은 각 소유자의 상표입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub ML Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기