MVP for disabling nvtx ranges for `thrust::seq`
fixes https://github.com/NVIDIA/cccl/issues/6298
by disabling NVTX ranges for thrust::seq. This PR specifically tracks the thrust algorithms involved in host_vector::push_back() operations and disables NVTX ranges just for these.
The disabling basically evaluates at compile time whether the policy passed to the thrust algorithm (and subsequently to should_enable_nvtx_for_policy()) is thrust::seq or any derivatives using CRTP.
Upon approval of the utility provided here, I will add all the remaining thrust algorithms.
I did isolate and run profiles on the cudf code that pointed to the problem and after the changes I got zero nvtx ranges for these lines in the profile.
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.
@bernhardmgruber @miscco now that I am thinking. Is a test expected for these facilities? And should it be under libcu++ better of maybe? Could be in libcudacxx/include/cuda/__nvtx/nvtx.h 👀
@bernhardmgruber @miscco now that I am thinking. Is a test expected for these facilities?
Good point! Please add a test if you come up with a good idea on how to test it.
🥳 CI Workflow Results
🟩 Finished in 3h 34m: Pass: 100%/70 | Total: 3d 15h | Max: 3h 30m | Hits: 19%/115311
See results here.
😬 CI Workflow Results
🟥 Finished in 3h 04m: Pass: 98%/70 | Total: 3d 01h | Max: 2h 46m | Hits: 50%/112891
See results here.
🥳 CI Workflow Results
🟩 Finished in 2d 05h: Pass: 100%/70 | Total: 3d 04h | Max: 3h 17m | Hits: 50%/115311
See results here.