Skip to content

Update ggml_extend.hpp #12

Update ggml_extend.hpp

Update ggml_extend.hpp #12

name: CI
on:
workflow_dispatch: # allows manual triggering
inputs:
create_release:
description: "Create new release"
required: true
type: boolean
push:
branches:
- master
- dev-f16-3
- ci
paths:
[
".github/workflows/**",
"**/CMakeLists.txt",
"**/Makefile",
"**/*.h",
"**/*.hpp",
"**/*.c",
"**/*.cpp",
"**/*.cu",
]
pull_request:
types: [opened, synchronize, reopened]
paths:
[
"**/CMakeLists.txt",
"**/Makefile",
"**/*.h",
"**/*.hpp",
"**/*.c",
"**/*.cpp",
"**/*.cu",
]
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
windows-latest-cmake:
runs-on: windows-latest
strategy:
matrix:
include:
- build: "rocm6.1"
defines: '-G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DSD_HIPBLAS=ON -DCMAKE_BUILD_TYPE=Release -DAMDGPU_TARGETS="gfx1030" -DSD_BUILD_SHARED_LIBS=ON'
steps:
- name: Clone
id: checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install AMD HIP SDK 6.1
run: |
C:\msys64\usr\bin\wget.exe https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-WinSvr2022-For-HIP.exe -O "amdgpu-install.exe"
.\amdgpu-install.exe -Install -View:1
Start-Sleep -Seconds 60
$setupId = (Get-Process ATISetup).id
Wait-Process -Id $setupId
$Env:ROCm_PATH = "C:\Program Files\AMD\ROCm\6.1"
- name: Install Ninja
id: install-ninja
uses: urkle/action-get-ninja@v1
with:
version: 1.11.1
- name: Test if clang and clang++ is available
run: |
$Env:ROCm_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:HIP_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:PATH = "C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH"
echo "ROCM_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "HIP_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "PATH=C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH" >> $GITHUB_ENV
clang --version
clang++ --version
- name: List paths
if: runner.os == 'Windows'
shell: powershell
run: |
$Env:ROCm_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:HIP_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:PATH = "C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH"
echo "ROCM_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "HIP_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "PATH=C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH" >> $GITHUB_ENV
ls $env:ROCM_PATH
ls $env:ROCM_PATH\bin
- name: Build
id: cmake_build
run: |
mkdir build
cd build
$Env:ROCm_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:HIP_PATH = "C:\Program Files\AMD\ROCm\6.1"
$Env:PATH = "C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH"
echo "ROCM_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "HIP_PATH=C:\Program Files\AMD\ROCm\6.1" >> $GITHUB_ENV
echo "PATH=C:\Program Files\AMD\ROCm\6.1\bin;$Env:PATH" >> $GITHUB_ENV
cmake .. ${{ matrix.defines }}
cmake --build . --config Release
- name: Get commit hash
id: commit
uses: pr-mpt/actions-commit-hash@v2
- name: Pack artifacts
id: pack_artifacts
run: |
$filePath = ".\build\bin\Release\*"
if (Test-Path $filePath) {
echo "Exists at path $filePath"
Copy-Item ggml/LICENSE .\build\bin\Release\ggml.txt
Copy-Item LICENSE .\build\bin\Release\stable-diffusion.cpp.txt
Copy-Item ROCm/generateSD-ROCm6.bat .\build\bin\Release\generateSD-ROCm6.bat
Copy-Item ROCm/generateSDXL-ROCm6.bat .\build\bin\Release\generateSDXL-ROCm6.bat
Copy-Item ROCm/generateSDXL-HIP_VISIBLE_DEVICES0-ROCm6.bat .\build\bin\Release\generateSDXL-HIP_VISIBLE_DEVICES0-ROCm6.bat
Copy-Item ROCm/generateSDXL-HIP_VISIBLE_DEVICES1-ROCm6.bat .\build\bin\Release\generateSDXL-HIP_VISIBLE_DEVICES1-ROCm6.bat
Copy-Item ROCm/generateFLUX-ROCm6.bat .\build\bin\Release\generateFLUX-ROCm6.bat
Copy-Item ROCm/conveert2gguf-ROCm6.bat .\build\bin\Release\conveert2gguf-ROCm6.bat
Copy-Item ROCm/startSDcppGUIwrapperSAMPLE-ROCm6.bat .\build\bin\Release\startSDcppGUIwrapperSAMPLE-ROCm6.bat
} elseif (Test-Path ".\build\bin\stable-diffusion.dll") {
$filePath = ".\build\bin\*"
echo "Exists at path $filePath"
Copy-Item ggml/LICENSE .\build\bin\ggml.txt
Copy-Item LICENSE .\build\bin\stable-diffusion.cpp.txt
Copy-Item ROCm/generateSD-ROCm6.bat .\build\bin\generateSD-ROCm6.bat
Copy-Item ROCm/generateSDXL-ROCm6.bat .\build\bin\generateSDXL-ROCm6.bat
Copy-Item ROCm/generateSDXL-HIP_VISIBLE_DEVICES0-ROCm6.bat .\build\bin\generateSDXL-HIP_VISIBLE_DEVICES0-ROCm6.bat
Copy-Item ROCm/generateSDXL-HIP_VISIBLE_DEVICES1-ROCm6.bat .\build\bin\generateSDXL-HIP_VISIBLE_DEVICES1-ROCm6.bat
Copy-Item ROCm/generateFLUX-ROCm6.bat .\build\bin\generateFLUX-ROCm6.bat
Copy-Item ROCm/conveert2gguf-ROCm6.bat .\build\bin\conveert2gguf-ROCm6.bat
Copy-Item ROCm/startSDcppGUIwrapperSAMPLE-ROCm6.bat .\build\bin\startSDcppGUIwrapperSAMPLE-ROCm6.bat
} else {
ls .\build\bin
throw "Can't find stable-diffusion.dll"
}
7z a sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip $filePath
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip
path: |
sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip
release:
if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
runs-on: windows-latest
needs:
- windows-latest-cmake
steps:
- name: Download artifacts
id: download-artifact
uses: actions/download-artifact@v4
with:
path: ./artifact
pattern: sd-*
merge-multiple: true
- name: Get commit hash
id: commit
uses: pr-mpt/actions-commit-hash@v2
- name: Create release
id: create_release
uses: anzz1/action-create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-ROCm6
- name: Upload release
id: upload_release
uses: actions/github-script@v3
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const path = require('path');
const fs = require('fs');
const release_id = '${{ steps.create_release.outputs.id }}';
for (let file of await fs.readdirSync('./artifact')) {
if (path.extname(file) === '.zip') {
console.log('uploadReleaseAsset', file);
await github.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: release_id,
name: file,
data: await fs.readFileSync(`./artifact/${file}`)
});
}
}