Skip to content

vulkan: Introduce driver version check for Windows Intel GPU to mitigate crashing#25192

Open
rillomas wants to merge 7 commits into
ggml-org:masterfrom
rillomas:remove-intel-crash-guard
Open

vulkan: Introduce driver version check for Windows Intel GPU to mitigate crashing#25192
rillomas wants to merge 7 commits into
ggml-org:masterfrom
rillomas:remove-intel-crash-guard

Conversation

@rillomas

@rillomas rillomas commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Overview

I replaced the crash guard for Intel Windows driver (introduced at #23964 and #23687) to a version checker so we can guarantee fwht usage on drivers equal to or newer than 32.0.101.8860 on Xe2/3 systems. This is to avoid crashing on the user side who may keep using old drivers.

I checked test-backed-ops -o MUL_MAT_HADAMARD not crashing on following systems using df5b988:

Processor / GPU Driver Version Architecture
UX7-368H 32.0.101.8860 Xe3
UX7-368H Mesa 26.1.4 Xe3
U7-268V 32.0.101.8860 Xe2
U7-268V 32.0.101.8826 Xe2
U7-268V Mesa 25.2.8 Xe2
i7-1270P 32.0.101.7085 Xe
Arc Pro B70 32.0.101.8804 Xe2
Arc B570 Mesa 26.1.4 Xe2
Arc A770 32.0.101.8860 Xe
Arc A770 Mesa 26.1.4 Xe

Additional information

Seeing solid improvements (max 5.4x) with test-backend-ops perf -o MUL_MAT_HADAMARD on PantherLake UX7-368H.

Before

λ build_vk\bin\Release\test-backend-ops.exe perf -o MUL_MAT_HADAMARD
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = Intel(R) Arc(TM) B390 GPU (Intel Corporation) | uma: 1 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: KHR_coopmat
Testing 2 devices

Backend 1/2: Vulkan0
  Device description: Intel(R) Arc(TM) B390 GPU
  Device memory: 37099 MB (36330 MB free)

mul_mat_vec_f32_f32_f32
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=128,n=1,k=128,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                  131040 runs -     7.77 us/run -  32.77 kFLOP/run -   4.22 GFLOPS
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=64,n=1,k=64,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):            294840 runs -     3.44 us/run -   8.19 kFLOP/run -   2.38 GFLOPS
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=256,n=1,k=256,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                  294840 runs -     3.40 us/run - 131.07 kFLOP/run -  38.60 GFLOPS
matmul_f32_f32_aligned_s
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=128,n=32,k=128,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                  90090 runs -    11.61 us/run -   1.05 MFLOP/run -  90.34 GFLOPS
  Backend Vulkan0: OK
Backend 2/2: CPU
  Skipping CPU backend
2/2 backends passed
OK

After

λ build_vk\bin\Release\test-backend-ops.exe perf -o MUL_MAT_HADAMARD
ggml_vulkan: Found 1 Vulkan devices:
ggml_vulkan: 0 = Intel(R) Arc(TM) B390 GPU (Intel Corporation) | uma: 1 | fp16: 1 | bf16: 0 | warp size: 32 | shared memory: 49152 | int dot: 1 | matrix cores: KHR_coopmat
Testing 2 devices

Backend 1/2: Vulkan0
  Device description: Intel(R) Arc(TM) B390 GPU
  Device memory: 37099 MB (36330 MB free)

fwht_f32
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=128,n=1,k=128,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                  204750 runs -     4.93 us/run -  32.77 kFLOP/run -   6.65 GFLOPS
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=64,n=1,k=64,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):            565110 runs -     1.79 us/run -   8.19 kFLOP/run -   4.58 GFLOPS
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=256,n=1,k=256,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                  417690 runs -     2.39 us/run - 131.07 kFLOP/run -  54.74 GFLOPS
  MUL_MAT_HADAMARD(type_a=f32,type_b=f32,m=128,n=32,k=128,bs=[1,1],nr=[1,1],per=[0,1,2,3],k_v=0,o=1):                 475020 runs -     2.12 us/run -   1.05 MFLOP/run - 494.90 GFLOPS
  Backend Vulkan0: OK
Backend 2/2: CPU
  Skipping CPU backend
2/2 backends passed
OK

Requirements

  • I have read and agree with the contributing guidelines
  • AI usage disclosure: Yes, used copilot for most of the coding

Crash fixed from driver 32.0.101.8860
@rillomas rillomas changed the title vulkan: Removed crash guard for Intel GPU vulkan: Remove crash guard for Intel GPU Jul 1, 2026
@github-actions github-actions Bot added Vulkan Issues specific to the Vulkan backend ggml changes relating to the ggml tensor library for machine learning labels Jul 1, 2026
@rillomas rillomas changed the title vulkan: Remove crash guard for Intel GPU vulkan: Introduce driver version check for Windows Intel GPU to mitigate crashing Jul 15, 2026
@rillomas rillomas marked this pull request as ready for review July 15, 2026 07:38
@rillomas rillomas requested a review from a team as a code owner July 15, 2026 07:38
@rillomas

Copy link
Copy Markdown
Contributor Author

Hi @jeffbolznv @0cc4m can you two review this PR?

Comment thread ggml/src/ggml-vulkan/ggml-vulkan.cpp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ggml changes relating to the ggml tensor library for machine learning Vulkan Issues specific to the Vulkan backend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants