NVIDIA / NVIDIA/cudf

Improve NVTX annotating in cuDF Python

Open
#20,533 1 comment 0 reactions 0 assignees View on GitHub
improvement Python
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

NVTX annotations have been added to the cuDF classic API largely on an ad hoc basis. At this point we have fairly broad coverage that we have built up over time, but it is not systematic and also tends to be spread across multiple levels of the API, with some public APIs missing annotations while various private APIs do have annotations. The current state has a few problems:
- Inconsistent coverage means that sometimes profiles are missing useful information
- Extensively covered code paths can wind up experience meaningful runtime performance degradation from adding many annotations
- Debugging and stepping through code is challenging when you have to step through many layers of annotation wrapper functions

We should consider better approaches for handling annotations going forward. Some things to consider:
- Only annotating public cuDF APIs and removing all private annotations
- To facilitate the above, taking a more systematic approach to annotations (e.g. applying annotations programmatically to all APIs of public classes and free functions in public modules)
- Making annotations a no-op except in some "debug mode" so that runtimes are unaffected.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.