This repository contains documentation and examples on how to use NVIDIA tools for profiling, analyzing, and optimizing GPU-accelerated applications for beginners with a starting point. Currently, it covers NVIDIA Nsight Systems and NVIDIA Nsight Compute, and it may include guidance on using NVIDIA Nsight Deep Learning Designer in the future as well.
NVIDIA provides a suite of powerful profiling and analysis tools to help developers optimize, debug, and accelerate GPU applications. This repository aims to provide comprehensive guidance on using these tools effectively in your GPU development workflow.
-
This tool allows you to profile CPU and GPU activities, view timeline traces, and analyze system-wide performance bottlenecks. It helps you gain insights into how your application is utilizing GPU resources.
-
Nsight Compute is a GPU profiler that provides detailed insights into the performance of individual GPU kernels. It helps you identify performance bottlenecks at the kernel level and optimize your GPU code accordingly.
-
NVIDIA Compute Sanitizer is a tool that helps developers (cuda beginners) find and fix programming errors and memory issues in GPU-accelerated applications, improving reliability and performance.
-
Nsight Deep Learning Designer is designed for deep learning model optimization and debugging. While it may not be covered in this repository yet, future updates may include guidance on using this tool for your deep learning projects.
-
Follow this link for downloading
-
You can use this command to verify its existence:
$nsys -v
-
Nsight Compute is bundled within the CUDA Toolkit. If you've already installed the CUDA Toolkit, there's no need to download Nsight Compute separately. If you wish to switch to a different version, you can do so by using the provided link
-
You can use this command to verify its existence:
$ncu -v
- If you haven't installed CUDA Toolkit yet, please follow these steps:
-
If your computer has GPU, follow these steps in NIVIDA to install Cuda Toolkit
-
If you are using Linux, I advise you to watch this video
-
If you are using Windows, this is your video
-
-
If your computer doesn't have GPU
- Don't worry; I'll demonstrate how to set up and use Google Colab to code in here
-
-
Basic knowledge of C/C++ programming.
-
Understanding of parallel programming concepts.
-
Familiarity with the CUDA programming model.
-
Access to a CUDA-capable GPU.
If you are unfamiliar with these concepts, please refer to this series parallel computing
Chapter01: Introduction to Nsight Systems - Nsight Compute
Chapter02: Cuda toolkit - Cuda driver
Chapter03: NVIDIA Compute Sanitizer Part 1
Chapter04: NVIDIA Compute Sanitizer Part 2
Chapter05: Global Memory Coalescing
In addition to the code examples, this repository provides a curated list of resources, including books, tutorials, online courses, and research papers, to further enhance your understanding of using NVIDIA Tools. These resources will help you delve deeper into the subject and explore advanced topics and techniques.