NGC Catalog
CLASSIC
Welcome Guest
Helm Charts
Nsight Streamer

Nsight Streamer

For versions and more information, please view on a desktop device.
Logo for Nsight Streamer
Description
A self-hosted NVIDIA Nsight Tools GUI, running within a Docker container, enables remote access through a web browser.
Publisher
NVIDIA
Latest Version
2025.3.2
Compressed Size
24.34 KB
Modified
May 20, 2025

Nsight Streamer

NVIDIA Nsight Streamer enables remote access to NVIDIA Nsight Tools through a web browser, providing a self-hosted graphical interface running inside a containerized environment. This setup is ideal for analyzing data on remote servers or Kubernetes clusters.

The Nsight Streamer currently supports containerized deployment of NVIDIA Nsight Systems (nsys), NVIDIA Nsight Compute (ncu), NVIDIA Nsight Graphics (ngfx), and NVIDIA Nsight Deep Learning Designer (ndld).

Benefits

  • Handling Large Data: The reports generated by NVIDIA Nsight Tools on servers/clusters can be extremely large, making it impractical to transfer them to a local machine. By hosting the GUI on the remote server, you can analyze the data in place without the need for excessive data transfers.
  • Enhanced Performance: Remote servers or clusters often have significantly more computational power and memory compared to local machines. Analyzing the reports directly on the remote server leverages these resources, ensuring faster and more efficient data processing and analysis.
  • Security Compliance: Many organizations have strict security protocols that prevent copying sensitive data from servers or clusters to local environments. This self-hosted solution ensures that the data remains within the secure confines of the server while still providing the necessary tools for thorough analysis.
  • Kubernetes Native Deployment: Easily deploy and manage Nsight Streamer instances within your Kubernetes infrastructure.
  • Scalability: Deploy multiple instances for different teams or purposes.

Warning

Nsight Streamer for Nsight Graphics supports remote profiling, so it is essential to ensure that the server is secure and that the necessary security measures are in place to prevent unauthorized access to your data.

Getting Started

Prerequisites

  • A Kubernetes cluster
  • Helm installed on the administrator machine

Installation

Quick Start

Install the Nsight Streamer with volumes for your profiling reports:

helm install --wait --set tool=nsys \
  --set volumes[0].name=reports-volume \
  --set volumes[0].persistentVolumeClaim.claimName=your-reports-pvc \
  --set volumeMounts[0].name=reports-volume \
  --set volumeMounts[0].mountPath=/mnt/host/volumes/reports \
  nsight-streamer https://helm.ngc.nvidia.com/nvidia/devtools/charts/nsight-streamer-2025.3.2.tgz

For more complex configurations, you can use a values file:

# values.yaml
tool: nsys
volumeMounts:
  - name: local-storage
    mountPath: /data
volumes:
  - name: local-storage
    hostPath:
      path: /mnt/data
      type: Directory

Then install with:

helm install --wait -f values.yaml nsight-streamer \
    https://helm.ngc.nvidia.com/nvidia/devtools/charts/nsight-streamer-2025.3.2.tgz

Advanced Installation Options

  • Custom Namespace: Install in a non-default namespace:

    helm install --wait -f values.yaml nsight-streamer \
        https://helm.ngc.nvidia.com/nvidia/devtools/charts/nsight-streamer-2025.3.2.tgz --namespace example-ns
    
  • Multiple Instances: Install multiple copies:

    helm install --wait --generate-name -f values.yaml \
        https://helm.ngc.nvidia.com/nvidia/devtools/charts/nsight-streamer-2025.3.2.tgz
    

Enabling Hardware Acceleration

To enable GPU hardware acceleration for video encoding in Kubernetes, which significantly improves the performance and responsiveness of the Nsight Streamer, you need to:

  1. Have an NVIDIA GPU with AV1 encoding support (Ada Lovelace architecture or newer GPUs). For a complete list of supported GPUs, see the NVIDIA Video Encode and Decode GPU Support Matrix
  2. Have NVIDIA GPU Operator installed on the Kubernetes cluster. See the NVIDIA GPU Operator Installation Guide for more information.
  3. Configure your Helm values to include resources.limits.nvidia.com/gpu:
# hw_values.yaml
tool: nsys
resources:
  limits:
    nvidia.com/gpu: 1  # Request at least one GPU
volumes:
  - name: reports-volume
    persistentVolumeClaim:
      claimName: your-reports-pvc
volumeMounts:
  - name: reports-volume
    mountPath: /mnt/host/volumes/reports

Then install with:

helm install --wait -f hw_values.yaml nsight-streamer \
    https://helm.ngc.nvidia.com/nvidia/devtools/charts/nsight-streamer-2025.3.2.tgz

Runtime environment variables

Can be used to configure runtime parameters.

Variable Description Default value
TURN_PORT TCP port that will be used for WebRTC data transmission. The port should match the port published from the container on the host. 3478
ENABLE_RESIZE Should resizing be enabled to fit the remote resolution to the client window? true
MAX_RESOLUTION Maximum resolution of the remote screen used for streaming the Nsight Tool. 1920x1080
WEB_USERNAME The username for accessing the NVIDIA Nsight Streamer from a browser. If set to an empty string, no authentication is required. nvidia
WEB_PASSWORD The password for accessing the NVIDIA Nsight Streamer from a browser. nvidia

Configuration

The Nsight Streamer Helm chart can be customized through various configuration parameters.

Configuration Values

Parameter Description Default Value
tool The Nsight tool to run in the container. Valid values: nsys (Nsight Systems), ncu (Nsight Compute), ngfx (Nsight Graphics), ndld (Nsight Deep Learning Designer). Required
service.type The type of Kubernetes service to create (ClusterIP, NodePort). NodePort
service.httpPort The port on which the HTTP service will be exposed within the cluster. 30080
service.turnPort The port on which the TURN service will be exposed within the cluster. 30478
service.nodeHttpPort The NodePort value for exposing HTTP traffic outside the cluster. Applicable when service.type is NodePort. 30080
service.nodeTurnPort The NodePort value for exposing TURN traffic outside the cluster. Applicable when service.type is NodePort. Should be equal to service.turnPort. 30478
nodeSelector Node selector for Nsight Streamer pod scheduling. {}
tolerations Tolerations for Nsight Streamer pod scheduling. []
affinity Affinity rules for Nsight Streamer pod scheduling. {}
volumeMounts List of volumes to mount into the container. []
volumes List of volumes to be used by the container. []
env List of environment variables to be injected into the Docker container. []
enableResize Should resizing be enabled to fit the remote resolution to the client window? true
maxResolution Maximum resolution of the remote screen used for streaming the Nsight Tool. 1920x1080
preserveConfig Preserve the Nsight Tool configuration file in the container between runs. true
webUsername The username for accessing the NVIDIA Nsight Streamer from a browser. Can be provided as a direct string value or as a secret reference. If using a secret, set webUsername as a map with secretName and secretKey. If set to an empty string, no authentication is required. nvidia
webPassword The password for accessing the NVIDIA Nsight Streamer from a browser. Can be provided as a direct string value or as a secret reference. If using a secret, set webPassword as a map with secretName and secretKey. nvidia

Example values.yaml

# Basic configuration
tool: nsys
enableResize: true
maxResolution: "1920x1080"

# Authentication
webUsername: "admin"
webPassword: "secure-password"

# Service configuration
service:
  type: NodePort
  httpPort: 30080
  turnPort: 30478
  nodeHttpPort: 30080
  nodeTurnPort: 30478

# Persistent volumes with reports
volumes:
  - name: reports-volume
    persistentVolumeClaim:
      claimName: reports-pvc
      
volumeMounts:
  - name: reports-volume
    mountPath: /mnt/host/volumes/reports

Accessing the Service

After installing the Nsight Streamer, you can access it based on your service type configuration:

ClusterIP Service Type

When using ClusterIP (set via service.type=ClusterIP), the service is only accessible from within the cluster. You can access it using port forwarding:

kubectl port-forward service/nsight-streamer-service 30080:30080 30478:30478

Then access the service at http://localhost:30080

Make sure that the target turn port forwarded is the same as the service.turnPort (default is 30478).

NodePort Service Type

When using NodePort (default, or set via service.type=NodePort), the service is exposed on each node's IP at a static port. The default port is 30080, but this can be configured during installation using the service.nodeHttpPort parameter.

After installation, the connection information will be automatically displayed by the print-connection-info job. You can retrieve this information by checking the job logs:

kubectl logs job/nsight-streamer-print-connection-info

Access the service by navigating to:

http://<node-ip>:<node-port>

Note: Ensure your network security settings allow access to the configured NodePort.

Troubleshooting

Checking Logs

kubectl logs deployment/nsight-streamer

Common Issues

  • Pod Pending: Check if nodes have enough resources or if GPU requirements can be satisfied
  • Service Unreachable: Verify network policies and firewall rules
  • Authentication Failures: Check the webUsername and webPassword values

Automatic Report File Detection

The Nsight Streamer scans all mounted volumes at startup and selects the first one containing supported report files. The "Open..." dialog will be opened with the detected directory.

Troubleshooting

Clipboard is not working in Chrome

Enable chrome://flags/#unsafely-treat-insecure-origin-as-secure and add the Nsight Streamer URL to the list.

Connection failed on Firefox

If you encounter a "Connection failed." error on Firefox, you can resolve it by changing a configuration setting:

  • Open Firefox and navigate to about:config.
  • Search for media.peerconnection.ice.loopback.
  • Set the value to true.

Connection failed on Safari

If you are experiencing connection issues in Safari when using AV1 codec:

  • Open Safari and go to Safari menu > Settings > Advanced.
  • Check the box next to "Show features for web developers".
  • Go to "Feature Flags" and search for "WebRTC AV1 codec".
  • Enable the "WebRTC AV1 codec" option.
  • Restart Safari and try connecting again.

The GUI is too small on an HDPI screen

Restart the remote Nsight Tool:

  • Go to File in the menu bar of Nsight Tool.
  • Select Exit.
  • Nsight Tool will be opened with the scaled GUI.

License Agreements

By pulling and using the container, you accept the terms and conditions of this End User License Agreement.

Suggested Reading

  • Getting Started with NVIDIA Nsight Systems
  • Getting Started with NVIDIA Nsight Compute
  • Getting Started with NVIDIA Nsight Graphics
  • Get Started With Nsight Deep Learning Designer