Using CUDA

What is CUDA?

CUDA stands for Compute Unified Device Architecture. CUDA is a parallel computing architecure and C based programming language for general purpose computing on NVIDIA GPU’s

Which department machines support CUDA?

Below is a list of machines with higher-end CUDA cards:

HOST GPU(s) LOCATION
falcon cluster 8 x A100 80Gb SR 475
falcon cluster 12 x RTX 3090 24Gb SR 475
anchovy RTX 4000 Ada 20Gb Lab 325
barracuda RTX 4000 Ada 20Gb Lab 325
blowfish RTX 4000 Ada 20Gb Lab 325
bonito RTX 4000 Ada 20Gb Lab 325
brill RTX 4000 Ada 20Gb Lab 325
bullhead RTX 4000 Ada 20Gb Lab 325
char RTX 4000 Ada 20Gb Lab 325
cod RTX 4000 Ada 20Gb Lab 325
dorado RTX 4000 Ada 20Gb Lab 325
eel RTX 4000 Ada 20Gb Lab 325
flounder RTX 4000 Ada 20Gb Lab 325
grouper RTX 4000 Ada 20Gb Lab 325
halibut RTX 4000 Ada 20Gb Lab 325
herring RTX 4000 Ada 20Gb Lab 325
mackerel RTX 4000 Ada 20Gb Lab 325
marlin RTX 4000 Ada 20Gb Lab 325
perch RTX 4000 Ada 20Gb Lab 325
pollock RTX 4000 Ada 20Gb Lab 325
sardine RTX 4000 Ada 20Gb Lab 325
shark RTX 4000 Ada 20Gb Lab 325
sole RTX 4000 Ada 20Gb Lab 325
swordfish RTX 4000 Ada 20Gb Lab 325
tarpon RTX 4000 Ada 20Gb Lab 325
turbot RTX 4000 Ada 20Gb Lab 325
tuna RTX 4000 Ada 20Gb Lab 325
wahoo RTX 4000 Ada 20Gb Lab 325
earth Titan V 12Gb SR 475
jupiter Titan V 12Gb SR 475
mars Titan V 12Gb SR 475
mercury Titan V 12Gb SR 475
neptune Titan V 12Gb SR 475
saturn Titan V 12Gb SR 475
uranus Titan V 12Gb SR 475
venus Titan V 12Gb SR 475
winter-park Titan V 12Gb SR 475
wolf-creek Titan V 12Gb SR 475
lamborghini GeForce GTX TITAN X 12Gb SR 475
lotus GeForce GTX TITAN X 12Gb SR 475
maserati GeForce GTX TITAN X 12Gb SR 475
porsche GeForce GTX TITAN X 12Gb SR 475
ahsoka GeForce RTX 3080 10Gb Lab 225
anakin GeForce RTX 3080 10Gb Lab 225
boba GeForce RTX 3080 10Gb Lab 225
bo-katan GeForce RTX 3080 10Gb Lab 225
chopper GeForce RTX 3080 10Gb Lab 225
clan-wren GeForce RTX 3080 10Gb Lab 225
ezra GeForce RTX 3080 10Gb Lab 225
grogu GeForce RTX 3080 10Gb Lab 225
hera GeForce RTX 3080 10Gb Lab 225
hondo GeForce RTX 3080 10Gb Lab 225
kallus GeForce RTX 3080 10Gb Lab 225
kanan GeForce RTX 3080 10Gb Lab 225
kuiil GeForce RTX 3080 10Gb Lab 225
loth-cats GeForce RTX 3080 10Gb Lab 225
mando GeForce RTX 3080 10Gb Lab 225
nightsisters GeForce RTX 3080 10Gb Lab 225
obi-wan GeForce RTX 3080 10Gb Lab 225
omega GeForce RTX 3080 10Gb Lab 225
palpatine GeForce RTX 3080 10Gb Lab 225
rex GeForce RTX 3080 10Gb Lab 225
sabine GeForce RTX 3080 10Gb Lab 225
satine GeForce RTX 3080 10Gb Lab 225
tarkin GeForce RTX 3080 10Gb Lab 225
thrawn GeForce RTX 3080 10Gb Lab 225
ventress GeForce RTX 3080 10Gb Lab 225
zeb GeForce RTX 3080 10Gb Lab 225
kale GeForce GTX 1060p 6GB SR 475
kelp GeForce GTX 1060p 6GB SR 475
leek GeForce GTX 1060p 6GB SR 475
lettuce GeForce GTX 1060p 6GB SR 475
mushroom GeForce GTX 1060p 6GB SR 475
okra GeForce GTX 1060p 6GB SR 475
onion GeForce GTX 1060p 6GB SR 475
parsley GeForce GTX 1060p 6GB SR 475
parsnip GeForce GTX 1060p 6GB SR 475
pea GeForce GTX 1060p 6GB SR 475
pepper GeForce GTX 1060p 6GB SR 475
potato GeForce GTX 1060p 6GB SR 475
pumpkin GeForce GTX 1060p 6GB SR 475
radish GeForce GTX 1060p 6GB SR 475
rhubarb GeForce GTX 1060p 6GB SR 475
romanesco GeForce GTX 1060p 6GB SR 475
rutabaga GeForce GTX 1060p 6GB SR 475
shallot GeForce GTX 1060p 6GB SR 475
spinach GeForce GTX 1060p 6GB SR 475
squash GeForce GTX 1060p 6GB SR 475
tomatillo GeForce GTX 1060p 6GB SR 475
tomato GeForce GTX 1060p 6GB SR 475
turnip GeForce GTX 1060p 6GB SR 475
wBen-Hurbi GeForce GTX 1060p 6GB SR 475
yam GeForce GTX 1060p 6GB SR 475
zucchini GeForce GTX 1060p 6GB SR 475
bentley GeForce GTX 980 4Gb SR 475
bugatti GeForce GTX 980 4Gb SR 475
ferrari GeForce GTX 980 4Gb SR 475
jaguar GeForce GTX 980 4Gb SR 475
poppy 4 x NVIDIA Ada L40S 48GB SR 375 (exclusive access, Mangal)
tarski NVIDIA Ada L40S 48GB SR 375 (exclusive access, Krishnaswamy)
carnap 2 x RTX A6000 48Gb SR 375 (exclusive access, Krishnaswamy)
histone1 2 x RTX 4090 24Gb SR 375 (exclusive access, Ben-Hur)
histone2 2 x RTX 4090 24Gb SR 375 (exclusive access, Ben-Hur)
chopper 2 x RTX 3090 24Gb SR 375 (exclusive access, Blanchard)
nami 2 x RTX 3090 24Tb SR 375 (exclusive access, Blanchard)
sanjii 2 x RTX 3090 24Tb 235? (exclusive access, Blanchard)
usopp 2 x RTX 3090 24Tb SR 375 (xeclusive access, Blanchard)
zoro 2 x RTX 3090 24Tb SR 375 (exclusive access, Blanchard)
buggy RTX 3090 24Gb 235? (exclusive access, Blanchard)
farley RTX 3090 24Gb SR 375 (exclusive access, Anderson)
luffy 8 x GeForce RTX 2080 Ti 11G SR 475 (exclusive access, Blanchard)
aqua 4 x TITAN Xp 12Gb SR 475 (exclusive access, Draper)
teal 4 x TITAN Xp 12Gb SR 475 (exclusive access, Draper)
samual 1 x TITAN X 12Gb RM 444 (exclusive access, Anderson)
phire Tesla K20c SR 475 (exclusive access)
damavand Tesla K20c SR 475 (exclusive access)

How do I configure my shell environment for CUDA development?

The NVIDIA graphics driver and CUDA compilier are already installed on machines that support CUDA. However, one must set some environment variables in order to run and write CUDA enabled programs.

This can be done using environment modules.

First, to see what versions of CUDA are available:

$ module avail cuda
------------------- /usr/local/modules -----------------------------------
cuda/7.5  cuda/9.1   cuda/10.1  cuda/11.0  cuda/11.2  cuda/11.4  cuda/11.7
cuda/8.0  cuda/10.0  cuda/10.2  cuda/11.1  cuda/11.3  cuda/11.6

To load the latest version of CUDA:

$ module load cuda

Or to load a specific version of CUDA:

$ module load cuda/11.4

Confirm:

$ module list
Currently Loaded Modulefiles:
 1) cuda/11.4

And:

$ nvcc --version | grep release
Cuda compilation tools, release 11.4, V11.4.152
How can I switch to a different version of CUDA?

If you have loaded a CUDA version and would like to switch to a different version:

$ module switch cuda/<VERSION>