Multi-GPU

advertisement
NVIDIA Parallel Nsight
NVIDIA DevTech | Anton Obukhov
Что такое Parallel Nsight?
NVIDIA Parallel Nsight (aka Nexus) – Среда
разработки приложений для гетерогенных
платформ
Parallel Nsight интегрируется в Microsoft Visual
Studio с целью обеспечить гетерогенность
разработки
NVIDIA Corporation, 2010
Windows Development Environment
GPU
CPU
Languages
Compiler
Build
Debug
GPU Tools
Visual Studio
Edit
Shader Debugger
Compute Debugger
Compute Profiler
Graphics Debugger
Profile
Graphics Profiler
NVIDIA Corporation, 2010
Visual Studio
… чего хотят разработчики
Edit
CPU
GPU
GPU Code Browsing
Intellisense
Build
CPU
GPU
CUDA Project
System
Debug
CPU
GPU
GPU Source and
Graphics Debugger
Profile
CPU
GPU
GPU Performance
Tools
Platform Analysis
CPU
GPU
NVIDIA Corporation, 2010
NVIDIA Parallel Nsight
Возможность разработки для CPU и GPU в
едином цикле разработки приложения
• Отладка кода на самом GPU
• Анализ активности
• Интеграция с Visual Studio 2008
NVIDIA Corporation, 2010
Parallel Nsight Overview
Microsoft Visual Studio 2008 SP1
Parallel Nsight
Build
CUDA Project System
Debug
DirectX Frame
Profile
HLSL Source
DirectX Frame
CUDA
DirectX HUD and
Experiments
System Trace: OS,
CUDA, DirectX,
OpenCL,
OpenGL/Cg, and
User events
User Application
CUDA, OpenCL and DirectCompute
DirectX10/DirectX11 and OpenGL
C-CUDA, OpenCL C-99, and HLSL
HLSL
C/C++
CPU
GPU
NVIDIA Corporation, 2010
Native GPU Debugging
• Отладка на GPU, без эмуляции
• Точное соответствие результатов FPU
• GPU останавливается на breakpoint
• Исследование различных пространств памяти
• Высокая эффективность/скорость отладки
NVIDIA Corporation, 2010
Parallel Nsight CUDA Debugger
• Сериализация запусков kernel’ов
• Контроль на уровне Warp’ов и пошаговое
исполнение
• Visual Studio debugger фокусирование на треде
• Поддержка встренных окон Visual Studio
– Variables, Watch, Memory, Registers, Modules,
Processes, and Threads
NVIDIA Corporation, 2010
Parallel Nsight CUDA Debugger
• Улучшения Parallel Nsight Debugger
– Несколько точек останова по данным и на
инструкциях
– Вычисление выражений «на лету»
– CUDA focus picker
– Вычисление выражений поддерживает иерархию
памяти
• CUDA memory (bounds) checker
NVIDIA Corporation, 2010
Heterogeneous Computing Example
GPU
Time
CPU
Initialization
DeviceToHost memcpy
Sine function
GPU Memory
Patch of 3D
vertices
High_frequency_sinusoid
glDrawArray(…)
NVIDIA Corporation, 2010
Parallel Nsight C-CUDA Debugger Demo
NVIDIA Corporation, 2010
Platform Analysis
• Сбор данных об активности
– OS – process, thread and module events
– CPU API Trace – CUDA driver API, DirectX, OpenGL,
OpenCL, Cg2.2 and User Events
– GPU Task Trace – C-CUDA and OpenCL launches and
memory copies
• Отчетность о времени, событиях, вызовах, API,
загрузке GPU
NVIDIA Corporation, 2010
Parallel Nsight Platform Analysis Demo
NVIDIA Corporation, 2010
Профилирование CUDA
• Базовая информация
– Memory coalescing
– Branch divergence
– Instructions executed
– Warp serialization
• Используются счетчики инструкций и часы на
GPU
NVIDIA Corporation, 2010
Parallel Nsight CUDA Profiler
NVIDIA Corporation, 2010
Parallel Nsight Build
• C++ project system
– Parallel Nsight options
– CUDA vsprop files
• CUDA project system
– NVCC build integration
– Error reporting
– Debugger session
NVIDIA Corporation, 2010
Поддерживаемые OS
Windows Vista SP1
32 bit
64 bit
32 on 64
Windows 7
NVIDIA Corporation, 2010
Системные требования
Удаленная отладка
Desktop
Mobile
NVIDIA Corporation, 2010
Системные требования
Локальная отладка
SLI Multi-OS
Multi-GPU
Full GPU acceleration
Full GPU acceleration
NVIDIA Corporation, 2010
Системные требования
Локальная отладка
Any NVIDIA Optimus laptop
NVIDIA Corporation, 2010
Живое Демо & Q/A
• Настройка Parallel Nsight Project в Visual Studio
• Отладка с Parallel Nsight
• Анализ и профилирование с Parallel Nsight
• Parallel Nsight Memory Checker
Становитесь зарегистрированным разработчиком уже сегодня:
http://developer.nvidia.com/object/nsight.html
NVIDIA Corporation, 2010
Download