NVIDIA / NVIDIA/cuda-python

[PERF]: Epic for binding overhead improvements

Open
#1,645 0 comments 0 reactions 1 assignee View on GitHub

@mdboom is already working on this.

Since Feb 18, 2026.

cuda.bindings P2 performance
Dominant language
Cython
Stars
3.4k
Forks
329
Avg merge
1d 23h
Merged PRs (30d)
116

Description

This issue is tracking performance improvements and investigations to Python-to-C binding overhead, mostly driven by the benchmark of cuTensorMapEncodeTiled devised in #659. That is a useful benchmark because it is a function with an unusually high number of arguments (and therefore unusually high Python-to-C overhead).

Comparison to a more limited Cython binding

As an interesting experimental datapoint, a colleague provided a vibe-coded Cython binding for cuTensorMapEncodeTiled that runs about 4x faster than cuda-bindings official one. It is useful to see where some overheads may be reduced, but care should be taken looking at its raw performance: this wrapper accepts far fewer things as inputs than the CUDA bindings, and doesn't include developer niceties, like enums.

Merged or in-progress fixes

Timings below are per-iteration of the benchmark in #659. This includes /both/ binding overhead and some fixed amount of time in the actual CUDA call.

  • 4.80us Baseline time
  • 3.63us #1543
  • 2.73us #1545
  • 2.70us #1581
  • 2.59us #1616
  • 2.38us #1638
  • (no change on this benchmark) #1644

Under investigation

Issues in this category are theoretical findings to reduce the operations required for type conversion, but haven't necessarily yet been confirmed to have a measurable effect.

  • #1639
  • #1640
  • #1642

Deferred (effective, but high effort)

  • #1643

Rejected (ineffective)

  • #1605
  • #1649
  • #1637

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.