Updates in Nsight Python 1.1.0#

Enhancements#

  • Added explicit tool management APIs: Added nsight.Tool, nsight.activate(), nsight.deactivate(), and nsight.get_active_tool() for profiling tool life cycle management. See Tools.

  • Added experimental CUPTI backend: Kernel durations can now be collected with CUPTI as an alternative to NVIDIA Nsight Compute. To get started with the CUPTI backend in @nsight.analyze.kernel, see NVIDIA CUPTI (experimental). For installation and runtime requirements, please see Installation and Runtime Requirements.

  • Added experimental custom information collectors: Profiling results can now include application-specific information collected once per session, once per configuration, once per repeated run, or once per annotation. Use nsight.experimental.collect() with a CollectionScope and pass the decorated functions through the info_collectors parameter of @nsight.analyze.kernel.

  • Added support for kernels launched from other threads: Kernels launched from a thread other than the one that creates the annotated region are now profiled. nsight.annotate() now marks the region with an NVTX start/end range instead of a thread-local push/pop range, so NVIDIA Nsight Compute targets kernels launched from any thread within the region.

  • Added Windows compatibility (fixes #58).

  • Improved handling of insufficient profiling samples: Measurement stability is reported as None when it cannot be determined, and undefined statistics are reported as NaN. Relative standard deviation now uses the absolute mean (#73).

Fixes#

  • Fixed aggregation failures with tensor-valued config parameters (#63).