Skip to content

docs(readme): include kornia in benchmark tables - #70

Merged
ternaus merged 1 commit into
mainfrom
codex/kornia-readme-plots
May 15, 2026
Merged

ternaus merged 1 commit into
mainfrom
codex/kornia-readme-plots

Conversation

@ternaus

@ternaus ternaus commented May 15, 2026 •

Copy link
Copy Markdown
Contributor

Add Kornia columns for RGB, 9-channel, and video README tables, generate 9-channel and video overview plots, and align docs with the published artifacts.

Summary by Sourcery

Update benchmark documentation and figure generation to incorporate Kornia across RGB, 9-channel, and video scenarios and align README figures and tables with the finalized published results.

New Features:

  • Expand RGB, 9-channel, and video benchmark tables to include Kornia and additional CPU/GPU regimes across libraries, including Pillow, DALI, and PyTorchVideo where applicable.
  • Introduce 9-channel image and 16-frame video overview figures that summarize median throughput and coverage by regime and library.

Enhancements:

  • Add a reusable scenario overview plotting helper and wire it into the figure generation pipeline for 9-channel and video benchmarks.
  • Revise figure numbering, captions, and recommended-figure guidance to reflect the new overview plots and reposition the winner-counts figure as appendix material.
  • Update benchmark scope and methodology docs to describe the published 9-channel and video result sets and clarify that README figures are generated from the same reproducibility CSVs.

Add Kornia columns for RGB, 9-channel, and video README tables, generate 9-channel and video overview plots, and align docs with the published artifacts.
Copilot AI review requested due to automatic review settings May 15, 2026 11:33
@sourcery-ai

sourcery-ai Bot commented May 15, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Adds Kornia results to all README benchmark tables (RGB, 9-channel, video), introduces new 9-channel and video overview plots, and aligns documentation and synchronization logic with the newly published 9-channel and video benchmark artifacts.

File-Level Changes

Change Details Files
Expand RGB benchmark table to include Kornia, TorchVision, and Pillow across CPU micro, CPU DataLoader, GPU micro, and GPU DataLoader regimes, aligning with full multi-library benchmark coverage.
  • Replace the 4-column RGB table with a wider table that reports AlbumentationsX, TorchVision, Kornia, and Pillow throughput for CPU micro and CPU DataLoader regimes, plus TorchVision and Kornia for GPU micro and GPU DataLoader, and DALI for GPU DataLoader where applicable.
  • Fill in per-transform throughput values for the new columns, preserving previous numbers where applicable and adding Kornia and Pillow measurements drawn from the published benchmark artifacts.
  • Maintain bolding semantics for regime winners within each row while expanding the table.
README.md
Extend 9-channel benchmark table to include Kornia across CPU micro, CPU DataLoader, GPU micro, and GPU DataLoader, and sync values with published 9-channel artifacts.
  • Replace the 4-column 9-channel table with a multi-column table that adds TorchVision and Kornia CPU micro and CPU DataLoader columns alongside existing AlbumentationsX values.
  • Add Kornia entries for 9-channel GPU micro and GPU DataLoader regimes and update TorchVision values to match the published 9-channel GPU results.
  • Carry over and expand bolding to reflect winners per regime with the new library coverage.
README.md
Extend video benchmark table to include Kornia, TorchVision CPU, DALI, and PyTorchVideo across CPU micro, CPU DataLoader, GPU micro, and GPU DataLoader regimes.
  • Replace the 4-column video table with a 12-column table reporting AlbumentationsX, TorchVision, and Kornia for CPU micro and CPU DataLoader, plus TorchVision and Kornia for GPU micro and GPU DataLoader, and DALI and PyTorchVideo for GPU DataLoader where appropriate.
  • Populate the new columns with throughput values for each transform, matching the published video benchmark runs and keeping bolding on per-regime winners.
  • Add a dedicated PyTorchVideoCanonical row in the video table to expose the PyTorchVideo baseline throughput.
README.md
Add new 9-channel and video scenario overview figures to the README and figure-generation pipeline, and renumber the winner-counts figure accordingly.
  • Change the README figure section to introduce a 9-channel overview plot (Figure 5) and a video overview plot (Figure 6), with descriptive captions explaining regimes, libraries, log-scale throughput, and measured/total coverage.
  • Renumber the existing winner-counts figure to Figure 7 and update both README and APPENDIX_FIGURES metadata to use the new title and numbering.
  • Register the new image9ch_overview.png and video16f_overview.png figures in the FIGURES list in generate_figures_and_insights.py with titles and captions matching the README text.
README.md
scripts/paper/generate_figures_and_insights.py
Implement a reusable scenario overview plotting helper to generate per-scenario (RGB-like) log-scale throughput vs. coverage plots for 9-channel and video benchmarks.
  • Introduce _scenario_overview_plot in generate_figures_and_insights.py to filter a given scenario by prefix, aggregate median throughput and coverage per (regime, library) triple, and write a CSV summary for each scenario.
  • Within scenario_overview_plot, build a small-multiple layout of subplots (per regime) using log-scale x-axes, colored scatter markers per library, and text annotations indicating median throughput and full/total measured rows.
  • Call scenario_overview_plot from main() for the 9-channel image (image9ch*) and 16-frame video (video16f*) scenarios, outputting PNGs and CSVs under the standard GENERATED/FIGURES paths.
scripts/paper/generate_figures_and_insights.py
Ensure newly generated overview CSVs and plots are synchronized into the public docs and described in plotting guidance.
  • Add figure_image9ch_overview.csv and figure_video16f_overview.csv to the list of files synced by _sync_public_data so the CSV summaries appear under docs/benchmark_data/.
  • Extend the FIGURE_SCENARIOS configuration in generate_figures_and_insights.py so README figure-markdown generation includes AlbumentationsX, TorchVision, Kornia, Pillow, DALI, and PyTorchVideo entries for the RGB, 9-channel, and video scenarios as appropriate.
  • Update docs/good_plots.md to describe the roles of the new overview figures, adjust which figure is considered the main DataLoader leaderboard, and move winner_counts.png to the appendix role; also update the GPU-vs-CPU figure filename to gpu_vs_albumentationsx_cpu_ratios.png and clarify the GPU-memory figure description.
scripts/paper/generate_figures_and_insights.py
docs/good_plots.md
docs/benchmark_data/figure_image9ch_overview.csv
docs/benchmark_data/figure_video16f_overview.csv
Align benchmark scope documentation with the finalized 9-channel and video Kornia-inclusive result sets and protocols.
  • Rewrite the 9-channel rows in docs/benchmark_scope.md to reference the published results directories under results/published/ for each regime (CPU micro, CPU DataLoader including Kornia highmem rerun, GPU micro, GPU DataLoader) and document per-library ok/unsupported/early-stopped row counts.
  • Update the Video CPU micro row to reflect the finalized run that excludes crash-only transforms, includes Kornia, and is now published, while keeping existing descriptions for video DataLoader and GPU regimes intact.
  • Clarify that CPU and GPU 9-channel and video results are now considered final, with Kornia’s limitations expressed via unsupported rows rather than missing rows.
docs/benchmark_scope.md
Document that README-facing figures are generated from the same benchmark CSVs and now include multi-scenario (RGB, 9-channel, video) overview plots where Kornia appears in each family.
  • Expand the benchmark methodology narrative to state that README figures are generated via scripts/paper/generate_figures_and_insights.py using the same CSV exports as the reproducibility tables.
  • Note that RGB production figures are paired with overview plots for 9-channel images and 16-frame video clips, ensuring Kornia is represented in all three major scenario families.
docs/benchmark_methodology.md

Possibly linked issues

  • #(unassigned): They address the same need: exposing Kornia and TorchVision per-image GPU benchmarks in the public README tables and plots.

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • In _scenario_overview_plot, the library axis is restricted to LIBRARY_ORDER and silently drops any library not listed there; consider either asserting that all libraries are covered or deriving the order from the data to avoid missing new or renamed libraries in future runs.
  • The new _scenario_overview_plot uses several hard-coded plotting constants (figure size, x_min/x_max scaling factors, marker size, font sizes); pulling these into named constants or parameters would make it easier to tune the aesthetics consistently across RGB, 9‑channel, and video scenarios.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `_scenario_overview_plot`, the library axis is restricted to `LIBRARY_ORDER` and silently drops any library not listed there; consider either asserting that all libraries are covered or deriving the order from the data to avoid missing new or renamed libraries in future runs.
- The new `_scenario_overview_plot` uses several hard-coded plotting constants (figure size, x_min/x_max scaling factors, marker size, font sizes); pulling these into named constants or parameters would make it easier to tune the aesthetics consistently across RGB, 9‑channel, and video scenarios.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@ternaus
ternaus merged commit 956d502 into main May 15, 2026
4 checks passed
@ternaus
ternaus deleted the codex/kornia-readme-plots branch May 15, 2026 11:36

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2693a233bd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/benchmark_scope.md
| 9-channel CPU DataLoader Kornia | `configs/paper/prod_c4_highmem_9ch_dataloader_cpu_kornia.yaml` | Added after the standard C4 run killed Kornia while preloading 10k float32 9-channel tensors. | Run on `c4-highmem-16` to preserve the same `memory_dataloader_augment`, 10k-item protocol. If highmem quota is unavailable, run a reduced-n Kornia row and label it memory-limited/not same-n. |
| 9-channel GPU DataLoader | `configs/paper/prod_g2_9ch_dataloader_gpu.yaml` | Not confirmed complete locally. | Run or locate the G2 job after the current 1-GPU queue is clear. |
| Video CPU micro | `configs/paper/prod_c4_video_micro_cpu.yaml` | GCS run `ca332e6f5dd949fd85b8435c5b56346d` failed during Kornia `Rotate` with `SIGSEGV: 11`; GCS run `132f29d9503b49fead76c45ba25a6851` excluded `Rotate` and then failed during Kornia `Elastic` with `SIGSEGV: 11`. AlbumentationsX and TorchVision outputs were fetched locally from the first run. | Keep AlbumentationsX/TorchVision. Rerun Kornia CPU micro with `Rotate` and `Elastic` excluded by the scenario filter. |
| 9-channel GPU micro | `configs/paper/prod_g2_9ch_micro_gpu.yaml` | Published from `results/published/paper-9ch-micro-gpu-g2-standard-16-2026-05-10/`. Kornia has 34 ok rows and 4 unsupported CUDA rows; TorchVision has 21 ok rows. | Keep as the 9-channel GPU micro result set. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Correct the 9-channel GPU micro row counts

The newly generated public overview data for this same scenario reports only 20/21 full TorchVision rows and 30/38 full Kornia rows (docs/benchmark_data/figure_image9ch_overview.csv), because Elastic and four Kornia transforms are early-stopped rather than full measured rows. Leaving this status row as “21 ok” and “34 ok” overstates the published measured coverage and contradicts the README-facing figure data that readers are directed to use for coverage interpretation.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the benchmark documentation and figure-generation pipeline to include Kornia coverage in README tables and add scenario overview plots for 9-channel images and video.

Changes:

  • Adds 9-channel and video overview figures/CSV exports.
  • Expands README benchmark tables with additional CPU/GPU library columns.
  • Updates benchmark status and plotting guidance docs to reflect published artifacts.

Reviewed changes

Copilot reviewed 7 out of 16 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
scripts/paper/generate_figures_and_insights.py Adds scenario overview plot generation and expands README table columns.
README.md Adds new overview figures and expanded benchmark result tables.
docs/good_plots.md Updates recommended figure list and roles.
docs/benchmark_scope.md Updates published benchmark status checklist.
docs/benchmark_methodology.md Documents README-facing scenario overview plots.
docs/benchmark_data/figure_image9ch_overview.csv Adds generated 9-channel overview summary data.
docs/benchmark_data/figure_video16f_overview.csv Adds generated video overview summary data.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/benchmark_scope.md
| 9-channel CPU DataLoader Kornia | `configs/paper/prod_c4_highmem_9ch_dataloader_cpu_kornia.yaml` | Added after the standard C4 run killed Kornia while preloading 10k float32 9-channel tensors. | Run on `c4-highmem-16` to preserve the same `memory_dataloader_augment`, 10k-item protocol. If highmem quota is unavailable, run a reduced-n Kornia row and label it memory-limited/not same-n. |
| 9-channel GPU DataLoader | `configs/paper/prod_g2_9ch_dataloader_gpu.yaml` | Not confirmed complete locally. | Run or locate the G2 job after the current 1-GPU queue is clear. |
| Video CPU micro | `configs/paper/prod_c4_video_micro_cpu.yaml` | GCS run `ca332e6f5dd949fd85b8435c5b56346d` failed during Kornia `Rotate` with `SIGSEGV: 11`; GCS run `132f29d9503b49fead76c45ba25a6851` excluded `Rotate` and then failed during Kornia `Elastic` with `SIGSEGV: 11`. AlbumentationsX and TorchVision outputs were fetched locally from the first run. | Keep AlbumentationsX/TorchVision. Rerun Kornia CPU micro with `Rotate` and `Elastic` excluded by the scenario filter. |
| 9-channel GPU micro | `configs/paper/prod_g2_9ch_micro_gpu.yaml` | Published from `results/published/paper-9ch-micro-gpu-g2-standard-16-2026-05-10/`. Kornia has 34 ok rows and 4 unsupported CUDA rows; TorchVision has 21 ok rows. | Keep as the 9-channel GPU micro result set. |
Comment thread README.md
| PlasmaContrast | 17.3 ± 0.0 | - | 1.4 ± 0.0 | **68.6 ± 0.0** | - | 11.7 ± 0.0 | - | 50.9 ± 0.0 | - | 50.3 ± 0.0 | - | - |
| PlasmaShadow | 58.8 ± 0.0 | - | 4.5 ± 0.0 | **139.2 ± 0.0** | - | 36.8 ± 0.0 | - | 61.4 ± 0.0 | - | 52.3 ± 0.0 | - | - |
| Posterize | 2910.0 ± 0.0 | 1053.1 ± 0.0 | - | 315.8 ± 0.0 | 225.7 ± 0.0 | - | **21706.1 ± 0.0** | - | 425.7 ± 0.0 | - | - | - |
| PyTorchVideoCanonical | - | - | - | - | - | - | - | - | - | - | - | **17.2 ± 0.0** |
("video16f_dataloader_gpu", "torchvision"),
("video16f_dataloader_gpu", "kornia"),
("video16f_dataloader_gpu", "dali"),
("video16f_dataloader_gpu", "pytorchvideo"),
Comment on lines +720 to +726
def _scenario_overview_plot(
df: pd.DataFrame,
*,
scenario_prefix: str,
output_stem: str,
item_unit: str,
) -> pd.DataFrame:
@ternaus
ternaus restored the codex/kornia-readme-plots branch May 18, 2026 05:13
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.

2 participants