How-To RX 9070/9060 (XT) unter Ubuntu für Gaming und AI

How-To-Threads

eggfish

Komplett-PC-Aufrüster(in)

Wozu dieser Guide?​

Aktuellere Distris (z.B. Nobara) liefen bei mir nicht stabil und ein Updates blieben hängen. Ich verspreche mir von Ubuntu mehr Stabilität trotz den Änderungen.

Hinweis: Was ich hier beschreibe sollte zwar funktionieren, ist aber nicht supported!

1. Installation von Ubuntu 24.04​

Man braucht zwingend Ubuntu 24.04 für ROCm (für AI). Die aktuellste Ubuntu Version wird von ROCM von AMD nicht supported. Wie man Ubuntu installiert erkläre ich hier nicht.

2. Updates installieren​

Nach der Installation ein Systemupdate machen
Bash:
sudo apt update
sudo apt upgrade

3. Neuesten Kernel installieren​

Hinweis: Wenn man selbst den neuen Kernel installiert, muss man ihn in Zukunft auch manuell aktuell halten. Leider wird er nicht automatisch aktualisiert.

Secure Boot muss im Bios aus sein.
Den neuesten Kernel kann man sich hier herunterladen: https://kernel.ubuntu.com/mainline/
Momentan ist der aktuellste Kernel v6.15.1.
Einfach in den passenden Ordner navigieren und die zwei Dateien in der neuesten Version herunterladen:
  • amd64/linux-image-unsigned...
  • amd64/linux-modules...
Beide Pakete installieren:
Bash:
cd Downloads
sudo apt install ./linux-image-* ./linux-modules-*
Nach der Installation kann man die beiden Dateien aus dem Downloadordner läschen.
Wie beschrieben kann man den Kernel später auch manuell updaten.

4. Aktuellere Grafiktreiber​

Das Mesa Snap aus dem beta chanel installieren:
Bash:
sudo snap refresh --channel beta/kisak mesa-2404
Das Kisak stable PPA hinzufügen:
Bash:
sudo add-apt-repository ppa:kisak/turtle
Dann das System aktualisieren:
Bash:
sudo apt update
sudo apt upgrade
Hier muss man nichts manuell machen. Updates kommen in Zukunft weiterhin automatisch mit den Systemupdates.

5. ROCm installieren​

Bash:
wget https://repo.radeon.com/amdgpu-install/6.4.1/ubuntu/noble/amdgpu-install_6.4.60401-1_all.deb
sudo apt install ./amdgpu-install_6.4.60401-1_all.deb
sudo apt update
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo apt install rocm

Näheres: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html

6. VRR aktivieren​

Der Schalter für VRR(Freesync) ist standardmäßig nicht sichtbar und muss erst aktiviert werden:
Bash:
gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"

7. Neustarten​

Nach dem Neustart kann man in den Systemeinstellungen bei der Monitor Refresh Rate VRR aktivieren (wenn der Minitor das kann).

8. Sprachmodell auf 9070/9060 (XT) ausführen​

1. Ollama instalieren​

Curl installieren
Bash:
sudo apt install curl
curl -fsSL https://ollama.com/install.sh | sh
Näheres: https://ollama.com/download

Das Skript erkennt ROCm automatisch und erstelt einen Server auf 127.0,0.1:11434

2. Alpaca einrichten​

Flatpak installieren
Bash:
sudo apt install flatpak

Flathub repo hinufügen
Bash:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Alpaca instaliern
Bash:
flatpak install flathub com.jeffser.Alpaca
Nachdem Alpaca installiert ist, mus man sich aus Ubuntu abmelden und wieder anmelden.
  1. Dann Alpaca über den Ubuntu Launcher startne.
  2. Links auf Burger Menü klicken und "Instanzen verwalten" anklicken
  3. "+ Instanz hinufügen"
  4. Ollama auswähen (nicht verwaltet !)
  5. Akzeptieren
  6. Bei Instanz-URL "http://127.0.0.1:11434" eintragen
  7. Speichern klicken
  8. Oben auf < (zurück) klicken
  9. "Modelle Hinzufügen"
  10. Oben auf "verfügbar" gehen
  11. Modell auswählen . Z.B. Mistral.
  12. Rechts auf "latest" klicken
  13. Warten bis Model Download abgescholsen ist
  14. Wieder auf < (zurück) klicken
Jetzt steht im Chatfenster oben das Modell. "Mistral". Man kan mit ihm chatten und es läuft auf der Grafikkarte

9. 9070/9060 (XT) für Pytorch benutzen​

Virtualenv installieren
Bash:
sudo apt install virtualenv

Einen Projektordner erstellen und in den Orner gehen
Bash:
mkdir meinaiprojekt
cd meinaiprojekt

Programmierumgebung erstellen
Bash:
virtualenv venv

Programmierumgebung aktivieren
Bash:
. venv/bin/activate

Hinweis: Aus der virtuellen Umgebung kann man mit dem Befehl deactivate später wieder herauswechseln.

Pytorch für ROCm in der virtuellen Umgebung installieren
Bash:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.4
Näheres: https://pytorch.org/get-started/locally/
Die somit installierte Pytorch version ist nur im venv verfügbar!

Python im venv starten
Bash:
python3
Testen ob Cuda geht
Python:
import torch
torch.cuda.is_available()
quit()
Wenn Cuda verfügbar ist, ist das Ergebnis True.

Virtuelle Umgebung schließen
Bash:
deactivate

10. 9070/9060 (XT) mit Rust tch benutzen​

AI mit Rust statt Python.

libtorch laden und unzippen
Bash:
cd /opt
sudo wget https://download.pytorch.org/libtorch/nightly/rocm6.4/libtorch-shared-with-deps-latest.zip
sudo unzip libtorch-shared-with-deps-latest.zip

Näheres:
Rust installieren
Bash:
curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh
. ~/.cargo/env
Näheres: https://www.rust-lang.org/tools/install

Neues Rust prokjekt erstellen
Bash:
cargo new ~/meinrustprojekt && cd ~/meinrustprojekt

Dateien erstellen​

Cargo.toml
Code:
[package]
name = "meinrustprojekt"
version = "0.1.0"
edition = "2024"

[dependencies]
tch = "*"

build.rs
Code:
fn main() {
    let os = std::env::var("CARGO_CFG_TARGET_OS").expect("Unable to get TARGET_OS");
    match os.as_str() {
        "linux" | "windows" => {
            if let Some(lib_path) = std::env::var_os("DEP_TCH_LIBTORCH_LIB") {
                println!("cargo:rustc-link-arg=-Wl,-rpath={}", lib_path.to_string_lossy());
            }
            println!("cargo:rustc-link-arg=-Wl,--no-as-needed");
            println!("cargo:rustc-link-arg=-ltorch");
        }
        _ => {}
    }
}
Näheres: https://github.com/LaurentMazare/tch-rs/issues/907

src/main.rs
Code:
use tch;

fn main() {
    if tch::Cuda::is_available() {
        println!("CUDA ist verfügbar.");
    } else {
        println!("CUDA ist nicht verfügbar.");
    }
}

Dann laufen lassen
Bash:
LIBTORCH_BYPASS_VERSION_CHECK=1 LIBTORCH=/opt/libtorch LD_LIBRARY_PATH=$LIBTORCH/lib:$LD_LIBRARY_PATH cargo run
Wenn Cuda verfügbar ist stimmt alles

11. ROCm updaten​

Um ROCm zu updaten, die ROCm Seite mit der neune Version besuchen, das neue deb Paket mit den neuen Repo laden, installieren und ein Updat durchführen. Zum Beipiel:
Bash:
wget https://repo.radeon.com/amdgpu-install/6.4.2/ubuntu/noble/amdgpu-install_6.4.60402-1_all.deb
sudo apt install ./amdgpu-install_6.4.60402-1_all.deb
sudo apt update
sudo apt upgrade
Näheres: https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html
 
Zuletzt bearbeitet:
Interessante Anleitung, danke dafür. Bisher hab ich noch keinen Bedarf an lokalen KI-Berechnungen, aber falls ich da mal einsteige werd ich an diesen Guide denken :D

Bei Punkt 3 kann man auch das Paket "mainline" installieren. Dort hat man dann eine GUI um schnell und unkompliziert verschiedene Kernel-Versionen zu installieren. Dann muss man nichts manuell runter laden und installieren.
 
Danke für Guide und Hinweis auf das Mainline Paket.

Nutze eine Gigabyte Gaming OC RX 9060 XT 16 GB unter Ubuntu 25.04 mit Kernel 6.15.4 und Mesa 25.0.7

Will auch noch in ROCm reinsschnuppern.

Was mir beim zocken aber auffiel: Mein VRAM clock, sowohl laut radeontop als auch mango HUD, geht nie über 1258 MHz hinaus. Dabei sollte der für GDDR6 und 20 Gbpsb eigentlich 2500 MHz erreichen.
Hat das sonst noch jemand beobachtet?

Ich versuche gerade noch herauszufinden, ob es am bios meiner konkreten GPU liegt.

Falls hier noch jemand mit der Karte ist: Was beobachtet ihr für memory clocks?
 
Zuletzt bearbeitet:
Das ist normal so. Man kann es verdopeln dan stimmt es.
Danke für die Rückmeldung. Das war letztlich auch mein Rückschluss.

Bei meinem Rechercheversuch erschien mir das Thema VRAM clocks auch immer mehr wie ein Kaninchenbau. Mit effective, default und real clocks viele teils inkonsist verwendete Begrifflichkeiten und Unterschiede zwischen Windows und Linux welcher Wert reported wird... Jedenfalls läuft die Karte super :-)

Auf PCGH gab es auch kürzlich den Hinweis zu kisak mesa-fresh. Bin von oibaf darauf umgestiegen. Zusammen mit dem Mainline Paket habe ich jetzt sehr einfach Ubuntu 25.04. auf Kernel 6.15.5 und Mesa 21.1.5 aktualisieren können.
Eventuell gibt es dann ab August mit Mesa 21.2. die Möglichkeit FSR4 in games mit entsprechendem Support zu aktivieren.
 
Zurück