Skip to content

Measure the LRB backend's compiled kernel footprint with cuobjdump #12474

Open

Description

@anikaj-eng

Area

CUB

Problem

Architecture-selected entry types can multiply compiled kernel specializations even when a sort performs the same number of runtime launches. The LRB backend needs a matched comparison of compiled kernel symbols, device-code size, and actual execution behavior.

Proposed work

  • Build minimal representative callers for current CUB, internal LRB, and selective public dispatch with identical compiler versions, flags, RDC settings, and GPU targets.
  • Use cuobjdump to enumerate device-code images and kernel symbols per target. Demangle and distinguish unique C++ specializations from architecture-specific versions of one specialization.
  • Expand a controlled matrix of key/iterator types, sorting directions, and supported overloads; compare selector-based kernels with architecture-selected entry types where relevant.
  • Record compile/link time and device-code size alongside kernel-symbol counts.
  • Use a runtime trace to count launches separately: cuobjdump inspects compiled code and cannot by itself show how many kernels a call launches.

Validation / completion criteria

  • Produce a reproducible report with exact revisions, build commands, per-target symbol counts, device-code size, and runtime launch sequences.
  • Explain each additional specialization or launch and propose a focused change where it is unnecessary.
  • Confirm that host setup can select matching tuning without encoding every host-selected policy in GPU kernel template arguments.

Context

Follow-up to the LRB segmented-sort backend in #12236.

Related follow-ups

Activity

  1. changed the title [-][SPIKE]: Measure the LRB backend's compiled kernel footprint with cuobjdump[/-] [+]Measure the LRB backend's compiled kernel footprint with cuobjdump[/+] on Nov 9, 2026
  2. self-assigned this
    on Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

  • Status
    Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions