Skip to content

Update sarbp example default precision and tiling heuristics - #1249

Open
tbensonatl wants to merge 2 commits into
mainfrom
tbenson/sarbp-example-include-image-tiling-in-heuristics
Open

Update sarbp example default precision and tiling heuristics#1249
tbensonatl wants to merge 2 commits into
mainfrom
tbenson/sarbp-example-include-image-tiling-in-heuristics

Conversation

@tbensonatl

Copy link
Copy Markdown
Collaborator

Update the sarbp example default precision from mixed to taylor_fast. taylor_fast is faster than mixed in all cases and in most cases will provide sufficient accuracy.

Also adjust the automatic pulse blocking and image tiling heuristics. Previously, the example automatically tuned the pulse block size, but not the image tile size. For large scenes on GPUs with small L2 caches, optimal performance requires tuning image tiling factors in addition to pulse block sizes. The example now automatically tunes both by default. On DGX Spark, this tuning improves performance for the dataset used in the example by ~10%.

Update the SAR BP default precision from mixed to taylor_fast. The taylor_fast
precision is the fastest on all hardware and likely provides enough accuracy for
most use cases. If more accuracy is needed, then either the fltflt or mixed precision
variants will be the best choice, with their relative speed depending on the FP64
throughput of the GPU.

Also add automatic image tiling as part of the heuristics. This improves default
performance on GPUs with small L2 caches, although users can still manually sweep
pulse block and image tiling sizes to identify the optimal operating points for
their system.

Signed-off-by: Thomas Benson <[email protected]>
Also adjust the working set estimate based on the active range profile
(i.e., the maximum span of the range profiles required for the specified
scene).

Signed-off-by: Thomas Benson <[email protected]>
@tbensonatl tbensonatl self-assigned this Sep 4, 2026
@copy-pr-bot

copy-pr-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@greptile-apps

greptile-apps Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR changes the SAR backprojection example’s default precision to taylor_fast and introduces joint automatic selection of pulse-block and image-tile sizes based on an estimated L2 working set.

  • Adds a standalone cache heuristic supporting automatic and manual overrides.
  • Estimates the active range-bin span from scene geometry.
  • Updates CLI parsing, diagnostics, defaults, and documentation.
  • The heuristic’s boundary behavior currently lacks focused automated coverage.

Confidence Score: 4/5

The PR appears safe to merge, with a non-blocking recommendation to add focused tests for the new heuristic.

The inspected execution paths preserve valid block and tile bounds and do not alter image coverage; the only accepted concern is the maintenance risk from leaving the new boundary-sensitive heuristic untested.

Files Needing Attention: examples/sarbp/sarbp_heuristic.h

Important Files Changed

Filename Overview
examples/sarbp/sarbp.cu Integrates automatic image tiling, active-range estimation, the new precision default, and heuristic diagnostics.
examples/sarbp/sarbp_heuristic.h Implements cache-based joint block and tile selection correctly for inspected paths, but without focused automated tests.
examples/sarbp/README.md Documents the new defaults, joint tuning behavior, and revised benchmark methodology.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Load SAR input and scene geometry] --> B[Estimate active range-bin span]
    B --> C[Read GPU L2 cache size]
    C --> D{Block size automatic?}
    C --> E{Image tiles automatic?}
    D --> F[Select pulse block size]
    E --> G[Select image tile count]
    F --> H[Process pulse blocks]
    G --> H
    H --> I[Backproject each image tile]
    I --> J[Write focused image]
Loading

Reviews (1): Last reviewed commit: "Fix working set image tiling approximati..." | Re-trigger Greptile

Comment thread examples/sarbp/sarbp_heuristic.h
@tbensonatl

Copy link
Copy Markdown
Collaborator Author

/build

@coveralls

Copy link
Copy Markdown

Coverage Status

Coverage is 93.386%tbenson/sarbp-example-include-image-tiling-in-heuristics into main. No base build found for main.

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