Skip to content

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

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

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

Conversation

@brohan203
Copy link
Copy Markdown

@brohan203 brohan203 commented Jun 4, 2026

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>
@brohan203 brohan203 requested review from coopp and larryche June 4, 2026 22:09
@brohan203 brohan203 changed the title Add Zstd GPU CI test infrastructure (Phase 1) DRAFT: Add Zstd GPU CI test infrastructure (Phase 1) Jun 4, 2026
@brohan203 brohan203 requested a review from chmann-micro June 4, 2026 22:15
@brohan203
Copy link
Copy Markdown
Author

@brohan203 please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

@microsoft-github-policy-service agree company="Microsoft"

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