This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
guide:gpu [2020/09/14 11:27] kevin [GPU Queues] |
guide:gpu [2025/08/07 12:51] (current) kevin |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| - | | '' | + | | '' |
| > Jobs that require 1, 2 or 3 GPUs can be allocated to any node, and will share the node if the job does not use all the GPU devices on that node. Jobs that require 4 GPUs can only be allocated to '' | > Jobs that require 1, 2 or 3 GPUs can be allocated to any node, and will share the node if the job does not use all the GPU devices on that node. Jobs that require 4 GPUs can only be allocated to '' | ||
| Line 27: | Line 27: | ||
| ====Access==== | ====Access==== | ||
| - | Access to these GPU node is by PI application only though | + | Principle Investigators apply for GPU access for their Research Programme members through |
| ====Allocation===== | ====Allocation===== | ||
| Line 52: | Line 52: | ||
| ^ Queue name ^ Max. CPUs ^ Max. GPUs ^ PBSPro options | ^ Queue name ^ Max. CPUs ^ Max. GPUs ^ PBSPro options | ||
| - | | **gpu_1** | + | | **gpu_1** |
| - | | **gpu_2** | + | | **gpu_2** |
| - | | **gpu_3** | + | | **gpu_3** |
| - | | **gpu_4** | + | | **gpu_4** |
| - | Note the '' | + | Note the '' |
| ====GPU Queue Limits==== | ====GPU Queue Limits==== | ||
| Line 73: | Line 73: | ||
| <code bash> | <code bash> | ||
| - | qsub -I -q gpu_1 -P PRJT1234 | + | qsub -I -q gpu_1 -P PRJT1234 |
| </ | </ | ||
| **NB:** Replace //'' | **NB:** Replace //'' | ||
| Line 85: | Line 85: | ||
| #PBS -N nameyourjob | #PBS -N nameyourjob | ||
| #PBS -q gpu_1 | #PBS -q gpu_1 | ||
| - | #PBS -l ncpus=10:ngpus=1 | + | #PBS -l select=1:ncpus=4:ngpus=1 |
| #PBS -P PRJT1234 | #PBS -P PRJT1234 | ||
| #PBS -l walltime=4: | #PBS -l walltime=4: | ||
| - | #PBS -o / | ||
| - | #PBS -e / | ||
| #PBS -m abe | #PBS -m abe | ||
| #PBS -M your.email@address | #PBS -M your.email@address | ||
| Line 97: | Line 95: | ||
| echo | echo | ||
| echo `date`: executing CUDA job on host ${HOSTNAME} | echo `date`: executing CUDA job on host ${HOSTNAME} | ||
| + | echo | ||
| + | echo Available GPU devices: $CUDA_VISIBLE_DEVICES | ||
| echo | echo | ||
| Line 102: | Line 102: | ||
| ./ | ./ | ||
| </ | </ | ||
| + | |||
| + | As usual, replace '' | ||
| + | |||
| + | ====GPU Memory==== | ||
| + | |||
| + | Most of the V100 GPUs only have 16GiB of memory. | ||
| + | |||
| + | #PBS -l select=1: | ||
| + | |||
| + | or | ||
| + | |||
| + | #PBS -l select=1: | ||
| + | |||
| + | > Note that asking for a specific node is likely to lead to longer queue times as your job has to wait until that node becomes available. | ||
| + | | ||
| =====Compiling GPU Code===== | =====Compiling GPU Code===== | ||
| Line 107: | Line 122: | ||
| The Nvidia V100 GPUs are programmed using the **CUDA** development tools. | The Nvidia V100 GPUs are programmed using the **CUDA** development tools. | ||
| - | To build a CUDA code (library or application) for the GPU nodes requires loading the appropriate CUDA module before compiling. | + | To build a CUDA code (library or application) for the GPU nodes requires loading the appropriate CUDA module before compiling. |
| - | Download and install the latest driver from [[http://www.nvidia.com/drivers]]. | + | |
| - | Set the environment variable CUDA_FORCE_PTX_JIT=1. | + | < |
| - | Launch your application. | + | chpc/ |
| - | When starting a CUDA application for the first time with the above environment flag, the CUDA driver will JIT-compile | + | chpc/ |
| + | chpc/ | ||
| + | chpc/cuda/11.6/PCIe/11.6 | ||
| + | chpc/ | ||
| + | chpc/ | ||
| + | </ | ||
| + | |||
| + | with version 12.0 the most recent version. | ||
| + | |||
| + | Note that the 11.x version modules are available in two types: | ||
| + | * the '' | ||
| + | * the '' | ||
| - | If you set the environment variable above and then launch your program and it works properly, then you have successfully verified Volta compatibility. | ||
| - | Note: Be sure to unset the CUDA_FORCE_PTX_JIT environment variable when you are done testing. | ||
| ====Further Reading==== | ====Further Reading==== | ||