02. AMD ROCmled.md 4.5 KB

Palun selgita seda lähemalt. Kuidas installida ja kuidas kontrollida linuxi arvutis, et töötab?

ROCm on AMD-i avatud lähtekoodiga tarkvarapakk GPU-dega üldotstarbeliseks arvutamiseks (GPGPU), masinõppeks ja HPC-ks; see sisaldab draivereid, kompilaatorit, teeke (HIP, BLAS, RCCL jne) ja tööriistu, et kasutada AMD GPU-d sarnaselt sellele, kuidas CUDA kasutatakse NVIDIA kaartidel. ROCm toetab nüüd hästi kaasaegseid Instinct ja Radeon RDNA/Vega kaarte ning on suunatud just AI‑ ja ML‑koormuste kiirendamiseks.[^1][^2][^3][^4]

Mis on ROCm?

  • ROCm on tarkvarakiht, mis ulatub kernelidraiverist kuni kasutaja taseme teekide ja programmimismudeliteni (HIP, OpenMP, OpenCL), et GPU‑d kasutada üldotstarbeliseks arvutuseks.[^3][^1]
  • See on enamasti avatud lähtekoodiga platvorm, mille eesmärk on pakkuda sarnast ökosüsteemi nagu CUDA, kuid AMD riistvarale.[^2][^1]

Eeldused Pop!_OS 24.04 ja muu Linuxi jaoks

  • Vajalik on sobiv AMD GPU (nt uuemad GCN5, RDNA, RDNA2/3/4; Instinct MI‑seeria), vastasel juhul ROCm ei tuvasta kaarti või funktsionaalsus on piiratud.[^4][^1]
  • ROCm ametlik tugi on dokumenteeritud Ubuntu 22.04/24.04‑le, kuid Pop!_OS 24.04 (Noble‑baasil) saab tavaliselt sama repo kaudu tööle; mõnikord on vaja piisavalt värsket Mesa versiooni (vähemalt 24.2 mõnedel juhtudel).[^5][^6][^7]

ROCm paigaldamine Pop!_OS 24.04 (bash)

Näidiskäskude mõte on: lisada AMD ROCm APT repo, uuendada ja installida baas‑paketid (vajadusel kohanda versiooninumbrit 6.2 → 6.3+, kui AMD docs seda näitab).[^6][^7][^5]

# 1. Lisa AMD ROCm GPG võti
sudo mkdir -p /etc/apt/keyrings
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
  gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null

# 2. Lisa ROCm APT repositoorium (näiteks ROCm 6.2 noble jaoks)
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] \
https://repo.radeon.com/rocm/apt/6.2 noble main" | \
sudo tee /etc/apt/sources.list.d/rocm.list

# 3. Soovi korral sea kõrgem prioriteet ROCm repo pakettidele
printf "Package: *\nPin: origin repo.radeon.com\nPin-Priority: 600\n" | \
sudo tee /etc/apt/preferences.d/rocm

# 4. Uuenda paketiloend
sudo apt update

# 5. Paigalda ROCm põhiplokk
sudo apt install rocm

# (Alternatiiv: konkreetne versioon, nt rocm-6.2.4)
# sudo apt install rocm-6.2.4

Kui kasutad muud distro varianti (Ubuntu 22.04/24.04, Debian jne), kasuta vastava versiooni repo‑rida AMD ROCm ametlikust dokumentatsioonist.[^8][^7][^5]

Keskkonnamuutujad ja PATH

Pärast paigaldust soovitatakse lisada ROCm tööriistad PATH‑i ja LD_LIBRARY_PATH‑i, eriti kui kasutad mitut versiooni.[^9][^8]

# Lisa ~/.bashrc või ~/.zshrc lõppu
echo 'export ROCM_PATH=/opt/rocm' >> ~/.bashrc
echo 'export PATH=$ROCM_PATH/bin:$ROCM_PATH/llvm/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$ROCM_PATH/lib:$ROCM_PATH/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

# Lae shell uuesti
source ~/.bashrc

Kuidas kontrollida, et ROCm töötab?

AMD dokumentatsiooni järgi kasutatakse kontrolliks eelkõige rocminfo, clinfo ja amd-smi.[^10][^11]

# 1. Kontrolli, et paketid on paigaldatud
apt list --installed | grep rocm

# 2. Põhidiagnostika GPU ja ROCm kohta
/opt/rocm/bin/rocminfo | grep -i "Marketing Name:"

# 3. OpenCL info (kui clinfo on paigaldatud)
sudo apt install clinfo
clinfo | grep -i "Board name"

# 4. AMD GPU seisund, temperatuur, mälu, draiver
/opt/rocm/bin/amd-smi
  • Kui rocminfo väljundis näed oma GPU nime ja “Agent” infot, siis ROCm tuvastab kaardi korrektselt.[^11][^10]
  • Kui amd-smi näitab kaarti, mälu ja draiveri versiooni ning ei kuvata tõsiseid vigu, on draiverid ja ROCm baasiosa enamasti korras.[^10][^11]

Lühike Python/HIP kontroll (valikuline)

Kui soovid kiiresti kontrollida, kas HIP/PyTorch ROCm töötab, võid installida vastava raamteegi (nt PyTorch ROCm‑i jaoks vastav pip või conda rat AMD juhendist) ja teha lihtsa testi. Näide PyTorchiga (eeldab, et ROCm‑iga ühilduv PyTorch on juba paigaldatud):[^2][^4]

import torch

print("ROCm/CUDA nähtav:", torch.cuda.is_available())
print("GPU arv:", torch.cuda.device_count())
if torch.cuda.is_available():
    print("GPU nimi:", torch.cuda.get_device_name(0))
    x = torch.randn(1000, 1000, device="cuda")
    y = torch.matmul(x, x)
    print("Matmul OK, kuju:", y.shape)

Kui see programm näitab, et GPU on saadaval ja arvutused töötavad, on ROCm koos vastava ML‑raamistikuga funktsionaalne. [^12][^13][^14][^15][^16][^17][^18][^19][^20]