The NVIDIA tool for debugging CUDA applications running on Linux and Mac, providing developers with a mechanism for debugging CUDA applications running on actual hardware. CUDA-GDB is an extension to the x86-64 port of GDB, the GNU Project debugger. Dont do it the hard way Skip Ahead to Windows Flash Guide if you get board of the back story lol. I stumbled across this post (from 2010) after realising my two and now rather ancient 7600gt cards were running different bios versions. Nvidia geforce optimus free download - NVIDIA GeForce FX 5200, NVIDIA GeForce FX 5500, NVIDIA GeForce Go 6100, and many more programs.
- Release Notes
- The Release Notes for the CUDA Toolkit.
- EULA
- The End User License Agreements for the NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA Display Driver, and NVIDIA NSight (Visual Studio Edition).
With nVidia Optimus, the setup is that the built-in display of a laptop is connected to the integrated GPU, and the external display port is connected to the discrete GPU. If you need to render stuff using the discrete GPU to the built-in display, the discrete GPU is 'slaved' to the integrated one. The automatic graphic switching capabilities in the new 15- and 17-inch MacBook Pros are accomplished with a solution created entirely by Apple, and do not rely on Nvidia's established Optimus.
Installation Guides
- Quick Start Guide
- This guide provides the minimal first-steps instructions for installation and verifying CUDA on a standard system.
- Installation Guide Windows
- This guide discusses how to install and check for correct operation of the CUDA Development Tools on Microsoft Windows systems.
- Installation Guide Mac OS X
- This guide discusses how to install and check for correct operation of the CUDA Development Tools on Mac OS X systems.
- Installation Guide Linux
- This guide discusses how to install and check for correct operation of the CUDA Development Tools on GNU/Linux systems.
Programming Guides
- Programming Guide
- This guide provides a detailed discussion of the CUDA programming model and programming interface. It then describes the hardware implementation, and provides guidance on how to achieve maximum performance. The appendices include a list of all CUDA-enabled devices, detailed description of all extensions to the C++ language, listings of supported mathematical functions, C++ features supported in host and device code, details on texture fetching, technical specifications of various devices, and concludes by introducing the low-level driver API.
- Best Practices Guide
- This guide presents established parallelization and optimization techniques and explains coding metaphors and idioms that can greatly simplify programming for CUDA-capable GPU architectures. The intent is to provide guidelines for obtaining the best performance from NVIDIA GPUs using the CUDA Toolkit.
- Maxwell Compatibility Guide
- This application note is intended to help developers ensure that their NVIDIA CUDA applications will run properly on GPUs based on the NVIDIA Maxwell Architecture. This document provides guidance to ensure that your software applications are compatible with Maxwell.
- Pascal Compatibility Guide
- This application note is intended to help developers ensure that their NVIDIA CUDA applications will run properly on GPUs based on the NVIDIA Pascal Architecture. This document provides guidance to ensure that your software applications are compatible with Pascal.
- Volta Compatibility Guide
- This application note is intended to help developers ensure that their NVIDIA CUDA applications will run properly on GPUs based on the NVIDIA Volta Architecture. This document provides guidance to ensure that your software applications are compatible with Volta.
- Turing Compatibility Guide
- This application note is intended to help developers ensure that their NVIDIA CUDA applications will run properly on GPUs based on the NVIDIA Turing Architecture. This document provides guidance to ensure that your software applications are compatible with Turing.
- Kepler Tuning Guide
- Kepler is NVIDIA's 3rd-generation architecture for CUDA compute applications. Applications that follow the best practices for the Fermi architecture should typically see speedups on the Kepler architecture without any code changes. This guide summarizes the ways that applications can be fine-tuned to gain additional speedups by leveraging Kepler architectural features.
- Maxwell Tuning Guide
- Maxwell is NVIDIA's 4th-generation architecture for CUDA compute applications. Applications that follow the best practices for the Kepler architecture should typically see speedups on the Maxwell architecture without any code changes. This guide summarizes the ways that applications can be fine-tuned to gain additional speedups by leveraging Maxwell architectural features.
- Pascal Tuning Guide
- Pascal is NVIDIA's 5th-generation architecture for CUDA compute applications. Applications that follow the best practices for the Maxwell architecture should typically see speedups on the Pascal architecture without any code changes. This guide summarizes the ways that applications can be fine-tuned to gain additional speedups by leveraging Pascal architectural features.
- Volta Tuning Guide
- Volta is NVIDIA's 6th-generation architecture for CUDA compute applications. Applications that follow the best practices for the Pascal architecture should typically see speedups on the Volta architecture without any code changes. This guide summarizes the ways that applications can be fine-tuned to gain additional speedups by leveraging Volta architectural features.
- Turing Tuning Guide
- Turing is NVIDIA's 7th-generation architecture for CUDA compute applications. Applications that follow the best practices for the Pascal architecture should typically see speedups on the Turing architecture without any code changes. This guide summarizes the ways that applications can be fine-tuned to gain additional speedups by leveraging Turing architectural features.
- PTX ISA
- This guide provides detailed instructions on the use of PTX, a low-level parallel thread execution virtual machine and instruction set architecture (ISA). PTX exposes the GPU as a data-parallel computing device.
- Developer Guide for Optimus
- This document explains how CUDA APIs can be used to query for GPU capabilities in NVIDIA Optimus systems.
- Video Decoder
- NVIDIA Video Decoder (NVCUVID) is deprecated. Instead, use the NVIDIA Video Codec SDK (https://developer.nvidia.com/nvidia-video-codec-sdk).
- PTX Interoperability
- This document shows how to write PTX that is ABI-compliant and interoperable with other CUDA code.
- Inline PTX Assembly
- This document shows how to inline PTX (parallel thread execution) assembly language statements into CUDA code. It describes available assembler statement parameters and constraints, and the document also provides a list of some pitfalls that you may encounter.
- CUDA Occupancy Calculator
- The CUDA Occupancy Calculator allows you to compute the multiprocessor occupancy of a GPU by a given CUDA kernel.
CUDA API References
- CUDA Runtime API
- The CUDA runtime API.
- CUDA Driver API
- The CUDA driver API.
- CUDA Math API
- The CUDA math API.
- cuBLAS
- The cuBLAS library is an implementation of BLAS (Basic Linear Algebra Subprograms) on top of the NVIDIA CUDA runtime. It allows the user to access the computational resources of NVIDIA Graphical Processing Unit (GPU), but does not auto-parallelize across multiple GPUs.
- NVBLAS
- The NVBLAS library is a multi-GPUs accelerated drop-in BLAS (Basic Linear Algebra Subprograms) built on top of the NVIDIA cuBLAS Library.
- nvJPEG
- The nvJPEG Library provides high-performance GPU accelerated JPEG decoding functionality for image formats commonly used in deep learning and hyperscale multimedia applications.
- cuFFT
- The cuFFT library user guide.
- nvGRAPH
- The nvGRAPH library user guide.
- cuRAND
- The cuRAND library user guide.
- cuSPARSE
- The cuSPARSE library user guide.
- NPP
- NVIDIA NPP is a library of functions for performing CUDA accelerated processing. The initial set of functionality in the library focuses on imaging and video processing and is widely applicable for developers in these areas. NPP will evolve over time to encompass more of the compute heavy tasks in a variety of problem domains. The NPP library is written to maximize flexibility, while maintaining high performance.
- NVRTC (Runtime Compilation)
- NVRTC is a runtime compilation library for CUDA C++. It accepts CUDA C++ source code in character string form and creates handles that can be used to obtain the PTX. The PTX string generated by NVRTC can be loaded by cuModuleLoadData and cuModuleLoadDataEx, and linked with other modules by cuLinkAddData of the CUDA Driver API. This facility can often provide optimizations and performance not possible in a purely offline static compilation.
- Thrust
- The Thrust getting started guide.
- cuSOLVER
- The cuSOLVER library user guide.
Miscellaneous
- CUDA Samples
- This document contains a complete listing of the code samples that are included with the NVIDIA CUDA Toolkit. It describes each code sample, lists the minimum GPU specification, and provides links to the source code and white papers if available.
- CUDA Demo Suite
- This document describes the demo applications shipped with the CUDA Demo Suite.
- CUPTI
- The CUPTI-API. The CUDA Profiling Tools Interface (CUPTI) enables the creation of profiling and tracing tools that target CUDA applications.
- Debugger API
- The CUDA debugger API.
- Compute Sanitizer API
- The Compute Sanitizer API is for creating the sanitizing and tracing tools for CUDA applications.
- GPUDirect RDMA
- A technology introduced in Kepler-class GPUs and CUDA 5.0, enabling a direct path for communication between the GPU and a third-party peer device on the PCI Express bus when the devices share the same upstream root complex using standard features of PCI Express. This document introduces the technology and describes the steps necessary to enable a GPUDirect RDMA connection to NVIDIA GPUs within the Linux device driver model.
- vGPU
- vGPUs that support CUDA.
Tools
- NVCC
- This is a reference document for nvcc, the CUDA compiler driver. nvcc accepts a range of conventional compiler options, such as for defining macros and include/library paths, and for steering the compilation process.
- CUDA-GDB
- The NVIDIA tool for debugging CUDA applications running on Linux and Mac, providing developers with a mechanism for debugging CUDA applications running on actual hardware. CUDA-GDB is an extension to the x86-64 port of GDB, the GNU Project debugger.
- CUDA-MEMCHECK
- CUDA-MEMCHECK is a suite of run time tools capable of precisely detecting out of bounds and misaligned memory access errors, checking device allocation leaks, reporting hardware errors and identifying shared memory data access hazards.
- Nsight Eclipse Edition
- Nsight Eclipse Edition getting started guide
- Nsight Eclipse Plugins Installation Guide
- Nsight Eclipse Plugins Installation Guide
- Nsight Eclipse Plugins Edition
- Nsight Eclipse Plugins Edition getting started guide
- Nsight Compute
- The NVIDIA Nsight Compute is the next-generation interactive kernel profiler for CUDA applications. It provides detailed performance metrics and API debugging via a user interface and command line tool.
- Profiler
- This is the guide to the Profiler.
- CUDA Binary Utilities
- The application notes for cuobjdump, nvdisasm, and nvprune.
- GPU Library Advisor
- The NVIDIA GPU Library Advisor is no longer supported. For documentation on using the GPU Library Advisor in prior releases of CUDA, see the documentation archive at
White Papers
- Floating Point and IEEE 754
- A number of issues related to floating point accuracy and compliance are a frequent source of confusion on both CPUs and GPUs. The purpose of this white paper is to discuss the most common issues related to NVIDIA GPUs and to supplement the documentation in the CUDA C++ Programming Guide.
- Incomplete-LU and Cholesky Preconditioned Iterative Methods
- In this white paper we show how to use the cuSPARSE and cuBLAS libraries to achieve a 2x speedup over CPU in the incomplete-LU and Cholesky preconditioned iterative methods. We focus on the Bi-Conjugate Gradient Stabilized and Conjugate Gradient iterative methods, that can be used to solve large sparse nonsymmetric and symmetric positive definite linear systems, respectively. Also, we comment on the parallel sparse triangular solve, which is an essential building block in these algorithms.
Application Notes
- CUDA for Tegra
- This application note provides an overview of NVIDIA® Tegra® memory architecture and considerations for porting code from a discrete GPU (dGPU) attached to an x86 system to the Tegra® integrated GPU (iGPU). It also discusses EGL interoperability.
Compiler SDK
- libNVVM API
- The libNVVM API.
- libdevice User's Guide
- The libdevice library is an LLVM bitcode library that implements common functions for GPU kernels.
- NVVM IR
- NVVM IR is a compiler IR (internal representation) based on the LLVM IR. The NVVM IR is designed to represent GPU compute kernels (for example, CUDA kernels). High-level language front-ends, like the CUDA C compiler front-end, can generate NVVM IR.
If you’re usingNvidia Optimus on Linux you switch between discrete and integrated graphics using the ‘mate-optimus’ utility.
This panel-based applet even supports the Nvidia PRIME offloading feature included in the latest NVIDIA 435.x Linux beta driver and the Nvidia 435.21 Linux stable drivers — both of which are now available in daily builds of Ubuntu 19.10.
Nvidia PRIME offloading (for those who’ve not heard of it) is a useful feature that allows Linux users on multi-GPU set-ups (i.e. laptops with Nvidia Optimus) to offload specific intensive tasks to the discrete NVIDIA GPU, while using the lower-power integrated Intel GPU used to handle everything else.
It’s a handy feature, and one that’s now easier to use on the Cinnamon, GNOME Shell, Budgie and MATE desktops thanks to the mate-optimus
indicator applet, developed by Ubuntu MATE’s project lead Martin Wimpress.
The latest version of ‘mate-optimus’ is the 19.10.x series targeted at Ubuntu 19.10. Among the changes the applet has seen over the past week:
- Support for NVIDIA On-Demand
- Displays active OpenGL renderer
- Log out prompt when switching GPUs on supported desktops
- Refactored GPU capability detection and made it more robust
- Added an About dialog
If you’re currently running an Ubuntu 19.10 daily build you can install the latest version of mate-optimus using your preferred software tool, or using the terminal command sudo apt install mate-optimus
.
If you’re running Ubuntu 18.04 LTS or 19.04 you can install an older version of the mate-optimus applet direct from the repos.. While those versions do not boast the very latest changes (as listed above) the applet still offers a functional, user-friendly way to switch between discrete and integrated graphics with Nvidia Optimus.
Nvidia Optimus Software Download
Finally: the indicator will ONLY show up on systems that support Nvidia Optimus, with the required Linux drivers installed and enabled.