Skip to content

DRAFT: Add Zstd GPU CI test infrastructure (Phase 1)#108

Open
brohan203 wants to merge 1 commit into
microsoft:developmentfrom
brohan203:users/rohanborkar/ds_testInfra_phase1
Open

DRAFT: Add Zstd GPU CI test infrastructure (Phase 1)#108
brohan203 wants to merge 1 commit into
microsoft:developmentfrom
brohan203:users/rohanborkar/ds_testInfra_phase1

Conversation

@brohan203

Copy link
Copy Markdown

Draft - not ready for merge. Putting this up for early visibility and code review.

Adds a thin GTest wrapper (zstdgpu_ci_tests) that shells out to zstdgpu_demo.exe to validate Zstd GPU decompression shaders in CI. Also adds pipeline YAML and a histogram generation script for perf results.

What's here

  • zstd/zstdgpu_ci_tests/ — GTest parameterized test files
    • main.cpp handles setup (CLI parsing, config, file discovery), and zstdgpu_ci_tests.cpp handles executions (test definitions, demo runner)
    • 4 correctness scenarios: SimulationCheck, D3D12DebugLayer, ExternalMemory, GraphicsQueue
    • 2 performance scenarios: OverallThroughput, PerStageTiming
    • Win32 CreateProcess runner with pipe capture and optional timeout
  • zstd/scripts/generate_histogram.py — Generates histogram PNGs from perf CSV output. This can probably be improved

Open Q's

  • Do we need x86?
  • There's a decent amount of google test infra in the zstd/zstdgpu_samples folder. Need to look into reusing that instead of new methods I wrote

What's not here

  • Changes to zstdgpu_demo.exe. ATG owns. This PR does not include --output-csv flag and non-zero exit code changes
  • Test data staging on lab machines
  • End-to-end pipeline validation

ATG dependencies

  • --output-csv flag on zstdgpu_demo.exe for perf CSV output
  • Non-zero exit code from zstdgpu_demo.exe when validation fails (correctness tests currently pass vacuously)

Add zstdgpu_ci_tests: a thin GTest wrapper that shells out to
zstdgpu_demo.exe for correctness and performance validation of GPU
Zstd decompression. Tests are parameterized over .zst content files
discovered at runtime via --content-path.

Test cases:
- SimulationCheck (--chk-gpu --chk-cpu --sim-gpu)
- D3D12DebugLayer (--d3d-dbg)
- ExternalMemory (--ext-mem)
- GraphicsQueue (--d3d-gfx)
- OverallThroughput (--prf-lvl 0)
- PerStageTiming (--prf-lvl 2)

Also adds scripts/generate_histogram.py for converting performance
CSV output into histogram PNGs suitable for CI reporting.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant