test automatic vk shader rebuilding

This commit is contained in:
Concedo 2025-03-13 19:34:15 +08:00
parent e75539e8cb
commit 2c9ade61fe
9 changed files with 34 additions and 4 deletions

View file

@ -4,6 +4,7 @@ on: workflow_dispatch
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
KCPP_CUDA: 12.1.0
REBUILD_VK_SHADERS: 1
jobs:
linux:

View file

@ -4,6 +4,7 @@ on: workflow_dispatch
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
NOAVX2: 1
REBUILD_VK_SHADERS: 1
jobs:
linux:

View file

@ -42,10 +42,16 @@ jobs:
wmic cpu get name
wmic os get TotalVisibleMemorySize, FreePhysicalMemory
- name: Rebuild Vulkan Shaders
id: make_vk_shaders
run: |
make vulkan_shaders_gen -j ${env:NUMBER_OF_PROCESSORS}
- name: Build Non-CUDA
id: make_build
run: |
make LLAMA_CLBLAST=1 LLAMA_VULKAN=1 LLAMA_PORTABLE=1 -j ${env:NUMBER_OF_PROCESSORS}
echo "Vulkan Shaders Rebuilt"
- uses: Jimver/cuda-toolkit@v0.2.15
id: cuda-toolkit

View file

@ -42,6 +42,12 @@ jobs:
wmic cpu get name
wmic os get TotalVisibleMemorySize, FreePhysicalMemory
- name: Rebuild Vulkan Shaders
id: make_vk_shaders
run: |
make vulkan_shaders_gen -j ${env:NUMBER_OF_PROCESSORS}
echo "Vulkan Shaders Rebuilt"
- name: Build Non-CUDA
id: make_build
run: |

View file

@ -42,6 +42,12 @@ jobs:
wmic cpu get name
wmic os get TotalVisibleMemorySize, FreePhysicalMemory
- name: Rebuild Vulkan Shaders
id: make_vk_shaders
run: |
make vulkan_shaders_gen -j ${env:NUMBER_OF_PROCESSORS}
echo "Vulkan Shaders Rebuilt"
- name: Build Non-CUDA
id: make_build
run: |

View file

@ -645,8 +645,15 @@ gemma3-cli: examples/llava/gemma3-cli.cpp common/arg.cpp build-info.h ggml.o ggm
vulkan-shaders-gen: ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp
@echo 'This command can be MANUALLY run to regenerate vulkan shaders. Normally concedo will do it, so you do not have to.'
$(CXX) $(CXXFLAGS) $(filter-out %.h,$^) -o $@ $(LDFLAGS)
@echo 'Now rebuilding vulkan shaders...'
ifeq ($(OS),Windows_NT)
@echo 'Now rebuilding vulkan shaders for Windows...'
$(shell) vulkan-shaders-gen --glslc glslc --input-dir ggml/src/ggml-vulkan/vulkan-shaders --target-hpp ggml/src/ggml-vulkan-shaders.hpp --target-cpp ggml/src/ggml-vulkan-shaders.cpp
else
@echo 'Now rebuilding vulkan shaders for Linux...'
${shell} chmod +x vulkan-shaders-gen
${shell} chmod +x glslc-linux
$(shell) ./vulkan-shaders-gen --glslc ./glslc-linux --input-dir ggml/src/ggml-vulkan/vulkan-shaders --target-hpp ggml/src/ggml-vulkan-shaders.hpp --target-cpp ggml/src/ggml-vulkan-shaders.cpp
endif
#generated libraries
koboldcpp_default: ggml.o ggml-cpu.o ggml_v3.o ggml_v2.o ggml_v1.o expose.o gpttype_adapter.o sdcpp_default.o whispercpp_default.o tts_default.o llavaclip_default.o llava.o ggml-backend_default.o ggml-backend-reg_default.o $(OBJS_FULL) $(OBJS)

View file

@ -580,9 +580,6 @@ void write_output_files() {
}
fprintf(src, "\n};\n\n");
if (!no_clean) {
std::remove(path.c_str());
}
}
fclose(hdr);

BIN
glslc-linux Normal file

Binary file not shown.

View file

@ -25,6 +25,12 @@ if [ -n "$NOAVX2" ]; then
LLAMA_NOAVX2_FLAG="LLAMA_NOAVX2=1"
fi
if [ -n "$REBUILD_VK_SHADERS" ]; then
echo "Rebuilding Vulkan Shaders..."
bin/micromamba run -r conda -p conda/envs/linux make vulkan-shaders-gen -j$(nproc) LLAMA_ADD_CONDA_PATHS=1
echo "Vulkan Shaders Rebuilt."
fi
bin/micromamba run -r conda -p conda/envs/linux make -j$(nproc) LLAMA_VULKAN=1 LLAMA_CLBLAST=1 LLAMA_CUBLAS=1 LLAMA_PORTABLE=1 LLAMA_ADD_CONDA_PATHS=1 $LLAMA_NOAVX2_FLAG
if [ $? -ne 0 ]; then
echo "Error: make failed."