8383
8484 env :
8585 # Make sure this is in sync with build-cache.yml
86- HIPSDK_INSTALLER_VERSION : " 26.Q1 "
86+ ROCM_VERSION : " 7.14.0 "
8787
8888 strategy :
8989 matrix :
@@ -97,66 +97,81 @@ jobs:
9797 id : checkout
9898 uses : actions/checkout@v6
9999
100- - name : Grab rocWMMA package
101- id : grab_rocwmma
102- run : |
103- curl -o rocwmma.deb "https://repo.radeon.com/rocm/apt/7.2.1/pool/main/r/rocwmma-dev/rocwmma-dev_2.2.0.70201-81~24.04_amd64.deb"
104- 7z x rocwmma.deb
105- 7z x data.tar
106-
107- - name : Use ROCm Installation Cache
108- uses : actions/cache@v5
109- id : cache-rocm
110- with :
111- path : C:\Program Files\AMD\ROCm
112- key : cache-gha-rocm-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ runner.os }}
100+ # - name: Cache ROCm Installation
101+ # uses: actions/cache@v5
102+ # id: cache-rocm
103+ # with:
104+ # path: C:\TheRock\build
105+ # key: rocm-wheels-${{ env.ROCM_VERSION }}-multi-arch-${{ runner.os }}
113106
114107 - name : Setup ROCm
115- if : steps.cache-rocm.outputs.cache-hit != 'true'
108+ # if: steps.cache-rocm.outputs.cache-hit != 'true'
116109 uses : ./.github/actions/windows-setup-rocm
117110 with :
118- version : ${{ env.HIPSDK_INSTALLER_VERSION }}
111+ version : ${{ env.ROCM_VERSION }}
112+
113+ - name : Setup ROCm Environment
114+ run : |
115+ $ErrorActionPreference = "Stop"
116+
117+ # Activate venv from cache or fresh install
118+ & C:\TheRock\build\.venv\Scripts\Activate.ps1
119+
120+ # Expand the devel tree (idempotent; no-op if already done during install)
121+ rocm-sdk init
122+ if ($LASTEXITCODE -ne 0) { throw "rocm-sdk init failed with exit code $LASTEXITCODE" }
123+
124+ # Get ROCm installation paths using the rocm-sdk CLI tool
125+ $rocmPath = (rocm-sdk path --root)
126+ if (-not $rocmPath) { throw "rocm-sdk path --root returned empty - devel package may not be installed" }
127+ $rocmPath = $rocmPath.Trim()
128+ $cmakePath = (rocm-sdk path --cmake).Trim()
129+ $binPath = (rocm-sdk path --bin).Trim()
130+ write-host "ROCm root: $rocmPath"
131+
132+ echo "HIP_PATH=$rocmPath" >> $env:GITHUB_ENV
133+ echo "CMAKE_PREFIX_PATH=$cmakePath" >> $env:GITHUB_ENV
134+ echo "HIP_DEVICE_LIB_PATH=$rocmPath\lib\llvm\amdgcn\bitcode" >> $env:GITHUB_ENV
135+ echo "HIP_PLATFORM=amd" >> $env:GITHUB_ENV
136+ echo "LLVM_PATH=$rocmPath\lib\llvm" >> $env:GITHUB_ENV
137+ echo "$binPath" >> $env:GITHUB_PATH
138+
139+ # Keep venv in PATH for subsequent steps
140+ echo "C:\TheRock\build\.venv\Scripts" >> $env:GITHUB_PATH
119141
120142 - name : Verify ROCm
121143 id : verify
122144 run : |
123- # Find and test ROCm installation
124- $clangPath = Get-ChildItem 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | Select-Object -First 1
125- if (-not $clangPath) {
126- Write-Error "ROCm installation not found"
127- exit 1
128- }
129- & $clangPath.FullName --version
145+ # Test the ROCm clang shipped in the installed wheel
146+ & "${env:HIP_PATH}\lib\llvm\bin\clang.exe" --version
130147
131148 - name : ccache
132149 uses : ggml-org/ccache-action@v1.2.21
133150 with :
134151 # TODO: this build does not match the build in release.yml, so we use a different cache key
135152 # ideally, the builds should match, similar to the CUDA build above so that we would be able
136153 # to populate the ccache for the release with manual runs of this workflow
137- # key: release-windows-2022-x64-hip-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ matrix.name }}
138- key : cuda-windows-2022-x64-hip-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ matrix.name }}
154+ # key: release-windows-2022-x64-hip-${{ env.ROCM_VERSION }}-${{ matrix.name }}
155+ key : cuda-windows-2022-x64-hip-${{ env.ROCM_VERSION }}-${{ matrix.name }}
139156
140157 - name : Build
141158 id : cmake_build
142159 run : |
143- $env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path)
144- $env:CMAKE_PREFIX_PATH="${env:HIP_PATH}"
145160 cmake -G "Unix Makefiles" -B build -S . `
146- -DCMAKE_C_COMPILER="${env:HIP_PATH}\bin\clang.exe" `
147- -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" `
148- -DCMAKE_CXX_FLAGS="-I$($PWD.Path.Replace('\', '/'))/opt/rocm-7.2.1/include/" `
161+ -DCMAKE_PREFIX_PATH="${env:HIP_PATH}" `
162+ -DCMAKE_C_COMPILER="${env:HIP_PATH}\lib\llvm\bin\clang.exe" `
163+ -DCMAKE_CXX_COMPILER="${env:HIP_PATH}\lib\llvm\bin\clang++.exe" `
164+ -DCMAKE_HIP_COMPILER="${env:HIP_PATH}\lib\llvm\bin\clang.exe" `
149165 -DCMAKE_BUILD_TYPE=Release `
150166 -DLLAMA_BUILD_BORINGSSL=ON `
151- -DROCM_DIR ="${env:HIP_PATH}" `
167+ -DHIP_PATH ="${env:HIP_PATH}" `
152168 -DGGML_HIP=ON `
153- -DGGML_HIP_ROCWMMA_FATTN=ON `
154- -DGPU_TARGETS="gfx1100" `
169+ -DGPU_TARGETS="gfx1100" `
155170 -DGGML_RPC=ON
156171 cmake --build build -j ${env:NUMBER_OF_PROCESSORS}
157172
158173 - name : ccache-clear
159174 uses : ./.github/actions/ccache-clear
160175 with :
161- # key: release-windows-2022-x64-hip-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ matrix.name }}
162- key : cuda-windows-2022-x64-hip-${{ env.HIPSDK_INSTALLER_VERSION }}-${{ matrix.name }}
176+ # key: release-windows-2022-x64-hip-${{ env.ROCM_VERSION }}-${{ matrix.name }}
177+ key : cuda-windows-2022-x64-hip-${{ env.ROCM_VERSION }}-${{ matrix.name }}
0 commit comments