CUDA-MEMCHECK. Cuda-memcheck is a functional correctness checking suite included in the CUDA toolkit contains multiple tools that can perform different.

Slides:



Advertisements
Similar presentations
Operating-System Structures
Advertisements

CUDA exercitation. Ex 1 Analyze device properties of each device on the node by using cudaGetDeviceProperties function Check the compute capability, global.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Android Tools & Wireless ADB Αντρέας Λύμπουρας Θεόφιλος Φωκάς Ζαχαρίας Χ’’Λάμπρου.
1 Lecture: Pipelining Extensions Topics: control hazards, multi-cycle instructions, pipelining equations.
HELP GUIDE NEW USER REGISTRATION (SLIDE 2) TAKING A QUIZ (SLIDE 8) REVIEWING A QUIZ (SLIDE 17) GROUP MEMBERSHIP (SLIDE 26) CREATING QUIZZES (SLIDE 31)
Instructor Notes This lecture deals with how work groups are scheduled for execution on the compute units of devices Also explain the effects of divergence.
Hastings Purify: Fast Detection of Memory Leaks and Access Errors.
Programming with CUDA WS 08/09 Lecture 7 Thu, 13 Nov, 2008.
1 IF IDEX MEM L.D F4,0(R2) MUL.D F0, F4, F6 ADD.D F2, F0, F8 L.D F2, 0(R2) WB IF IDM1 MEM WBM2M3M4M5M6M7 stall.
CS 179: GPU Computing Lecture 2: The Basics. Recap Can use GPU to solve highly parallelizable problems – Performance benefits vs. CPU Straightforward.
1 Lecture 4: Advanced Pipelines Data hazards, control hazards, multi-cycle in-order pipelines (Appendix A.4-A.10)
1 Lecture 4: Advanced Pipelines Control hazards, multi-cycle in-order pipelines, static ILP (Appendix A.4-A.10, Sections )
Front end GUI for PsExec, A fast and easy remote deployment utility.
Min Kwan Park Test Tech Lead Visual C# QA team. Fail fast To-Dos for fail fast Analyze issues Information for further action Q&A Agenda.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
CN1260 Client Operating System Kemtis Kunanuraksapong MSIS with Distinction MCT, MCITP, MCTS, MCDST, MCP, A+
W INDOWS BLUE SCREEN OF DEATH AFTER CRASH DEBUGGING Alex Mclean Amy Valley Derek Visch.
Introduction To PHP 20 * Introducing the basics of programming * Discovering variables, loops, arrays and conditions * Integrating HTML and PHP Stations.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
Martin Kruliš by Martin Kruliš (v1.0)1.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Instructor Notes GPU debugging is still immature, but being improved daily. You should definitely check to see the latest options available before giving.
Operating Systems JEOPARDY Computer Repair NetworkOS OS Tasks ConceptsComponentsMisc
DDT Debugging Techniques Carlos Rosales Scaling to Petascale 2010 July 7, 2010.
NVIDIA Fermi Architecture Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Using Microsoft Visual Studio C++ Express 2005 Name: Dr Ju Wang Ashwin Belle Course Resource:
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
ECE 353 Lab 2 Pipeline Simulator. Aims Further experience in C programming Handling strings Further experience in the use of assertions Reinforce concepts.
This is how you invoke the Microsoft Visual Studio 2010 Software. All Programs >> Microsoft Visual Studio 2010.
Introduction to Operating Systems Prepared by: Dhason Operating Systems.
Open project in Microsoft Visual Studio → build program in “Release” mode.
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science The University of Arizona, Tucson
Unit 4: Processes, Threads & Deadlocks June 2012 Kaplan University 1.
Flashback : A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging Sudarshan M. Srinivasan, Srikanth Kandula, Christopher.
LECTURE 10 Pipelining: Advanced ILP. EXCEPTIONS An exception, or interrupt, is an event other than regular transfers of control (branches, jumps, calls,
CSC 4250 Computer Architectures September 22, 2006 Appendix A. Pipelining.
ECE/CS 552: Pipeline Hazards © Prof. Mikko Lipasti Lecture notes based in part on slides created by Mark Hill, David Wood, Guri Sohi, John Shen and Jim.
Photo Recovery How to Get Back your Lost Photos Easily?
Testing, Debugging, and Deploying a Mobile App Lesson 8.
CUDA C/C++ Basics Part 3 – Shared memory and synchronization
Lecture 10 CUDA Instructions
Lecture 18 CUDA Program Implementation and Debugging
Dynamic Scheduling Why go out of style?
Introduction to Operating Systems
Debugging Memory Issues
Crash Dump Analysis - Santosh Kumar Singh.
Chapter 2: System Structures
Introduction to Operating System (OS)
Lecture: Pipelining Extensions
NVIDIA Profiler’s Guide
Fix Windows 10 Blue Screen of Death Error (BSOD)
Exceptions & Multi-cycle Operations
Chapter 2 part #3 C++ Input / Output
Lecture 6: Advanced Pipelines
Introduction to Operating Systems
NVIDIA Fermi Architecture
1. Open Visual Studio 2008.
Starting a project in VisualDSP++
How to improve (decrease) CPI
CSc 352 Debugging Tools Saumya Debray Dept. of Computer Science
Lecture: Pipelining Extensions
Lecture: Pipelining Extensions
Testing, debugging, and using support libraries
Project Instruction Scheduler Assembler for DLX
Introduction to CUDA.
Chapter 2 part #3 C++ Input / Output
CS334: Logisim program lab6
How Memory Leaks Work with Memory Diagram
Makefiles, GDB, Valgrind
Presentation transcript:

CUDA-MEMCHECK

Cuda-memcheck is a functional correctness checking suite included in the CUDA toolkit contains multiple tools that can perform different types of checks 2 parts: memcheck racecheck

MEMCHECK The memcheck- the memory access error and leak detection tool is capable of precisely detecting and attributing: - out of bounds errors - misaligned memory access errors - reports hardware exceptions encountered by the GPU cuda-memcheck [options] app_name [app_options]

MEMCHECK command line options

MEMCHECK reported error types

RACECHECK The racecheck - The shared memory data access hazard detection tool can report shared memory data access hazards that can cause data races A data access hazard is a case where two threads attempt to access the same location in memory resulting in nondeterministic behavior, based on the relative order of the two accesses cuda-memcheck --tool racecheck [memcheck_options] app_name [app_options] The racecheck tool does not perform any memory access error checking.

RACECHECK identifies 3 types of hazard Write-After-Write (WAW) hazards This hazard occurs when two threads attempt to write data to the same memory location. The resulting value in that location depends on the relative order of the two accesses. Read-After-Write (RAW) hazards This hazard occurs when two threads access the same memory location, with one thread performing a read and another a write. In this case, the writing thread is ordered before the reading thread and the value returned to the reading thread is not the original value at the memory location. Write-After-Read (WAR) hazards This hazard occurs when two threads access the same memory location, with one thread performing a read and the other a write. In this case, the reading thread reads the value before the writing thread commits it.

CUDA-MEMCHECK error action

EXAMPLE

Workshop Make a project with example above Run the project without debugging Open command line, go to the folder with the project exe file, type the memcheck command with enabled checking of device heap allocation, leak check and report api errors for the application Make screen shot of the output Create a kernel which would create data access hazard. Make a racecheck report of the application Make screen shot of racecheck report Review information on website memcheck/index.html Add notes what you’ve learned about cuda-memcheck tool Submit workshop