- ROCm je otevřený stack pro IA a HPC s HIP, RCCL a akcelerovanými knihovnami.
- ROCm 7 zrychluje trénování a inferenci s FP4/FP6 a zlepšuje komunikaci.
- Přímá instalace na Ubuntu; WSL2 a multi-GPU dostupné od verze 6.1.3.
- Portování z CUDA vyžaduje HIPify a úpravy; značné úspory díky vyhnutí se licenčním poplatkům.

Pokud pracujete s akcelerací GPU pro umělou inteligenci nebo HPC, pravděpodobně jste slyšeli o ROCm, otevřené platformě AMD, která vám umožňuje využít její karty pro seriózní výpočetní výkon v... Linux a stále častěji i v jiných prostředích. ROCm se zrodil pro efektivní integraci CPU a GPU a řešit reálné výpočetní zátěže otevřeným přístupem, bez licenčních omezení.
Během posledních několika cyklů společnost AMD urychlila vývoj: ROCm 7 přinesla významná vylepšení výkonu a kompatibility a předchozí verze 6.x otevřely dveře scénářům, jako je WSL2 a nastavení s více GPU. Zajímavé je, že už nemluvíme o permanentní demoverzi., ale spíše ekosystém, který dozrává, škáluje se a začíná přitahovat ty, kteří hledají alternativy k CUDA, aniž by museli zastavit svůj stack.
Co je AMD ROCm a proč je důležitý?
ROCm (Radeon Open Compute) je open source softwarový balík, který obsahuje ovladače, nástroje, knihovny a API pro programování grafických karet AMD od nízkoúrovňové verze (jádro) až po uživatelem definované aplikace. Cílem je nabídnout jednotnou, vysoce výkonnou základnu bod Generativní AI a vysoce výkonné výpočty (HPC) s relativně snadnou migrací ze stávajících ekosystémů.
Platforma podporuje intenzivní provádění úloh v Linuxu a zaměřuje se na maximální využití GPU pomocí optimalizovaného běhového prostředí, kompilátorů a knihoven. Komponenty jako HIP jsou integrovány pro portování kódu CUDA, knihovny pro kolektivní komunikaci, jako je RCCL, akcelerátory lineární algebry a nástroje pro profilování a ladění.
Kromě výkonu spočívá hodnota ROCm v jeho otevřené povaze: bez uzavřených licencí a s širokým souladu s ekosystémy umělé inteligence a datové vědy jako například PyTorch, TensorFlow a ONNX. Díky tomu je velmi atraktivní volbou pro univerzity, malé a střední podniky a laboratoře, které chtějí škálovat bez dodatečných nákladů na software.
Co přináší ROCm 7: výkon, lehké provedení a větší kompatibilitu
S verzí 7 platforma udělala významný skok vpřed. AMD uvádí, že je až 3,5krát rychlejší v inferenci a 3krát rychlejší v trénování v určitých scénářích. díky podpoře datových typů s nízkou přesností, jako jsou FP4 a FP6 a vylepšení distribuovaného provádění a komunikačního zásobníku.
Tyto redukované formáty umožňují umístit více dat do menší paměti a zrychlit propustnost bez znatelného snížení kvality při odpovídajícím zatížení. Co je klíčové pro LLM a generativní umělou inteligenciTrend směrem k nižší přesnosti (od FP32/FP16 k FP8/FP6/FP4) je v souladu se současným stavem techniky.
Dalším kritickým bodem je komunikace mezi grafickými procesory (GPU). Díky integraci RCCL (ekvivalent NCCL od AMD) ROCm 7 vylepšuje orchestraci provozu GPU-GPU, čímž se snižuje počet úzkých míst při škálování na více akcelerátorů. To usnadňuje stabilnější a efektivnější distribuované školení.
Krok vpřed je také v kompatibilitě: kromě Linuxu, Pracujeme na podpoře pro Windows (stále omezené, ale s pokrokem) a rozsah technické vybavení, včetně Instinct MI300X, nedávných platforem Radeon a dokonce i Ryzen s umělou inteligencí. Pro vývojáře desktopových systémů, otevírá se tím možnost i mimo datové centrum.
Softwarový stack a klíčové komponenty v ROCm
ROCm je víc než jen ovladač: je to kompletní stack. Zahrnuje vývojové nástroje, kompilátory, numerické knihovny, komunikační API a administrativní nástrojeObecně řečeno, jeho nejrelevantnější části jsou:
- HIPVrstva přenositelnosti, která umožňuje adaptaci jader CUDA na grafické procesory AMD. HIPify automatizuje velkou část procesu překladu.
- RCCLKnihovna kolektivní komunikace optimalizovaná pro grafické karty AMD, velmi užitečná při distribuovaném trénování.
- MIOopenprimitiva pro neuronové sítě Zrychleno GPU.
- ROCM BLAS, FFT, řídké a MAGMAKlíčové algebrové knihovny pro výkon AI/HPC.
- nářadí například rocminfo, rocm-smi, nástroje pro profilování, ladění a orchestraci (včetně podpory pro Kubernetes prostřednictvím GPU Operator).
S touto sadou, je pokryt kompletní vývojový cyklus, od psaní a portování jader, až po trénovací modely a provoz clusterů s přehledem a kontrolou.
Rozdíly oproti CUDA: Jaké změny se projeví v praxi?
Odkud pochází NVIDIA a CUDA ví, že výkon tam je, ale také závislost na dodavateli. ROCm se snaží tuto patovou situaci prolomit s otevřeným a ekonomicky dostupnějším návrhem. V praxi:
- Zásobník je otevřený a volný, ideální pro klastry umělé inteligence s kontrolovanými náklady.
- HIP usnadňuje portování CUDA jader, ale Ne všechno je automatické nebo 1:1.
- Kompatibilita hardwaru je selektivnější: Ne všechny spotřebitelské Radeony jsou oficiálně podporovány.
- Podpora Windows se posouvá kupředu a WSL2 se nyní objevuje ve větvích 6.x jako beta verze, rozšiřující se vývojové scénáře.
Pokud váš pracovní postup závisí na uzavřených nástrojích zaměřených na CUDA, můžete narazit na omezení. Ale pokud používáte PyTorch nebo TensorFlow a pohybujete se v open source, ROCm 7 začíná poskytovat seriózní produkční zážitek.
Kompatibilita hardwaru a požadavky, které byste měli vzít v úvahu
Důležitou nuancí je seznam oficiálně podporovaných GPU. NVIDIA podporuje CUDA ve velké části svého portfolia, zatímco AMD oficiálně omezuje ROCm na specifické čipy (Instinct a některé Radeony). To neznamená, že jiné GPU nebudou fungovat, ale mohou vyžadovat úpravy nebo nebudou podporovány.
V předchozích generacích existovala podpora pro modely jako Instinct MI25, které nabízeno ~12,5 TFLOPS FP32 a 768 GFLOPs FP64, ale počínaje verzí ROCm 5.0 již nebyl uveden jako podporovaný. I tak u některých Triky může fungovat pro experimentování.
Nahoře se vznáší Instinct MI50 ~13,3 TFLOPs FP32 a ~6,6 TFLOPs FP64a současné modely jako MI300X zvyšují laťku díky velké paměti a výkonu pro LLM. Pro profesionální použití je tu 48GB Radeon Pro W7900. Je to zajímavé pro LLM, které požadují 35 GB nebo více na GPU..
Často přehlíženým požadavkem je podpora PCIe Atomics procesorem/deskou. Pokud je vaše platforma starší než ~2017, může dojít k pádům.Je dobré si to ověřit, než půjdete nakupovat nebo se pustíte do ambiciózních nasazení.
ROCm 6.1.3: Multi-GPU a WSL2 na radaru
Před ROCm 7 přinesla větev 6.1.3 praktické věci: podpora konfigurací s více GPU (klíč ke škálování služeb) a beta podpora pro subsystém Windows pro Linux (WSL2). To umožňuje spouštět nástroje umělé inteligence založené na Linuxu ze systému Windows, Velmi užitečná zpráva pro smíšené pracovní stanice.
Kromě toho byla přidána kompatibilita TensorFlow s PyTorch a ONNX, což rozšiřuje možnosti pro ty, kteří střídají frameworky. Pokud pracujete na Windows, ale vaše aktuální nasazení je Linux, WSL2 může být pohodlným mostem pro vývoj.
Základní instalace na Linuxu (Ubuntu) a ověření
Pro osobní počítač s Ubuntu 20.04/22.04 LTS je oficiální instalace přímočará. Doporučený postup je přidat repozitář AMD, nainstalovat vývojový metabalíček a ověřit GPU.:
Příprava systému se základními nástroji a klíč repozitáře AMD:
sudo apt update && sudo apt install -y wget gnupg2
wget https://repo.radeon.com/rocm/rocm.gpg.key
sudo gpg --dearmor -o /etc/apt/keyrings/rocm.gpg < rocm.gpg.key
Přidat seznam repozitářů a aktualizovat index balíčku:
echo 'deb [signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/debian/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
Instalace vývojového balíčku a hlavní nástroje:
sudo apt install -y rocm-dev
Pro ověření instalace můžete zkontrolovat stav detekované grafické karty a ovladače. Tyto nástroje jsou součástí ROCm stacku.:
rocminfo
rocm-smi
S tímto byste měli být připraveni kompilovat kód v HIP nebo spustit PyTorch s AMD backendem. Pokud pracujete v Kubernetes, GPU Operator vám to usnadní. zřizování uzlů s ovladače a připraven k běhu.
Existuje automatická konverze z CUDA? Co tam vlastně je?
Opakující se otázkou je, zda je možné převést projekt CUDA do ROCm bez zásahu do kódu. Stručná odpověď: neexistuje žádné 100% automatické magické tlačítko.Existuje jen HIP a nástroje hipify, které pomáhají překládat mnoho CUDA API a jader.
V reálných projektech, Obvyklá věc je poloautomatická migrace s manuálními kontrolami., zejména v oblastech, kde existují závislosti specifické pro CUDA, nestandardní rozšíření nebo jemné chování. Náročnost se liší v závislosti na velikosti kódu a použití knihoven třetích stran.
Na rozdíl od jiných iniciativ je zdejší prostředí navrženo tak, aby konvergovalo s kódem C++/HIP, což usnadňuje udržování společné základnyPřesto je vhodné před provedením úplné migrace vytvořit prototyp s kritickými moduly.
Průvodce pro pokročilé: Spuštění ROCm na Vega iGPU (Ryzen APU)
V nepodporovaných scénářích je prostor pro úpravy. Zajímavým případem je Ryzen 2200G s integrovanou grafickou kartou Vega 8. schopný ~1,8 TFLOPs FP32 při 1,6 GHzNení to žádná bestie, ale je zábavné experimentovat s malými modely.
Cílem je, aby systém detekoval iGPU pomocí ROCm, nainstalujte si co nejaktuálnější verzi a otestujte PyTorch. Aby PyTorch rozpoznal GPU, je v těchto případech obvykle nutné zkompilujte PyTorch ze zdrojového kódu se specifickými parametry.
Nejprve si pamatujte, že iGPU používá sdílenou paměť s RAM. Alokujte co nejvíce do BIOS (například 2 GB) aby byl prostor pro manévrování v inferenci.
Krok 1: Instalace ROCm a ověření GPU
Použijte výše uvedený postup pro Ubuntu. Zkontrolujte pomocí rocminfo a openclinfo že systém vidí GPU:
sudo rocminfo
sudo openclinfo
Pokud jsou agenti uvedeni a GPU se zobrazí v odpovídající sekci, základnu máš připravenou po zbytek procesu.
Krok 2: Závislosti pro kompilaci PyTorch s ROCm
Budete potřebovat další nástroje a knihovny pro sestavení, které nejsou součástí výchozího instalačního programu. Instalace sady nástrojů a utilit ze sestavení:
sudo apt install -y python3 python3-pip gcc g++ libatomic1 make \
cmake doxygen graphviz texlive-full
A přidává ROCm balíčky a knihovny, které si PyTorch vyžádá při kompilaci. Zahrnuje ovladače, MIOpen, RCCL a ekosystém HIP:
sudo apt install -y libstdc++-12-dev rock-dkms rocm-dev rocm-libs \
miopen-hip rccl rocthrust hipcub roctracer-dev cmake
Pro MAGMA je vhodné použít jako poskytovatele MKL Condu. Nainstalujte Minicondu do složky uživatele a nechte trasu po ruce:
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
Restartujte terminál načíst prostředí. Tím získáte potřebný MKLROOT když propojíte MAGMA.
Krok 3: Sestavení a instalace MAGMA pro ROCm
Před kompilací identifikujte cíl LLVM vaší GPU pomocí souboru rocminfo nebo dokumentace LLVM pro AMDGPU. Na Vega 8 obvykle vidíte gfx902, ale praktická podpora Pro tyto experimenty používáme jako cíl přibližně gfx900 (MI25).
S tímto odkazem, upravuje PYTORCH_ROCM_ARCH a MKLROOT a spustí sestavení MAGMA:
export PYTORCH_ROCM_ARCH=gfx900
# Clona el repo
git clone https://bitbucket.org/icl/magma.git
pushd magma
# Branch con corrección de memory leak
git checkout 5959b8783e45f1809812ed96ae762f38ee701972
cp make.inc-examples/make.inc.hip-gcc-mkl make.inc
# Añade linkers y objetivos de GPU al make.inc
echo 'LIBDIR += -L$(MKLROOT)/lib' >> make.inc
echo 'LIB += -Wl,--enable-new-dtags -Wl,--rpath,/opt/rocm/lib -Wl,--rpath,$(MKLROOT)/lib -Wl,--rpath,/opt/rocm/magma/lib' >> make.inc
echo 'DEVCCFLAGS += --gpu-max-threads-per-block=256' >> make.inc
export PATH="${PATH}:/opt/rocm/bin"
if [[ -n "$PYTORCH_ROCM_ARCH" ]]; then
amdgpu_targets=`echo $PYTORCH_ROCM_ARCH | sed 's/;/ /g'`
else
amdgpu_targets=`rocm_agent_enumerator | grep -v gfx000 | sort -u | xargs`
fi
for arch in $amdgpu_targets; do
echo "DEVCCFLAGS += --amdgpu-target=$arch" >> make.inc
done
# Evita conflictos con OpenMP en hipcc
sed -i 's/^FOPENMP/#FOPENMP/g' make.inc
make -f make.gen.hipMAGMA -j $(nproc)
LANG=C.UTF-8 make lib/libmagma.so -j $(nproc) MKLROOT=~/miniconda3
make testing/testing_dgemm -j $(nproc) MKLROOT=~/miniconda3
popd
sudo mv magma /opt/rocm
Tento krok zajišťuje, že máte Klíčová lineární algebra pro PyTorchPokud se to nepodaří, upravte trasy nebo znovu ověřte cíl GPU.
Krok 4: Vytvořte PyTorch s ROCm backendem
Klonuje repozitář a řeší závislosti PYTHON. Zahrnuje další balíčky které obvykle zabraňují chybám při kompilaci:
git clone https://github.com/pytorch/pytorch.git
cd pytorch
git submodule update --init --recursive
sudo pip3 install -r requirements.txt
sudo pip3 install enum34 numpy pyyaml setuptools typing cffi future \
hypothesis typing_extensions CppHeaderParser argparse
Převeďte kód CUDA do HIP pomocí nástroje od AMD. Tento krok adaptuje jádra k backendu AMD:
sudo python3 tools/amd_build/build_amd.py
Nakonec zkompilujte s použitím cíle gfx900 a povolte ROCm. Upravte MAX_JOBS podle vašich jader/vláknů aby nedošlo k přetížení stroje:
sudo PYTORCH_ROCM_ARCH=gfx900 USE_ROCM=1 MAX_JOBS=4 python3 setup.py install
Buď trpělivý: kompilace může trvat hodiny a nemusí být na konečném počítači, pokud replikujete závislosti na jiném počítači.
Krok 5: Stabilita ovladače a testování pomocí MNIST
Pro zlepšení stability na iGPU je vhodné upravit zásady napájení ovladače AMDGPU. Zkontrolujte aktuální parametry a vyhledejte ppfeaturemask:
find /sys/module/amdgpu/parameters/ -type f -name '*' -exec sh -c 'filename=${1%.*}; echo "File: ${filename##*/}"; cat "$1"' sh {} \;
Poté načtěte modul s permisivní hodnotou pro ppfeaturemask. Tato hodnota obvykle poskytuje stabilitu v popsaných případech:
sudo modprobe amdgpu ppfeaturemask=0xfff73fff
Restartujte a naklonujte příklady PyTorch. Instalace závislostí příkladu MNIST a použijte přepsání, aby PyTorch považoval iGPU za gfx 9.0.0 (MI25):
git clone https://github.com/pytorch/examples.git
cd examples/mnist
sudo pip3 install -r requirements.txt
sudo HSA_OVERRIDE_GFX_VERSION=9.0.0 python3 main.py --verbose
Pokud backend PyTorch označí GPU jako dostupné (i když interní název používá „cuda“), používá trasu HIP. V PyTorchu je „cuda“ historickým označením pro backend GPU., bez ohledu na to, zda je poskytovatelem NVIDIA nebo AMD.
Windows, WSL2 a cesta ke smíšeným pracovním stanicím
Ačkoli primární podporou ROCm zůstává Linux, Podpora pro Windows je na cestěVětev 6.1.3 se nyní zaměřuje na beta verzi WSL2, která umožňuje vývoj na Windows s nástroji umělé inteligence pro Linux.
Pro ty, kteří pracují v korporátním nebo vzdělávacím prostředí s Windows, To výrazně zjednodušuje přijetíMenší tření při testování, přípravě prostředí a následném přechodu do produkčního prostředí na nativním Linuxu nebo Kubernetes.
Škálování: Multi-GPU, RCCL a Orchestrace
Pokud je vaším cílem distribuované školení, věnujte pozornost RCCL a konfiguraci s více GPU. ROCm 6.1.3 zavedl jemnější podporu pro více GPUa ROCm 7 dále zdokonaluje komunikační vrstvu pro snížení latence.
V nasazeních Kubernetes pomáhá operátor GPU s ovladači, běhovým prostředím a uzly připravenými pro danou pracovní zátěž. To snižuje ruční práci v klastrech a poskytuje reprodukovatelnost pro týmy a prostředí CI/CD.
Cena, licence a scénáře použití
Jednou ze silných stránek metody ROCm je rovnice nákladů a výnosů. Chybí uzavřené licence, je proveditelné vytvořit ekonomičtější klastry umělé inteligence s hardwarem AMD a softwarem s otevřeným zdrojovým kódem, což je velmi atraktivní pro laboratoře, univerzity a malé a střední podniky.
To neznamená, že ROCm je platný pro jakýkoli tok. Pokud se spoléháte na proprietární nástroje s exkluzivní podporou CUDASetkáte se s překážkami. Pokud se ale váš stack točí kolem PyTorch, TensorFlow, ONNX a ekosystému Pythonu, terén je příznivý.
Praktické tipy, jak začít a vyhnout se nástrahám
Pokud s AMD teprve začínáte, vyzkoušejte nejprve menší modely. Ověřuje, zda grafická karta a ovladače reagují správně. a že jsou přítomny knihovny (MIOpen, RCCL, BLAS/FFT).
Pokud již používáte PyTorch nebo TensorFlow, zkuste před přesunutím všech modulů portovat nekritické moduly pomocí HIP. Detekuje závislosti specifické pro CUDA které vyžadují manuální úpravu a měří výkon s redukovanými formáty i bez nich (FP16/FP8/FP6/FP4).
U clusterů plánujte topologii a komunikaci od začátku. RCCL a dobrá propojovací struktura dělat rozdíl ve velkém měřítku. Pokud pracujete na velkých LLM, zvažte GPU s velkým množstvím VRAM.
Komunita open source programátorů roste a místa jako r/StableDiffusion jsou neustálým zdrojem nápadů a nástrojů. Využijte technická vlákna a repozitáře se skripty k urychlení vašeho přijetí nebo k opravě vzácných problémů.
Po všech výše uvedených skutečnostech je obrázek jasný: ROCm se z začínající alternativy stal výkonnou platformou., s verzí 7, která výrazně zvyšuje výkon (FP4/FP6), komunikaci a podporu, verzí 6.1.3, která otevřela dveře k multi-GPU a WSL2, a poměrně přímočarou instalační cestou na Ubuntu. Při portování z CUDA nebo na neoficiální GPU existují omezení kompatibility a určitá manuální práce, ale na oplátku nabízí svobodu, úspory a zážitek, který již zavání skutečnou produkcí.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.