tree 708ea563dc2dbcc0a463bece1048c4d70d7ef602
parent 756668022bdc35107ce01d2dfbbfc20f5d0faf73
parent 1acbedc9599945b7116b8245b12ed75d723136cd
author Ben Vanik <ben.vanik@gmail.com> 1724799077 -0700
committer GitHub <noreply@github.com> 1724799077 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmzlhlCRC1aQ7uu5UhlAAAt5YQADKUuV7cXsZDxLULDf3iFQLc
 REeCmkqwvQc7l7j64iB7zy1cXV15/Nd3n3mynSYqB36YgXR6Sl7CORyDlq2am+IJ
 Fd127ElhzcptEXmWrAIQ/iM+QDG1N2mcIHoXEcZ4ju5kXTAAqB+SkNnjby4hDkXl
 XkTVqrV+IAxpvMaZkDp60UvOjoFhS6L/tRWb7ZQjXQaS/4kCpmRLvjRpWuwaYX+c
 9SpwRqmyCs6T/3hD76ehB6rgjdPQ7BNK6N5U5MYpGvejnmEA2UiJDMDi3G7qPtyC
 DkFfZGU9nemG50EXwXXU5A7hV2t7lS6Im01jxMyAfPsn1QYSziFodaI4rhPB53B5
 exN73uDoY1QhN5f3eAcP01c246Xys/A3AePQ67QOnhjIFnUcxenmP84SgM8z5iKS
 4YSkSIwLsnyGUBJtg8ie5a9tAL2F7r2kER5d3Yh7vMGOTT1Vm3fUYt05kvsMP19b
 6R9I33O7SbylHpFw5DNsZJaXLY+PQg1iM86n8SY426v9mqIvVEPPEqoL/DQ0OR8f
 W/DbOAa7NA/Ew0ppizuQb6Vkeg4ZO4ncJ6fqfEGAJbdkS5R3/xvsDAMfeZWZdqH7
 PxTLfIujcHX1+KsjgM5RUHJReT7gRjS9ph5zT7bE2JxDnamZ3DDpZcayqXQna6CD
 8AOVPJthUljFxCZBo9Jt
 =WiKz
 -----END PGP SIGNATURE-----
 

Merging simplified HAL bindings branch. (#18366)

This removes the concept of descriptor sets and pipeline layouts from
the HAL and switches programs to using a flat list of bindings per
dispatch as real programs rarely benefited and will do so less as
command buffer reuse is enabled. Command buffer recording is now
stateless as the information in push constants and push descriptor set
commands are carried per dispatch and there's no need to track pipeline
layouts. Pipeline layouts are still present in a reduced form in the
compiler IR in order to handle dispatch ABI in a normalized way but it's
up to the TargetBackends to encode them. Encoded metadata for pipeline
layouts is now embedded in the target-specific executables for targets
that require them (Metal/Vulkan/WebGPU/D3D12) and a reduced set of
information is embedded for others. This simplifies the HAL API quite a
bit, makes implementing the HAL easier as targets have more freedom in
how constants and bindings are mapped to lower-level implementations,
and in practice improves command buffer recording latency as there are
fewer VM calls per dispatch on average.

Since the flatbuffers needed to change to include the new metadata that
previously was handled via the HAL APIs this branch also modernizes and
normalizes the flatbuffers across targets to both better match the
implementation and support features like multiple shader modules/kernel
libraries/etc per HAL executable (even if the compiler isn't linking
them yet). This reorganization is required to effectively manage cached
resources - before the compiler would deduplicate pipeline layouts
across all executables but now that each executable is responsible for
that having 1000 executables means that there will be 1000 pipeline
layouts even if most are the same. Perhaps this will serve as good
motivation to finally finish linking in all backends :) Debug info is
also consistently added for all targets and processed for tracing and
factored such that new debug info can be added per-exported function
without needing to change per-target code.

There are many IR changes here and many test updates: most of the tests
that were updated are in codegen and should not be using HAL ops at all.
As codegen test cleanup continues to switch from HAL ops to basic
functions future changes to the HAL IR will be easier. Notable changes
include:
* Renamed `push_constants` to `constants` (as there is no longer a
`push_constants` API)
* Dropped `#hal.descriptor_set.layout`
* Removed ordinal from `#hal.descriptor_set.binding` (as ordinals are
now implicit)
* Renamed `#hal.descriptor_set.binding` to `#hal.pipeline.binding`
* Removed `set` from `hal.interface.binding.subspan`
* Removed `#hal.interface.binding` and the spooky action at a distance
`hal.interface.binding` attr now that ordinals are implicit

Metal/CUDA/Vulkan/HIP/CPU have all been updated to the new binding
model. WebGPU has had some changes applied but needs some significant
specialized work due to its existing push constant emulation requiring
compiler-side descriptor sets. That's left for future work when that
experimental backend is revived.

This bumps the HAL version to 5 (types removed and methods changed) and
the CPU executable library version to 5 (added reserved per-export
fields for future use).

Fixes #18154.