---
id: pr-cccl-cub-7501
repo: NVIDIA/cccl
pr: 7501
title: 'cuda.compute: improve caching performance by not relying on `isinstance()` checks for protocols'
author: shwina
date: '2026-02-04'
url: https://github.com/NVIDIA/cccl/pull/7501
source_category: upstream-code
architectures:
- sm100
tags:
- benchmark_test
- compiler_runtime
- cuda.compute
- memory_primitives
techniques: []
hardware_features: []
kernel_types:
- compiler
- memory
- scan
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: d6344b306f8e1552f79c7841ba9c21c612c0a830
inclusion_reason: Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.
changed_paths:
- python/cuda_cccl/cuda/compute/_caching.py
- python/cuda_cccl/cuda/compute/_jit.py
- python/cuda_cccl/cuda/compute/_utils/protocols.py
- python/cuda_cccl/cuda/compute/algorithms/_scan.py
- python/cuda_cccl/cuda/compute/typing.py
artifact_dir: evidence/pull-bundles/cccl-cub/gh-7501
head_ref_oid: 0667b581ac94466cdfc9f8c8076633fe6685f3ba
---
# cuda.compute: improve caching performance by not relying on `isinstance()` checks for protocols

- Repository: `NVIDIA/cccl`
- PR: [7501](https://github.com/NVIDIA/cccl/pull/7501)
- Decision: `Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.`
- Reason: Mine shape sets, tolerance rules, warmup logic, and profile commands before mutating code.

## Changed Paths

- `python/cuda_cccl/cuda/compute/_caching.py`
- `python/cuda_cccl/cuda/compute/_jit.py`
- `python/cuda_cccl/cuda/compute/_utils/protocols.py`
- `python/cuda_cccl/cuda/compute/algorithms/_scan.py`
- `python/cuda_cccl/cuda/compute/typing.py`

## Evidence Bundle

`evidence/pull-bundles/cccl-cub/gh-7501`
