![]() ![]() Some options for the Compute Sanitizer command-line interface Compiling for Compute SanitizerĬompute Sanitizer can successfully analyze and check GPU applications without any special compilation flags. Normally, Compute Sanitizer writes directly to stdout.Ĭreates a CUDA coredump when an error is detected, which can be loaded up later into the CUDA debugger cuda-gdb for further analysis. Sets a file that Compute Sanitizer writes to. Skips N kernel launches before beginning checking. Useful for large, complex code to manage testing and tool output. OptionĬontrols which kernels are checked by Compute Sanitizer tools. For more information, see Command-Line Options in the Compute Sanitizer User Manual. Table 1 shows a selection of the Compute Sanitizer options. When you have the toolkit installed, launch Compute Sanitizer from the command line, using the following format: $ compute-sanitizer app_name For more information and a link to download the toolkit, see NVIDIA Compute Sanitizer. Integration with NVIDIA Tools Extension ( NVTX)Ĭompute Sanitizer is available for free as part of the CUDA Toolkit.An API to enable the creation of sanitizing and tracing tools that target CUDA applications.synccheck: For thread synchronization hazard detectionĪs well as these tools, Compute Sanitizer has some additional capabilities:. ![]() initcheck: Uninitialized device global memory access detection tool.racecheck: Shared memory data access hazard detection tool.memcheck: For memory access error and leak detection.There are four main tools in Compute Sanitizer: Compute Sanitizer takes its place, with additional capabilities such as improved performance and support for Microsoft hardware-accelerated GPU scheduling, as well as much broader support for features beyond memory checking. This tool was deprecated in CUDA 11.6 and has been removed in CUDA 12.0 and later. You may already be familiar with one tool for debugging: cuda-memcheck. All these could manifest as bugs but with behavior that would not necessarily lead directly to the root cause in the source code. This is especially true in parallel execution environments where the source of a bug can be transient.Ĭompute Sanitizer excels at root-cause debugging by checking your code for memory access violations, race conditions, access to uninitialized variables, and synchronization errors. Resolving it is usually easier than tracking it down. ![]() A key debugging challenge is finding the bug’s root cause. What is Compute Sanitizer?Ĭompute Sanitizer is a suite of tools that can perform different types of checks on the functional correctness of your code. We explore the features and walk you through examples that show its use, so that you can save time and effort in the debugging process while improving the reliability and performance of your CUDA applications.Ĭompute Sanitizer is bundled in the CUDA Toolkit. This post looks at one such suite of debugging tools: NVIDIA Compute Sanitizer. There are various tools and techniques available to developers to help make debugging simpler and more efficient. Parallel programming with thousands of threads can introduce new dimensions to the already complex debugging process. ![]() Debugging code is a crucial aspect of software development but can be both challenging and time-consuming. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |