Difference between revisions of "Nvidia CUDA Toolkit"
Line 83: | Line 83: | ||
− | === | + | ===Selecting CUDA Arch Flags=== |
When compiling with NVCC, you need to specify the Nvidia architecture that the CUDA files will be compiled for. Please refer to [https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html GPU Feature List] for CUDA naming scheme sm_xy where x denotes the GPU generation and y denotes the version. | When compiling with NVCC, you need to specify the Nvidia architecture that the CUDA files will be compiled for. Please refer to [https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html GPU Feature List] for CUDA naming scheme sm_xy where x denotes the GPU generation and y denotes the version. | ||
Revision as of 01:24, 11 September 2019
Description
cuda website
CUDA™ is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU). With millions of CUDA-enabled GPUs sold to date, software developers, scientists and researchers are finding broad-ranging uses for GPU computing with CUDA.
Required Modules
For single task, non MPI programs
module load cuda/10.0.130 intel/2018.1.163
or
module load cuda/10.0.130 gcc/7.3.0
For MPI programs
module load cuda/10.0.130 intel/2018.1.163 openmpi/4.0.0
System Variables
- HPC_{{#uppercase:cuda}}_DIR
- HPC_{{#uppercase:cuda}}_BIN
- HPC_{{#uppercase:cuda}}_INC
- HPC_{{#uppercase:cuda}}_LIB
Program Development
Environment
For CUDA development please load the "cuda" module. Doing so will ensure that your environment is set up correctly for the use of the CUDA compiler, header files, and libraries. Currently cuda/9.2.88 and cuda/10.0.130 are the only versions supported on hipergator.
$ module spider cuda
-------------------------------------------------------------
cuda:
-------------------------------------------------------------
Description:
NVIDIA CUDA Toolkit
Versions:
cuda/9.2.88
cuda/10.0.130
--------------------------------------------------------------------------------------------------------------------
For detailed information about a specific "cuda" module (including how to load the modules) use the module full name.
For example:
$ module spider cuda/10.0.130
--------------------------------------------------------------------------------------------------------------------
$ module load cuda/10.0.130
$ which nvcc
/apps/compilers/cuda/10.0.130/bin/nvcc
$ printenv | grep CUDA
HPC_CUDA_LIB=/apps/compilers/cuda/10.0.130/lib64
HPC_CUDA_DIR=/apps/compilers/cuda/10.0.130
HPC_CUDA_BIN=/apps/compilers/cuda/10.0.130/bin
HPC_CUDA_INC=/apps/compilers/cuda/10.0.130/include
UFRC_FAMILY_CUDA_VERSION=10.0.130
Selecting CUDA Arch Flags
When compiling with NVCC, you need to specify the Nvidia architecture that the CUDA files will be compiled for. Please refer to GPU Feature List for CUDA naming scheme sm_xy where x denotes the GPU generation and y denotes the version.
Sample GPU Batch Job Scripts
SLURM Job Scripts
See the Example_SLURM-GPU-Job-Scripts page for an example.