1. Overview

The NVIDIA GPU Library Advisor is a cross-platform analysis tool that identifies opportunities to improve application performance by replacing existing CPU libraries with GPU-accelerated versions of those libraries. It is designed as a simple to use tool that provides first level information by listing GPU-accelerated library opportunities. It is recommended that a Profiler like NVProf be used to determine the performance impact of replacing a CPU library with the GPU-accelerated version.

Many standard libraries like (MKL) BLAS, FFTW and Intel IPP have GPU-accelerated versions that provide significant performance improvement. For example the cuBLAS library can directly replace the MKL BLAS library and deliver 6x to 17x faster performance, depending on your BLAS usage. The GPU Library Advisor identifies these performance improvement opportunities without requiring the application source-code to be modified or the application to be rebuilt.

2. Usage

Here's how to use GPU Library Advisor to analyze your CPU application:
gpu-library-advisor [options] [application] [app. options]
           
Example for a CPU BLAS matrix-matrix multiplication:
$ ./gpu-library-advisor ./cpu_blas 1024 1024
CPU Matrix Multiply. Done.

GPU Library Advisor detected that your application uses functions from BLAS level 3 that can be accelerated using NVIDIA CUDA. The NVIDIA NVBLAS library is a GPU-accelerated version of the complete standard BLAS library that often delivers faster performance than optimized implementations on high-end CPUs. The NVBLAS library is freely available and can be used without recompilation of your application. For documentation on the NVBLAS library, please see http://docs.nvidia.com/cuda/nvblas. For more information on the performance and the various BLAS library options available from NVIDIA for GPU acceleration, please see https://developer.nvidia.com/cublas.
            
GPU Library Advisor is designed to be very simple to use and in most cases GPU Library Advisor does not require any command line arguments. However, the following options are available:
--help, -h      Print this help information.
--version, -V   Print version information.
           

Notices

Notice

ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.

Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication of otherwise under any patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all other information previously supplied. NVIDIA Corporation products are not authorized as critical components in life support devices or systems without express written approval of NVIDIA Corporation.

Trademarks

NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.