Skip to content

ci: disable SYCL & HIP #2

ci: disable SYCL & HIP

ci: disable SYCL & HIP #2

Workflow file for this run

name: Build (Windows)
on:
push:
paths:
- 'CMakeLists.txt'
- 'source/*'
- 'cpu_source/*'
- 'rtc_source/*'
# - 'hip_source/*'
- 'sycl_source/*'
- '.github/workflows/windows.yml'
workflow_dispatch:
inputs:
tag:
description: 'which tag to upload to'
default: ''
jobs:
build-windows:
runs-on: windows-2022
defaults:
run:
shell: cmd
steps:
- name: Checkout repo
uses: actions/checkout@v6
with:
fetch-depth: 1
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
- name: Setup Ninja
run: pip install ninja
- name: Download VapourSynth headers
run: |
curl -s -o vs.zip -L https://github.com/vapoursynth/vapoursynth/archive/refs/tags/R57.zip
unzip -q vs.zip
mv vapoursynth-*/ vapoursynth/
- name: Cache CUDA
id: cache-cuda
uses: actions/cache@v4
with:
path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
key: ${{ runner.os }}-cuda-13.0.1
- name: Setup CUDA
if: steps.cache-cuda.outputs.cache-hit != 'true'
run: |
curl -s -o cuda_installer.exe -L https://developer.download.nvidia.com/compute/cuda/13.0.1/network_installers/cuda_13.0.1_windows_network.exe
cuda_installer.exe -s nvcc_13.0 cudart_13.0 nvrtc_dev_13.0 crt_13.0 nvptxcompiler_13.0 nvvm_13.0
- name: Configure (CUDA)
shell: bash
run: cmake -S . -B build -G Ninja -LA
-D CMAKE_BUILD_TYPE=Release
-D ENABLE_CUDA=ON
-D ENABLE_CPU=OFF
-D USE_NVRTC_STATIC=ON
-D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
-D CMAKE_CXX_FLAGS="/fp:fast /arch:AVX /EHsc"
-D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets"
-D CMAKE_CUDA_ARCHITECTURES="75;86-real;89-real;120-real"
-D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
env:
CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0
- name: Build (CUDA)
run: cmake --build build --verbose
- name: Install (CUDA)
run: cmake --install build --prefix install
- name: Configure, build, install (CPU)
shell: bash
run: for arch in haswell skylake icelake-client alderlake znver1 znver2 znver3 znver4 znver5; do
cmake -S . -B build_cpu -G Ninja -LA
-D CMAKE_BUILD_TYPE=Release
-D ENABLE_CUDA=OFF
-D ENABLE_CPU=ON
-D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
-D CMAKE_CXX_COMPILER="clang++.exe"
-D CMAKE_CXX_FLAGS="-mtune=${arch} -ffast-math"
-D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
&& cmake --build build_cpu --verbose
&& cmake --install build_cpu --prefix temp
&& mv temp/bin/bm3dcpu.dll install/bin/bm3dcpu-${arch}.dll -v;
done
# - name: Cache HIP
# id: cache-hip
# uses: actions/cache@v4
# with:
# path: C:\Program Files\AMD\ROCM
# key: ${{ runner.os }}-rocm-6.4.2
# - name: Setup HIP
# if: steps.cache-hip.outputs.cache-hit != 'true'
# shell: pwsh
# run: |
# curl -s -o hip_installer.exe -L https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-25.Q3-WinSvr2022-For-HIP.exe
# Start-Process hip_installer.exe -ArgumentList '-install' -NoNewWindow -Wait
# - name: Configure (HIP)
# shell: bash
# run: cmake -S . -B build_hip -G Ninja -LA
# -D CMAKE_BUILD_TYPE=Release
# -D ENABLE_CUDA=OFF
# -D ENABLE_CPU=OFF
# -D ENABLE_HIP=ON
# -D VAPOURSYNTH_INCLUDE_DIRECTORY="$(pwd)\vapoursynth\include"
# -D CMAKE_CXX_COMPILER="C:/Program Files/AMD/ROCm/6.4/bin/clang++.exe"
# -D CMAKE_CXX_FLAGS="-ffast-math -munsafe-fp-atomics -Rpass-analysis=kernel-resource-usage"
# -D HIP_DIR="C:/Program Files/AMD/ROCm/6.4/lib/cmake/hip"
# -D HIP_PLATFORM=amd
# -D GPU_TARGETS="gfx1030;gfx1031;gfx1032;gfx1100;gfx1101;gfx1102;gfx1151;gfx1200;gfx1201"
# -D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
# - name: Build (HIP)
# run: cmake --build build_hip --verbose
# - name: Install (HIP)
# run: cmake --install build_hip --prefix install
# - name: Cache SYCL
# if: false
# id: cache-sycl
# uses: actions/cache@v4
# with:
# path: C:\Program Files (x86)\Intel\oneAPI
# key: ${{ runner.os }}-dpcpp-2024.0
# - name: Setup SYCL
# if: false && steps.cache-sycl.outputs.cache-hit != 'true'
# run: |
# curl -J -o dpcpp_installer.exe https://registrationcenter-download.intel.com/akdlm/IRC_NAS/94e15cb5-4bcc-4fdd-91cf-0f819a54e42e/w_dpcpp-cpp-compiler_p_2024.0.2.28_offline.exe
# dpcpp_installer -s -a -s --eula accept
# - name: Setup ocloc (Gen12+)
# if: false
# shell: pwsh
# run: |
# $env:PATH = "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\lib\ocloc;$env:PATH"
# "PATH=$env:PATH" | Out-File -Append -FilePath $env:GITHUB_ENV
# - name: Configure (SYCL, Gen12+)
# if: false
# run: |
# ocloc compile --help
# call "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\env\vars.bat"
# cmake -S . -B build_sycl_gen12+ -G Ninja -LA ^
# -D CMAKE_BUILD_TYPE=Release ^
# -D ENABLE_CUDA=OFF ^
# -D ENABLE_CPU=OFF ^
# -D ENABLE_HIP=OFF ^
# -D ENABLE_SYCL=ON ^
# -D VAPOURSYNTH_INCLUDE_DIRECTORY="%cd%\vapoursynth\include" ^
# -D CMAKE_CXX_COMPILER=icx ^
# -D CMAKE_CXX_FLAGS="-ffast-math -mavx" ^
# -D CMAKE_SHARED_LINKER_FLAGS="-fsycl -fsycl-targets=spir64_gen -Xsycl-target-backend=spir64_gen \"-device gen12lp,xe-hpg\""
# - name: Build (SYCL, Gen12+)
# if: false
# run: |
# call "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\env\vars.bat"
# cmake --build build_sycl_gen12+ --verbose
# - name: Install (SYCL, Gen12+)
# if: false
# run: echo f | xcopy build_sycl_gen12+\sycl_source\bm3dsycl.dll install\bin\bm3dsycl_gen12+.dll /f
- name: Prepare for upload
run: |
mkdir artifact
copy install\bin\*.dll artifact
- name: Upload
uses: actions/upload-artifact@v5
with:
name: VapourSynth-BM3DCUDA-Windows
path: artifact
- name: Compress artifact for release
if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
run: |
cd artifact
mkdir VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}
xcopy bm3dcuda.dll VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }} /f
7z a -t7z -mx=9 ../VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}
mkdir VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}
xcopy bm3dcuda_rtc.dll VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }} /f
7z a -t7z -mx=9 ../VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}
mkdir VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}
xcopy bm3dcpu-*.dll VapourSynth-BM3DCPU-${{ github.event.inputs.tag }} /f
7z a -t7z -mx=9 ../VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}
:: mkdir VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}
:: xcopy bm3dhip.dll VapourSynth-BM3DHIP-${{ github.event.inputs.tag }} /f
:: 7z a -t7z -mx=9 ../VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}
:: mkdir VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}
:: xcopy bm3dsycl_*.dll VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }} /f
:: 7z a -t7z -mx=9 ../VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}.7z VapourSynth-BM3DSYCL-${{ github.event.inputs.tag }}
:: mkdir SYCL-Runtime-${{ github.event.inputs.tag }}
:: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\sycl6.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f
:: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\bin\pi_*.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f /i
:: echo f | xcopy "C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler\libmmd.dll" SYCL-Runtime-${{ github.event.inputs.tag }} /f
:: 7z a -t7z -mx=9 ../SYCL-Runtime-${{ github.event.inputs.tag }}.7z SYCL-Runtime-${{ github.event.inputs.tag }}
- name: Release
uses: softprops/action-gh-release@v2
if: github.event_name == 'workflow_dispatch' && github.event.inputs.tag != ''
with:
tag_name: ${{ github.event.inputs.tag }}
files: |
VapourSynth-BM3DCUDA-${{ github.event.inputs.tag }}.7z
VapourSynth-BM3DCUDA_RTC-${{ github.event.inputs.tag }}.7z
VapourSynth-BM3DCPU-${{ github.event.inputs.tag }}.7z
fail_on_unmatched_files: true
generate_release_notes: false
prerelease: true
# VapourSynth-BM3DHIP-${{ github.event.inputs.tag }}.7z