cuda developer tools: new features and capabilities · cuda developer tools: new features and...

33
Rafael Campana, Nov. 19, 2019 CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES

Upload: others

Post on 29-Feb-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

Rafael Campana, Nov. 19, 2019

CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES

Page 2: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

2

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Page 3: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

3

Nsight Eclipse EditionNsight Visual Studio Edition

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Page 4: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

4

Nsight Eclipse EditionNsight Visual Studio Edition

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Nsight Eclipse Editioncuda-gdbNsight Visual Studio EditionNsight Computecuda-memcheck & Compute Sanitizer APINsight Graphics

Page 5: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

5

Nsight Eclipse EditionNsight Visual Studio Edition

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Nsight Eclipse Editioncuda-gdbNsight Visual Studio EditionNsight Computecuda-memcheck & Compute Sanitizer APINsight Graphics

cuda-gdb/Nsight Eclipse EditionNsight Visual Studio EditionNsight Aftermath

Page 6: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

6

Nsight Eclipse EditionNsight Visual Studio Edition

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Nsight Eclipse Editioncuda-gdbNsight Visual Studio EditionNsight Computecuda-memcheck & Compute Sanitizer APINsight Graphics

cuda-gdb/Nsight Eclipse EditionNsight Visual Studio EditionNsight Aftermath

Nsight Systems

Page 7: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

7

Nsight Eclipse EditionNsight Visual Studio Edition

DEVELOPER TOOLS PORTFOLIO

Application Development

IDE integration

Debug Gfx APIDebug CUDA

System Profiling

Graphics ProfilingCUDA Profiling

Gfx GPU crash dump

CUDA GPU crash dump

Nsight Eclipse Editioncuda-gdbNsight Visual Studio EditionNsight Computecuda-memcheck & Compute Sanitizer APINsight Graphics

cuda-gdb/Nsight Eclipse EditionNsight Visual Studio EditionNsight Aftermath

Nsight Systems

Nsight Compute

Nsight Graphics

Page 8: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

8

NVIDIA® NSIGHT™ ECLIPSE EDITION

• Plug-in to EclipseEclipse 4.7, 4.8 and 4.9 support

• Edit, build, debug CUDA-C applications

• CUDA aware source code editor – syntax highlighting, code completion and inline help

• Debugger - Seamless and simultaneous debugging of CPU and GPU code

• NVCC build integration to cross compile for various target platforms

• Docker support

Plug-in

• Documentation: https://docs.nvidia.com/cuda/nsight-eclipse-plugins-guide

Page 9: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

9

NSIGHT VISUAL STUDIO EDITION

Visual Studio 2015, 2017 and 2019 support

Native CUDA C/C++ GPU Debugging

Source-correlated assembly debugging(SASS / PTX / SASS+PTX)

Data breakpoints for CUDA C/C++ code

Expressions in Locals, Watch and Conditionals

CUDA info view

Warp Watch

Documentation: https://developer.nvidia.com/nsight-visual-studio-edition

Plug-in

Page 10: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

10

CUDA-GDB

Provides the debugging features of Nsight Eclipse Edition

Command line source and assembly (SASS) level debugger

Simultaneous CPU and GPU debugging

Inspect and modify memory, register, variable state

Control program execution

Runtime GPU error detection

Support for multiple GPUs, multiple contexts, multiple kernels, Thread focus

Core dump support

Documentation : http://docs.nvidia.com/cuda/cuda-gdb

Overview

(cuda-gdb) info cuda threads breakpoint all

BlockIdx ThreadIdx Virtual PC Dev SM Wp Ln Filename Line

Kernel 0

(1,0,0) (0,0,0) 0x0000000000948e58 0 11 0 0 infoCommands.cu 12

(1,0,0) (1,0,0) 0x0000000000948e58 0 11 0 1 infoCommands.cu 12

(1,0,0) (2,0,0) 0x0000000000948e58 0 11 0 2 infoCommands.cu 12

(1,0,0) (3,0,0) 0x0000000000948e58 0 11 0 3 infoCommands.cu 12

(1,0,0) (4,0,0) 0x0000000000948e58 0 11 0 4 infoCommands.cu 12

(1,0,0) (5,0,0) 0x0000000000948e58 0 11 0 5 infoCommands.cu 12

(cuda-gdb) info cuda threads breakpoint 2 lane 1

BlockIdx ThreadIdx Virtual PC Dev SM Wp Ln Filename Line

Kernel 0

(1,0,0) (1,0,0) 0x0000000000948e58 0 11 0 1 infoCommands.cu 12

Page 11: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

11

CUDA-GDB

Support for ARM (Server Base System Architecture) preview

Performance improvements

● Module load time (~30% faster)

Quality improvements

● Improved handling of --lineinfo debug information (OptiX)● Improved display of uniform registers (Turing)

New Features

Page 12: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

12

CUDA-MEMCHECK

Multiple tools

memcheck : reports out of bounds/misaligned memory access errors

racecheck : identifies races on __shared__ memory

initcheck : usage of uninitialized global memory

synccheck : identify invalid usage of __syncthreads() and __syncwarp()

Documentation: http://docs.nvidia.com/cuda/cuda-memcheck/index.html

Functional correctness checking tool suite

Page 13: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

13

SANITIZER

Provides finer control than cuda-memcheck through APIs to analyze memory patterns

APIs are grouped in two:

Callback API – CUDA events such as memory allocations/kernel

Patching API – inserts patches for specific memory instructions

Documentation: https://docs.nvidia.com/cuda/compute-sanitizer/index.html

Samples: https://github.com/NVIDIA/compute-sanitizer-samples

API

Page 14: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

14

NSIGHT SUITE OF PROFILERS

Page 15: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

15

NSIGHT TOOLS WORKFLOW

Nsight SystemsComprehensive system-level

performance

Nsight ComputeDetailed CUDA kernel performance

Nsight GraphicsDetailed frame/render performance

Dive into top CUDA kernels by using metrics/counter

collection

Dive into graphicsframes

Start here

Re-check overall performance

Re-check overall performance

Page 16: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

16

NSIGHT SYSTEMS

System-wide application algorithm tuningMulti-process tree support

Locate optimization opportunitiesVisualize millions of events on a very fast GUI timelineOr gaps of unused CPU and GPU time

Balance your workload across multiple CPUs and GPUsCPU algorithms, utilization, and thread stateGPU streams, kernels, memory transfers, etc

OS: Linux (x86, Tegra), Windows, MacOSX (host only)

Docs/product: https://developer.nvidia.com/nsight-systems

Overview

Page 17: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

17

Processes

and

threads

CUDA and

OpenGL API trace

Multi-GPU

Kernel and memory

transfer activities

cuDNN and

cuBLAS trace

Thread/core

migration

Thread state

Page 18: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

18

NSIGHT SYSTEMS

● ARM (SBSA) support● ftrace collection

● NVTX correlated

to GPU

● Event table

New Features

Page 19: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

19

NSIGHT SYSTEMSMPI API Trace

Page 20: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

20

NSIGHT SYSTEMS

CUDA KernelBacktraces

FTrace events

New Trace Collections

Page 21: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

21

NSIGHT SYSTEMS

FTrace

Page 22: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

22

NSIGHT COMPUTE

Key Features:

• Interactive CUDA API debugging and kernel profiling

• Fast Data Collection

• Improved Workflow (Diff’ing Results)

• Fully Customizable (Programmable UI/Rules)

• Command Line, Standalone, IDE Integration

OS: Linux (x86, Power, Tegra), Windows, MacOSX (host only)

GPUs: Pascal, Volta, Turing

Docs/product: https://developer.nvidia.com/nsight-compute

Next-Gen Kernel Profiling Tool

Page 23: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

23NVIDIA CONFIDENTIAL. DO NOT DISTRIBUTE.

NSIGHT COMPUTEProfile Report – Details Page

Focused Sections

All Data on

Single Page

Ordered from Top-Level to

Low-Level

Page 24: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

24

NSIGHT COMPUTESection Example

Section Headerprovides overview &

context for other sections

Section Bodyprovides additional

details (tables & charts)

Section Configcompletely data driven

add/modify/change sections

Page 25: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

25

NSIGHT COMPUTEUnguided Analysis / Rules System

Analysis Rulesrecommendations from

nvvp and more

Rules Configcompletely data driven

add/modify/change rules

Page 26: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

26

NSIGHT COMPUTEDiff’ing kernel runs

Metric deltacurrent values and changes

from baseline

Baselinefrom any previous profile report

(different kernel, gpu, …)

Chart differencecurrent values and

baseline values

Page 27: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

27

NSIGHT COMPUTE

Support for PowerPC

target architecture

Support for ARM (SBSA) preview

target architecture

Profile activity command

line is shown

New Features

Page 28: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

28

NSIGHT COMPUTE

Detailed breakdown of

high-level SOL metrics

New Features

Page 29: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

29

NSIGHT COMPUTE

Improved help for Source page

and Details page charts

New Features

Page 30: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

30

NSIGHT COMPUTE

The Memory Workload Analysis

chart now supports baselines

New Features

Page 31: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

31

NSIGHT COMPUTE

Command line interface has new profiling and output controls

New Features

Page 32: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug

32

SUMMARY

Full stack of Developer Tools available across platforms and APIs

Overall user consistent experience across many platforms

Compute & Graphics API support

Lower overhead (performance and footprint)

Visit: https://developer.nvidia.com/tools-overview

Page 33: CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES · CUDA DEVELOPER TOOLS: NEW FEATURES AND CAPABILITIES. 2 DEVELOPER TOOLS PORTFOLIO Application Development IDE integration Debug