Build Scalable GPU-Accelerated Applications. Faster.
Researchers, scientists, and developers are advancing science by accelerating their high-performance computing (HPC) applications on NVIDIA GPUs, which have the computational capacity to tackle today’s most challenging scientific problems. From computational science to AI, GPU-accelerated applications are delivering groundbreaking scientific discoveries. And popular languages like C, C++, Fortran, and Python are being used to develop, optimize, and deploy these applications.
GPU Programming for HPC
NVIDIA GPUs can be programmed much like CPUs. Start by substituting GPU-optimized math libraries. Add additional acceleration using the standard C++ parallel algorithms and Fortran language features. Use pragmas and directives to fill any standard language gaps, and finally, optimize performance with CUDA®.
Drop-in GPU-accelerated libraries are an easy replacement for CPU libraries.
Multi-GPU and multi-node aware, NVIDIA GPU-accelerated libraries provide the best performance for the most common patterns in HPC applications. Select from a wide variety of libraries optimized for commonly used computing operations.
Parallel features in standard C++ and Fortran can map routines to either the cores of a multi-core CPU or a GPU.
The NVIDIA C++17 compilers add support for execution policies on the standard template library (STL), and the NVIDIA Fortran 2008 compiler’s DO CONCURRENT construct allows loops to iterate without interdependencies.
Directive-based programming models provide an easy on-ramp to parallel computing on GPUs, CPUs, and other devices.
If standard languages don’t have the flexibility or features you need to get good performance, augment with directives and remain portable to other compilers and platforms.
CUDA is a parallel computing platform and programming model designed to deliver the most flexibility and performance for GPU-accelerated applications.
To maximize performance and flexibility, get the most out of the GPU hardware by coding directly in CUDA C/C++ or CUDA Fortran.
The NVIDIA HPC SDK
A Comprehensive Suite of Fortran, C, and C++ Development Tools and Libraries
The NVIDIA HPC SDK is a comprehensive toolbox for GPU accelerating HPC modeling and simulation applications. It includes the C, C++, and Fortran compilers, libraries, and analysis tools necessary for developing HPC applications on the NVIDIA platform. Use the NVIDIA HPC SDK to maximize your productivity and the performance and portability of your code.
Scientists and Researchers
With scientific discoveries taking priority, domain scientists are utilizing GPUs to achieve faster results while minimizing programming efforts. Scientists in fields such as computational fluid dynamics, climate, weather and ocean, molecular dynamics, quantum chemistry, and physics, among others, see 3–10X code speedups on GPUs.
"Today, researchers can take advantage of GPUs to approach computational models for drug discovery and design that are accurate, affordable, and achievable. With adequate computational resources, it is now possible to optimize a lead in days or weeks, instead of months."Taisung Lee, Associate Research Professor, Rutgers University, and Co-Developer of Amber
- Check if your application is already accelerated on GPUs. The list is available in the GPU Applications Catalog and containers on NVIDIA NGC™.
- If your code isn’t already GPU-accelerated, download the HPC SDK. It includes everything you’ll need to port your HPC C++ or Fortran applications to run on GPUs.
Application developers are looking to achieve mission-critical productivity in scientific discovery. They strive to be efficient, simplify support to provide code longevity, and get maximum performance for their users. Across a variety of domains like computational fluid dynamics, computational chemistry, bioinformatics, and physics, GPUs accelerate applications with the use of programming models and tools designed to maintain productivity.
"We believe that the improvements in speed and cost from GPU acceleration will jumpstart the next evolution of the turbomachinery design system. Faster and more powerful GPUs will make analyses that are currently unachievable well within reach in the next few years."Michael Ni, CEO, ADSCFD
- Download the HPC SDK. It includes everything you’ll need to port your HPC C++ or Fortran applications to run on GPUs.
Educators & Facilitators
Educators are tasked with educating students, computer scientists, and domain researchers on parallel programming and helping their constituents to start accelerating or continue optimizing their codes on GPUs. Facilitators work with scientists to help accelerate their codes on GPUs.
NVIDIA makes education curriculum widely available through hands-on resources, including NVIDIA Deep Learning Institute (DLI) training, teaching kits, hackathons and bootcamps, and more.
"I teach parallel programming, which encompasses GPU programming, and find teaching materials that are readily available very helpful and resourceful. These teaching materials and the robust set of GPU libraries and tools greatly benefit both my course and my interdisciplinary research by enabling GPU-acceleration of scientific codes."Sunita Chandrasekaran, Assistant Professor, University of Delaware
To Learn More
- Check out teaching materials and hands-on workshops from the NVIDIA DLI. They offer hands-on training in accelerated computing and AI as well as NVIDIA Teaching Kits, which are complete course solutions, including easy-to-use curriculum, for a variety of academic disciplines.
- Download free OpenACC training materials from NGC that include Jupyter notebooks, slides, and github access.
- Invite your teams to attend or mentor at GPU Hackathons and bootcamps or host one to jump-start acceleration of the scientific codes integral to your organization. These events can help your team master GPU-programming skills through extensive hands-on experience and collaboration with real-life codes and data.
- See the NVIDIA Developer Blogs for in-depth articles covering a broad range of HPC programming topics.
Facilitators and IT managers are critical to the success of HPC scientists accelerating their codes on GPUs. HPC applications require a unique set of robust hardware and software, as well as up-to-date tools, drivers, compilers, and more that require support.
"Sometimes porting code to the GPU can be daunting to those who don’t have the experience. Our team often works with researchers to make the porting process as easy and painless as possible. The variety and quality of training materials, hackathons, tools, and compilers available makes our work efficient, helps bring domain researchers up to speed quickly, and ultimately helps advance science."Ian Cosden, Manager of the Research Software Engineering Group, Princeton