AMDVLK  by GPUOpen-Drivers

Open-source Vulkan driver for AMD Radeon GPUs on Linux

created 7 years ago
1,914 stars

Top 23.3% on sourcepulse

GitHubView on GitHub
Project Summary

This repository provides the AMD Open Source Driver for Vulkan (AMDVLK) for Radeon graphics adapters on Linux. It targets developers and power users seeking an open-source Vulkan implementation, offering features like Vulkan 1.4 support and extensive extension coverage, built upon AMD's Platform Abstraction Library (PAL) and LLVM-based Pipeline Compiler (LLPC).

How It Works

AMDVLK is built on AMD's Platform Abstraction Library (PAL), a shared component designed to encapsulate hardware and OS-specific details for various AMD drivers. This approach ensures consistency across platforms and compatibility with AMD developer tools. Shader compilation is handled by the LLVM-Based Pipeline Compiler (LLPC), which leverages LLVM's infrastructure for AMD GPUs to generate code objects compatible with PAL's pipeline ABI. This differs from AMD's closed-source driver, which uses a separate pipeline compiler.

Quick Start & Requirements

  • Build from Source: Requires CMake 3.21+, C++20 support (GCC 9+, Clang 11+), Ninja, and specific development packages for Ubuntu/RedHat. Building also necessitates installing DirectXShaderCompiler and glslang.
  • Pre-built Packages: Available via dpkg (Ubuntu) or rpm (RedHat), or through a dedicated APT repository for Ubuntu.
  • Dependencies: Vulkan SDK (1.3.290+ recommended for shader compiler tools), libssl3 (Ubuntu), openssl-libs (RedHat).
  • OS Support: Ubuntu 22.04/24.04 (amd64), RedHat 9.0/10.0 (x86-64).
  • GPU Support: Radeon RX 9070, 7000, 6000, 5000 series, and Radeon Pro W5700/W5500. For pre-GFX10 GPUs, use v-2023.Q3.3 or older.
  • Kernel: Recommended 5.3+ for upstream driver stack.
  • Setup Time: Building from source involves significant dependency installation and compilation time. Pre-built packages offer faster deployment.
  • Documentation: https://github.com/GPUOpen-Drivers/AMDVLK/blob/master/README.md

Highlighted Details

  • Supports Vulkan 1.4 and over 180 extensions.
  • Includes Radeon GPUProfiler tracing and built-in debug/profiling tools.
  • Features mid-command buffer preemption and SR-IOV virtualization.
  • Offers runtime settings for driver behavior customization and debugging.

Maintenance & Community

  • Contributions are welcome via pull requests to the dev branch for XGL, LLPC, GPURT, and PAL. LLVM changes should target the LLVM trunk.
  • Community channels are not explicitly listed in the README.

Licensing & Compatibility

  • License: MIT License for contributions to XGL, LLPC, GPURT, and PAL. LLVM is under Apache License v2.0 with LLVM Exceptions. MetroHash and CWPack have Apache 2.0 and MIT licenses, respectively.
  • Compatibility: Suitable for commercial use and linking with closed-source applications.

Limitations & Caveats

  • The driver is primarily tested on specific Ubuntu and RedHat versions; other distributions may require manual configuration.
  • Timeline semaphore extension requires Linux kernel 5.5+ or a Vulkan timeline semaphore layer.
  • Some features like hardware performance counter collection via RenderDoc are planned for future releases.
Health Check
Last commit

3 months ago

Responsiveness

Inactive

Pull Requests (30d)
1
Issues (30d)
3
Star History
63 stars in the last 90 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Georgios Konstantopoulos Georgios Konstantopoulos(CTO, General Partner at Paradigm), and
2 more.

gpu.cpp by AnswerDotAI

0.2%
4k
C++ library for portable GPU computation using WebGPU
created 1 year ago
updated 2 weeks ago
Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Nat Friedman Nat Friedman(Former CEO of GitHub), and
32 more.

llama.cpp by ggml-org

0.4%
84k
C/C++ library for local LLM inference
created 2 years ago
updated 16 hours ago
Feedback? Help us improve.