Skip to content

GPU-03 Launch path and GpuJob #22

Closed

Description

@K-T0BIAS

Goal

Land the permanent submit and wait path that gpu() will use: bind a GpuPack, dispatch a compute pipeline, wait on a fence, write results back into Python.

Work

  • Descriptor set layout for option 5: binding 0 = scalar SSBO, bindings 1..N = list SSBOs.
  • Pipeline layout and compute pipeline created from SPIR-V. Build SPIR-V with the library (committed bytes or shaderc). Do not require glslangValidator on the user PATH.
  • Command recording: barriers after upload if needed, bind descriptor set, dispatch, submit with a fence.
  • GpuJob with join(): wait, download, write back into the same Python objects. No mid-run sync.
  • Wire this to GpuPack from Issue 2. Same types later used by the public gpu() entry.
  • End-to-end proof only through _ext.gpu.testing (same idea as pack round-trips). Keep any smoke kernel under testing. Do not add a public or product “reference kernel” API.
  • Pytest: run the test launch, check results, skip when no GPU.

Notes

One compute queue. Results only after join. Everything here is permanent launch machinery, not a temporary demo path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

sub-featurePiece of a larger enchancement

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions