Repository navigation
GPU: give Metal a column in the tuning parameter table - #15886
Merged
Merged
Conversation
Collaborator
davidrohr
previously approved these changes
Oct 14, 2026
davidrohr
left a comment
Collaborator
There was a problem hiding this comment.
fine with me.
Somehow I thought I already approved the "refuse deterministic mode on metal", but perhaps I forgot to press submit, no idea...
Obviously we'll need to change FindO2GPU.cmake in aldist first again.
Member
Author
|
i think i made some mistake with the update and introduced extra quotes. i will clean that up before merging. |
Without one, GPUDefParametersDefaultsDevice.h falls through to '#error GPU TYPE NOT SET' for GPUCA_GPUTYPE_METAL, which the .metal source defines, so nothing under Definitions/ could be compiled for the backend at all. The values are copied from OPENCL, the other portable backend with no vendor-specific tuning, so Metal starts at WARP_SIZE 32 and THREAD_COUNT_DEFAULT 256. Real numbers want measuring on a device once the kernels run. The column is appended last, as the earlier ones were; the order is cosmetic, since the generator keys off the architecture name. detect_gpu_arch reports METAL alongside the others so the generator emits the block. Every existing architecture comes out byte-identical; the generated device header gains only the Metal block and the architecture comment.
Member
Author
|
Nevermind. It was simply the GUI on the phone which was showing as changed things which were not. Now the commit has also been updated with the version bump. Since we agreed this is fine, I am merging it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Without one, GPUDefParametersDefaultsDevice.h falls through to
'#error GPU TYPE NOT SET' for GPUCA_GPUTYPE_METAL, which the .metal source
defines, so nothing under Definitions/ could be compiled for the backend at all.
The values are copied from OPENCL, the other portable backend with no
vendor-specific tuning, so Metal starts at WARP_SIZE 32 and
THREAD_COUNT_DEFAULT 256. Real numbers want measuring on a device once the
kernels run. The column is appended last, as the earlier ones were; the order
is cosmetic, since the generator keys off the architecture name.
detect_gpu_arch reports METAL alongside the others so the generator emits the
block. Every existing architecture comes out byte-identical; the generated
device header gains only the Metal block and the architecture comment.