mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	HIP: fix AMDGPU_TARGETS, update documentation (#16803)
This commit is contained in:
		| @@ -261,10 +261,12 @@ You can download it from your Linux distro's package manager or from here: [ROCm | ||||
| - Using `CMake` for Linux (assuming a gfx1030-compatible AMD GPU): | ||||
|   ```bash | ||||
|   HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \ | ||||
|       cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \ | ||||
|       cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \ | ||||
|       && cmake --build build --config Release -- -j 16 | ||||
|   ``` | ||||
|  | ||||
|   Note: `GPU_TARGETS` is optional, omitting it will build the code for all GPUs in the current system. | ||||
|  | ||||
|   To enhance flash attention performance on RDNA3+ or CDNA architectures, you can utilize the rocWMMA library by enabling the `-DGGML_HIP_ROCWMMA_FATTN=ON` option. This requires rocWMMA headers to be installed on the build system. | ||||
|  | ||||
|   The rocWMMA library is included by default when installing the ROCm SDK using the `rocm` meta package provided by AMD. Alternatively, if you are not using the meta package, you can install the library using the `rocwmma-dev` or `rocwmma-devel` package, depending on your system's package manager. | ||||
| @@ -282,17 +284,17 @@ You can download it from your Linux distro's package manager or from here: [ROCm | ||||
|   ```bash | ||||
|   HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -p)" \ | ||||
|   HIP_DEVICE_LIB_PATH=<directory-you-just-found> \ | ||||
|       cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \ | ||||
|       cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx1030 -DCMAKE_BUILD_TYPE=Release \ | ||||
|       && cmake --build build -- -j 16 | ||||
|   ``` | ||||
|  | ||||
| - Using `CMake` for Windows (using x64 Native Tools Command Prompt for VS, and assuming a gfx1100-compatible AMD GPU): | ||||
|   ```bash | ||||
|   set PATH=%HIP_PATH%\bin;%PATH% | ||||
|   cmake -S . -B build -G Ninja -DAMDGPU_TARGETS=gfx1100 -DGGML_HIP=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release | ||||
|   cmake -S . -B build -G Ninja -DGPU_TARGETS=gfx1100 -DGGML_HIP=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release | ||||
|   cmake --build build | ||||
|   ``` | ||||
|   Make sure that `AMDGPU_TARGETS` is set to the GPU arch you want to compile for. The above example uses `gfx1100` that corresponds to Radeon RX 7900XTX/XT/GRE. You can find a list of targets [here](https://llvm.org/docs/AMDGPUUsage.html#processors) | ||||
|   If necessary, adapt `GPU_TARGETS` to the GPU arch you want to compile for. The above example uses `gfx1100` that corresponds to Radeon RX 7900XTX/XT/GRE. You can find a list of targets [here](https://llvm.org/docs/AMDGPUUsage.html#processors) | ||||
|   Find your gpu version string by matching the most significant version information from `rocminfo | grep gfx | head -1 | awk '{print $2}'` with the list of processors, e.g. `gfx1035` maps to `gfx1030`. | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -29,10 +29,11 @@ if (CXX_IS_HIPCC) | ||||
|     endif() | ||||
| else() | ||||
|     # Forward (AMD)GPU_TARGETS to CMAKE_HIP_ARCHITECTURES. | ||||
|     if(AMDGPU_TARGETS AND NOT GPU_TARGETS) | ||||
|         set(GPU_TARGETS ${AMDGPU_TARGETS}) | ||||
|     endif() | ||||
|     if(GPU_TARGETS AND NOT CMAKE_HIP_ARCHITECTURES) | ||||
|         set(CMAKE_HIP_ARCHITECTURES ${GPU_TARGETS}) | ||||
|     elseif(AMDGPU_TARGETS AND NOT CMAKE_HIP_ARCHITECTURES) | ||||
|         set(CMAKE_HIP_ARCHITECTURES ${AMDGPU_TARGETS}) | ||||
|     endif() | ||||
|     cmake_minimum_required(VERSION 3.21) | ||||
|     enable_language(HIP) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Johannes Gäßler
					Johannes Gäßler