Skip to content

Modify T4 results json schema#5

Open
jhozzova wants to merge 2 commits intoAutoTuningAssociation:mainfrom
jhozzova:main
Open

Modify T4 results json schema#5
jhozzova wants to merge 2 commits intoAutoTuningAssociation:mainfrom
jhozzova:main

Conversation

@jhozzova
Copy link
Contributor

Hi,
I have been working on integrating KTT as an autotuner supported in autotuning_methodology. During that process I came across several necessary changes in T4 results schema so that KTT can read full space search space files and simulate tuning with them. The changes are summarized below. I have kept it backward compatible, everything is optional, and naming is consistent with snake_case. I would suggest bumping schema version to 1.1.0 or 1.0.1 if this pull request is accepted.

I'm happy to discuss these changes and find common ground if something is not suitable for your needs.
Regards,
Janka

Summary of Changes

1. Added metadata Object (Top-Level)

  • New top-level field containing tuning environment information
  • Properties:
    • compute_api: API used (OpenCL/CUDA/Vulkan)
    • platform: Platform/SDK name
    • device: Device name
    • autotuner: Framework name (e.g., "KTT")
    • autotuner_version: Framework version
    • timestamp : Session start timestamp
    • timeunit : Time unit for all measurements (lowercase snake_case: "nanoseconds", "microseconds", "milliseconds", "seconds")
  • Rationale: Provides context for interpreting results and reproducing experiments

2. Added type Field to Measurements

  • Location: Within each item in the measurements array
  • Type: String enum
  • Values: "Int", "UnsignedInt", "Double", "Percent", "Throughput", "UtilizationLevel"
  • Optional: Not required for basic time measurements, primarily for profiling counters
  • Rationale: Enables proper type interpretation of profiling counter values

3. Enhanced times Object with New Fields

  • Added kernel_overhead: Time spent on kernel launch overhead
  • Added data: Time spent on data movement (host-device memory transfers)
  • Added profiling_runs: Time spent executing profiling runs
  • Added profiling_overhead: Overhead from profiling instrumentation
  • Rationale: Provides comprehensive breakdown of where time is spent during autotuning

4. Added compilation_data Object

  • Location: Optional top-level field within each result item (separate from times.compilation_data)
  • Contains:
    • Compilation metadata: max_work_group_size, local_memory_size, private_memory_size, constant_memory_size, registers
    • Thread dimensions: global_size (x/y/z), local_size (x/y/z)
  • All fields required if object present, if not applicable to current computational API, set to 0
  • Backend differences noted: Some fields (registers, constant_memory_size) are CUDA-specific
  • Rationale: Useful for understanding resource usage and reproducing exact kernel launches, also used as profiling information

5. Enhanced Existing Fields

  • Added detailed descriptions for all times properties
  • Clarified that configuration values are always strings
  • Specified correctness as binary (0 or 1)
  • Added examples where helpful

Jana Hozzova added 2 commits March 10, 2026 09:37
Add objects describing metadata and compilation data to T4 results json schema
Also fix the bug in pattern for version, dots need to be escaped
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