Preface
This document describes the NVIDIA Fortran interfaces to cuBLAS, cuFFT, cuRAND, cuSPARSE, and other CUDA Libraries used in scientific and engineering applications built upon the CUDA computing architecture.
Intended Audience
This guide is intended for application programmers, scientists and engineers proficient in programming with the Fortran language. This guide assumes some familiarity with either CUDA Fortran or OpenACC.
Organization
The organization of this document is as follows:
- Introduction
contains a general introduction to Fortran interfaces, OpenACC, CUDA Fortran, and CUDA Library functions
- BLAS Runtime Library
describes the Fortran interfaces to the various cuBLAS libraries
- FFT Runtime Library APIs
describes the module types, definitions and Fortran interfaces to the cuFFT library
- Random Number Runtime APIs
describes the Fortran interfaces to the host and device cuRAND libraries
- Sparse Matrix Runtime APIs
describes the module types, definitions and Fortran interfaces to the cuSPARSE Library
- Matrix Solver Runtime APIs
describes the module types, definitions and Fortran interfaces to the cuSOLVER Library
- Tensor Primitives Runtime APIs
describes the module types, definitions and Fortran interfaces to the cuTENSOR Library
- NVIDIA Collective Communications Library APIs
describes the module types, definitions and Fortran interfaces to the NCCL Library
- NVSHMEM Communication Library APIs
describes the module types, definitions and Fortran interfaces to the NVSHMEM Library
- NVTX Profiling Library APIs
describes the module types, definitions and Fortran interfaces to the NVTX API and Library
- Examples
provides sample code and an explanation of each of the simple examples.
Conventions
This guide uses the following conventions:
- italic
is used for emphasis.
Constant Width
is used for filenames, directories, arguments, options, examples, and for language statements in the text, including assembly language statements.
- Bold
is used for commands.
- [ item1 ]
in general, square brackets indicate optional items. In this case item1 is optional. In the context of p/t-sets, square brackets are required to specify a p/t-set.
- { item2 | item 3 }
braces indicate that a selection is required. In this case, you must select either item2 or item3.
- filename …
ellipsis indicate a repetition. Zero or more of the preceding item may occur. In this example, multiple filenames are allowed.
FORTRAN
Fortran language statements are shown in the text of this guide using a reduced fixed point size.
C++ and C
C++ and C language statements are shown in the test of this guide using a reduced fixed point size.
Terminology
If there are terms in this guide with which you are unfamiliar, see the NVIDIA HPC glossary.
Related Publications
The following documents contain additional information related to OpenACC and CUDA Fortran programming, CUDA, and the CUDA Libraries.
ISO/IEC 1539-1:1997, Information Technology – Programming Languages – FORTRAN, Geneva, 1997 (Fortran 95).
NVIDIA CUDA Programming Guides, NVIDIA. Available online at docs.nvidia.com/cuda.
NVIDIA HPC Compiler User’s Guide. Available online at docs.nvidia.com/hpc-sdk.