Skip to content

[Intel] Add a means to check which intel gpu generation for vulkan and directX#1291

Merged
farzonl merged 6 commits into
llvm:mainfrom
farzonl:intel_gpu_generation_check
Jun 6, 2026
Merged

[Intel] Add a means to check which intel gpu generation for vulkan and directX#1291
farzonl merged 6 commits into
llvm:mainfrom
farzonl:intel_gpu_generation_check

Conversation

@farzonl

@farzonl farzonl commented Jun 5, 2026

Copy link
Copy Markdown
Member

This change fixes #709

@farzonl farzonl force-pushed the intel_gpu_generation_check branch 3 times, most recently from a76e60a to f302140 Compare June 5, 2026 03:06
Comment thread lib/API/Util.cpp
case 0x7D00: // Meteor Lake (14th Gen Core Ultra)
case 0x5600: // Arc Alchemist (Discrete Xe-HPG)
case 0x4F00: // DG1 (Discrete Xe-LP)
case 0x0B00: // Ponte Vecchio (Xe-HPC / Data Center Max)

@farzonl farzonl Jun 5, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what the family prefix is for Battlemage, so this is unlikely to work on CI. will need help figuring this out.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess based on these docs BattleImage would be E2

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
case 0x0B00: // Ponte Vecchio (Xe-HPC / Data Center Max)
case 0x0B00: // Ponte Vecchio (Xe-HPC / Data Center Max)
case 0xE200: // Battlemage Discrete
case 0x6400: // Lunar Lake Integrated

@farzonl farzonl force-pushed the intel_gpu_generation_check branch from f302140 to cd0826f Compare June 5, 2026 14:29
Comment thread test/lit.cfg.py Outdated
Comment on lines +116 to +119
if device["GPUGeneration"] == "Intel Gen11-14/Xe":
config.available_features.add("Intel-Modern-GPU")
if device["GPUGeneration"] == "Intel Gen7-10":
config.available_features.add("Intel-Legacy-GPU")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like these names might bite us at some point in the future. Should we bikeshed them a little?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure bikeshed away. I just want a tag to xfail on.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@V-FEXrt suggested backwards looking ranges, so Intel-Gen-10 instead of Intel-Legacy-GPU and Intel-Gen-X or Intel-Gen-Current for the "modern" one. This also allows, for example, Intel-Gen-6 if we needed older GPUS (we won't...) and makes it fairly obvious how to update this if another generation pops up.

@bogner bogner left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I'll let you use your discretion on the naming, and obviously we should wait for the intel bots to clear.

@farzonl farzonl force-pushed the intel_gpu_generation_check branch 3 times, most recently from 5842b29 to 881f4ab Compare June 6, 2026 05:39
@farzonl farzonl force-pushed the intel_gpu_generation_check branch from 93c0d46 to 39751b9 Compare June 6, 2026 13:29
@farzonl

farzonl commented Jun 6, 2026

Copy link
Copy Markdown
Member Author

hlsl-clang-vk failure is not related this looks like a spirv validator issue on res-of-matrix-in-struct.test.

# .---command stderr------------
# | error: line 72: In Logical addressing, variables can only allocate a storage buffer pointer if the VariablePointersStorageBuffer capability is declared
# |   %a1 = OpVariable %_ptr_Function_struct_A Function %35
# | 
# | clang-dxc: error: spirv-val command failed with exit code 1 (use -v to see invocation)
# `-----------------------------
# error: command failed with exit status: 1

@farzonl

farzonl commented Jun 6, 2026

Copy link
Copy Markdown
Member Author

Looks like we need to file 3 new test failures against DXC. The transpose one we likely have a bug for already.

Exec-Tests-Windows (windows-intel, check-hlsl-vk)

Failed Tests (4):
  OffloadTest-vk :: Feature/CBuffer/Matrix/LayoutKeyword/transpose.test
  OffloadTest-vk :: Feature/PushConstant/types_16bit.test
  OffloadTest-vk :: Feature/Textures/Texture2D.SRVToUAV.array.test.yaml
  OffloadTest-vk :: Feature/Textures/Texture2D.SRVToUAV.test.yaml

transpose.test

Test failed: OutRM2x3
# | Comparison Rule: BufferExact
# | Expected:
# | ---
# | Name:            ExpectedOutRM2x3
# | Format:          Float32
# | Data:            [ 1, 4, 2, 5, 3, 6 ]
# | OutputProps:
# |   Height:          0
# |   Width:           0
# |   Depth:           0
# | ...
# | Got:
# | ---
# | Name:            OutRM2x3
# | Format:          Float32
# | Data:            [ 0, 0, 0, 0, 0, 0 ]

types_16bit.test Looks like results are off by 8.

# CHECK: 65000
# |          ^
# | <stdin>:27:18: note: scanning from here
# |  Data: [ 1.5, -5, 64992 ]

Texture2D.SRVToUAV.array.test.yaml

Name:            ExpectedOut
# | Format:          Float32
# | Channels:        4
# | ArraySize:       2
# | Data:
# |   - [ 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1 ]
# |   - [ 0, 0, 2, 2, 0, 2, 0, 2, 2, 0, 0, 2, 0, 2, 2, 2 ]
# | OutputProps:
# |   Height:          2
# |   Width:           2
# |   Depth:           1
# | ...
# | Got:
# | ---
# | Name:            Out
# | Format:          Float32
# | Channels:        4
# | ArraySize:       2
# | Data:
# |   - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
# |   - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]

Texture2D.SRVToUAV.test.yaml

Name:            ExpectedOut
# | Format:          Float32
# | Channels:        4
# | Data:            [ 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1 ]
# | OutputProps:
# |   Height:          2
# |   Width:           2
# |   Depth:           1
# | ...
# | Got:
# | ---
# | Name:            Out
# | Format:          Float32
# | Channels:        4
# | Data:            [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
# | OutputProps:
# |   Height:          2
# |   Width:           2
# |   Depth:           1

@farzonl

farzonl commented Jun 6, 2026

Copy link
Copy Markdown
Member Author

Looks like we need to file a bug for all of WaveOps against Xe intel gpus.

Exec-Tests-Windows (windows-intel, check-hlsl-clang-d3d12)

Failed Tests (20):
  OffloadTest-clang-d3d12 :: WaveOps/ComponentAccumulationDataRace.test
  OffloadTest-clang-d3d12 :: WaveOps/ComponentDataRace.test
  OffloadTest-clang-d3d12 :: WaveOps/GroupSharedMatrixEltComponentDataRace.test
  OffloadTest-clang-d3d12 :: WaveOps/GroupSharedMatrixRowComponentDataRace.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.fp16.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.fp32.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.fp64.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.int16.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.int32.test
  OffloadTest-clang-d3d12 :: WaveOps/WaveActiveSum.int64.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixProduct.32.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixProduct.fp16.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixProduct.fp64.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixProduct.int16.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixProduct.int64.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixSum.32.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixSum.fp16.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixSum.fp64.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixSum.int16.test
  OffloadTest-clang-d3d12 :: WaveOps/WavePrefixSum.int64.test

#1293

@farzonl farzonl merged commit bc20b5c into llvm:main Jun 6, 2026
50 of 51 checks passed
@farzonl farzonl deleted the intel_gpu_generation_check branch June 6, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Intel] Add a means via lit and api-query to enable tests for newer generations of Intel gpus.

2 participants