NVIDIA Developer Tools Overview
NVIDIA Developer Tools are a collection of applications, spanning desktop and mobile targets, which enable developers to build, debug, profile, and develop class-leading and cutting-edge software that utilizes the latest visual computing hardware from NVIDIA.
Figure 1. Flowchart describing working with new NVIDIA Nsight tools for performance optimization
NVIDIA® Nsight™ for desktop targets
Nsight Deep Learning Designer
NVIDIA® Nsight™ Deep Learning (DL) Designer is an integrated development environment that helps developers efficiently design and develop deep neural networks for in-app inference.
All developers should start with Nsight Systems to identify the largest optimization opportunities. Nsight Systems provides developers a system-wide visualization of an applications performance. Developers can optimize bottlenecks to scale efficiently across any number or size of CPUs and GPUs; from large servers to our smallest SoC. For further optimizations to compute kernels developers should use Nsight Compute or to further optimize a graphics workloads, use Nsight Graphics.
Nsight Compute is an interactive kernel profiler for CUDA applications. It provides detailed performance metrics and API debugging via a user interface and command line tool. Nsight Compute also provides customizable and data-driven user interface and metric collection that can be extended with analysis scripts for post-processing results.
Nsight Graphics is a standalone application for the debugging, profiling, and analysis of graphics applications on Microsoft Windows and Linux. It allows you to optimize the performance of your Direct3D 11, Direct3D 12, DirectX Raytracing 1.1, OpenGL, Vulkan, and KHR Vulkan Ray Tracing Extension based applications.
NVIDIA® Nsight™ Visual Studio Edition
An application development environment for heterogeneous platforms which brings GPU computing into Microsoft Visual Studio. NVIDIA Nsight™ VSE allows you to build and debug integrated GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
NVIDIA® Nsight™ Eclipse Edition
NVIDIA® Nsight™ Eclipse Edition is a full-featured IDE powered by the Eclipse platform that provides an all-in-one integrated environment to edit, build, debug, and profile CUDA-C applications. Nsight Eclipse Edition supports a rich set of commercial and free plugins.
NVIDIA® Nsight™ Visual Studio Code Edition
NVIDIA Nsight™ Visual Studio Code Edition (VSCE) is an application development environment for heterogeneous platforms that brings CUDA® development for GPUs into Microsoft Visual Studio Code. NVIDIA Nsight VSCE enables you to build and debug GPU kernels and native CPU code as well as inspect the state of the GPU and memory.
NVIDIA Compute Santizer Tool
Compute Sanitizer is a functional correctness checking suite. This suite contains multiple tools that can perform different type of checks including: Memcheck, Racecheck, Initcheck, and Synccheck.
NVIDIA® Nsight™ Tools Integration for Visual Studio
NVIDIA Nsight Integration is a Visual Studio extension that allows you to access the power of the following NVIDIA Nsight standalone tools from within Visual Studio:
- Nsight Compute : CUDA application interactive kernel profiler
- Nsight Graphics : Graphics application frame debugger and profiler/li>
- Nsight Systems : System-wide performance analysis tool/li>
SDKs and APIs
Nsight Perf SDK
The NVIDIA® Nsight™ Perf SDK is a graphics profiling toolbox for DirectX, Vulkan, and OpenGL, enabling you to collect GPU performance metrics directly from your application.
NVIDIA CUDA Profiling Tools Interface (CUPTI)
CUPTI is a dynamic library that enables the creation of profiling and tracing tools that target CUDA applications. Using the CUPTI APIs, independent software developers can create profiling tools that give insight into the CPU and GPU behavior of CUDA applications.
Nsight Aftermath SDK
NVIDIA® Nsight™ Aftermath SDK is a simple library you integrate into your D3D12 or Vulkan game’s crash reporter to generate GPU "mini-dumps" when a TDR or exception occurs.
NVIDIA Compute Santizer API
The Compute Sanitizer API enables the creation of sanitizing and tracing tools that target CUDA applications. Examples of such tools are memory and race condition checkers. The Compute Sanitizer API is composed of three APIs: the callback API, the patching API and the memory API. It is delivered as a dynamic library on supported platforms.
Nsight for Android & Tegra mobile targets
NVIDIA® Nsight™ Tegra, Visual Studio Edition
Nsight Tegra, Visual Studio Edition brings the raw development power and efficiency of Microsoft Visual Studio to Android, enabling developers with project management, compilation, and integrated debugging tools to streamline Android development.
Android Manifest Validator
The Android Manifest Validator is a tool that helps developers verify that APK files maintain conformance to a configurable set of rules. Setting the rules properly can help maximize searchability in the Google Play store.
CodeWorks for Android
CodeWorks for Android installs all software tools required to develop for Android and reduces the complex process of configuring an Android development system down to a single click. With class leading native application development tools for Android, CodeWorks for Android is a professional grade solution designed to provide the best development platform not only for Tegra powered devices but also for all Android devices. Available for Windows, OSX, Ubuntu Linux 32-bit, and Ubuntu Linux 64-bit platforms.
Tegra Graphics Debugger
Tegra Graphics Debugger is a console-grade tool that allows developers to debug and profile Vulkan 1.0, OpenGL 4.3-4.5, and OpenGL ES 2.0-3.1 APIs, enabling developers to get the most out of their Tegra-powered device.
For Windows and Linux graphics debugging, please refer to Nsight Graphics
Tegra Graphics Debugger is provided as part of the CodeWorks For Android suite.