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