改动 / #2516

#2516 setup: Build on ROCm 10 (TheRock Packaging)

open · @brookpatten · 0 评论 · 去 GitHub 看

Setup & installAMD / HIPModels & quants

说明

## Summary
Updates compilation to handle the changes in rocm 10

## What changed
setup.py: detect ROCm toolchain layout instead of hardcoding ROCm 9 paths

ROCm 10 (TheRock packaging) moved the LLVM toolchain under core/: the compiler is now bin/amdclang++ (no more llvm/bin/clang++), headers live in core/include, and device bitcode is in core/lib/llvm/amdgcn/bitcode. Two hardcoded assumptions broke on that layout:

-DCMAKE_HIP_COMPILER pointed at the nonexistent llvm/bin/clang++. CMake treats a changed, missing compiler as a cache reset and silently reconfigures CPU-only — which drops the strata target from build.ninja, so the build dies with ninja: error: unknown target 'strata'.
--rocm-path / HIP_PATH pointed at the ROCm top level. With ROCm 10's clang, that skips injecting the HIP device runtime wrapper, so device-context math (fmaxf, fabsf, logf, __expf, …) resolves to host-only glibc declarations and every kernel .cu fails with "no matching function" (~44 errors across sampler, router_top10, quantize_act, …).
The fix detects which layout is present and picks the first path that exists, in both build_engine_hip and build_image_engine:

hip_compiler: bin/amdclang++ → llvm/bin/clang++ → core/lib/llvm/bin/clang++
rocm_inc (for HIP_PATH and --rocm-path): core when core/include exists, else the top level
bitcode path list gains core/lib/llvm/amdgcn/bitcode
Older ROCm layouts keep working — the previous paths remain in each fallback chain. 

Verified on ROCm 10.1.0 / gfx1201 (Radeon AI PRO R9700): full clean build, engine launches, on cachyos with rocm-bin 10 installed from paru.

本站相关内容

相关页面的快捷入口。