# OptiX

NVIDIA Nsight Compute supports profiling of OptiX applications, but with certain restrictions.

- Internal Kernels

  Kernels launched by OptiX that contain no user-defined code are given the generic name NVIDIA internal. These kernels show up on the API Stream in the NVIDIA Nsight Compute UI, and can be profiled in both the UI as well as the NVIDIA Nsight Compute CLI. However, no CUDA-C source, PTX or SASS is available for them.

- User Kernels

  Kernels launched by OptiX can contain user-defined code. OptiX identifies these kernels in the API Stream with a custom name. This name starts with raygen__ (for “ray generation”). These kernels show up on the API Stream and can be profiled in the UI as well as the NVIDIA Nsight Compute CLI. The Source page displays CUDA-C source, PTX and SASS defined by the user. Certain parts of the kernel, including device functions that contain OptiX-internal code, will not be available in the Source page.

- SASS

  When SASS information is available in the profile report, certain instructions might not be available in the Source page and shown as N/A.

The Acceleration Structure Viewer for OptiX traversable handles currently has the following limitations:

- The Acceleration Structure Viewer is not supported on MacOSX.

- Viewing instance acceleration structures using multi-level instancing is not supported.

- Applying motion traversables to acceleration structures is not supported.

The following feature set is supported per OptiX API version:

OptiX API Version | Kernel Profiling | API Interception | Resource Tracking
6.x | Yes | No | No
7.0 - 8.0 | Yes | Yes | Yes