Skip to content

Commit e801096

Browse files
All Intro to GPUs content
1 parent 7afef3d commit e801096

File tree

58 files changed

+12167
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+12167
-0
lines changed

_toc.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,16 @@ parts:
328328
- file: individual_modules/intermediate_version_control/rewriting_history
329329
- file: individual_modules/intermediate_version_control/further_topics
330330
- file: individual_modules/intermediate_version_control/resources
331+
- file: course_homepages/GPUs
332+
sections:
333+
- file: individual_modules/section_landing_pages/introduction_to_GPUs
334+
sections:
335+
- file: individual_modules/intro_to_GPUs/theory
336+
- file: individual_modules/intro_to_GPUs/spack
337+
- file: individual_modules/intro_to_GPUs/slurm
338+
- file: individual_modules/intro_to_GPUs/conways_game_of_life
339+
- file: individual_modules/intro_to_GPUs/profiling
340+
- file: individual_modules/intro_to_GPUs/temperature_diffusion
331341
- file: individual_modules/bibliography
332342
- caption: Short Courses
333343
chapters:

course_homepages/GPUs.ipynb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "4cd0d89f-b3b7-4360-8ae3-f47c15958c8e",
6+
"metadata": {},
7+
"source": [
8+
"# GPUs\n",
9+
"\n",
10+
"The following set of courses discuss GPUs. The details for each of the courses can be found on their respective pages. \n",
11+
"\n",
12+
"## Introduction to GPUS Self Study Notes\n",
13+
"\n",
14+
"[Clickable Link to Self Study Notes](../individual_modules/section_landing_pages/introduction_to_GPUs.md)\n",
15+
"\n",
16+
"This course provides all the essential tools to leverage GPUs effectively, guiding participants through GPU programming, software management, and performance optimisation while offering direct comparisons with CPU implementations. Through hands-on examples such as Conway’s Game of Life and temperature diffusion, learners explore practical high-performance computing techniques, including profiling, Slurm job scheduling, and Spack-based environment setup. The material bridges theory and practice, equipping participants to translate computational concepts into efficient, scalable workflows on modern HPC systems."
17+
]
18+
}
19+
],
20+
"metadata": {
21+
"kernelspec": {
22+
"display_name": "Python 3 (ipykernel)",
23+
"language": "python",
24+
"name": "python3"
25+
},
26+
"language_info": {
27+
"codemirror_mode": {
28+
"name": "ipython",
29+
"version": 3
30+
},
31+
"file_extension": ".py",
32+
"mimetype": "text/x-python",
33+
"name": "python",
34+
"nbconvert_exporter": "python",
35+
"pygments_lexer": "ipython3",
36+
"version": "3.9.19"
37+
}
38+
},
39+
"nbformat": 4,
40+
"nbformat_minor": 5
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),50,100,2.063467,0.045987
3+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),50,100,2.673722,0.065165
4+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,Naive (CPU),50,100,3.174932,0.073362
5+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),100,100,2.087588,0.051706
6+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),100,100,2.667915,0.065814
7+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,Naive (CPU),100,100,6.653774,0.113325
8+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),250,100,2.225526,0.100086
9+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),250,100,2.658933,0.054842
10+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,Naive (CPU),250,100,30.527410,0.202121
11+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),500,100,2.415106,0.033757
12+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),500,100,2.706837,0.069167
13+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,Naive (CPU),500,100,132.631681,1.444587
14+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),1000,100,4.010868,0.296557
15+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),1000,100,2.652861,0.031628
16+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,Naive (CPU),1000,100,559.772829,11.304633
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),50,100,2.091429,0.075250
3+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),50,100,2.630615,0.026028
4+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),100,100,2.072720,0.052241
5+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),100,100,2.688768,0.059501
6+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),250,100,2.175943,0.053714
7+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),250,100,2.644925,0.036298
8+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),500,100,2.450191,0.075497
9+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),500,100,2.827237,0.052290
10+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),1000,100,3.875571,0.007465
11+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),1000,100,2.691696,0.043639
12+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),2500,100,18.247786,0.085240
13+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),2500,100,2.759881,0.110523
14+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),5000,100,62.562225,0.187020
15+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),5000,100,3.363562,0.281929
16+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,NumPy (CPU),10000,100,239.376334,0.764313
17+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),10000,100,5.186553,0.248861
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),50,100,3.373583,0.826936
3+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),100,100,2.761768,0.088103
4+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),250,100,2.800489,0.023046
5+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),500,100,2.690734,0.057994
6+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),1000,100,2.753769,0.078095
7+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),2500,100,2.790142,0.037062
8+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),5000,100,3.195418,0.053766
9+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),10000,100,5.027194,0.031042
10+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),15000,100,8.442919,0.263919
11+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),20000,100,12.644069,0.093395
12+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),25000,100,18.554928,0.177289
13+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),30000,100,25.315868,0.173294
14+
NVIDIA_A100-SXM4-80GB,AMD_EPYC_7V12_64-Core_Processor,CuPy (GPU),40000,100,42.860808,0.284663
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),50,100,3.640638,0.036798
3+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),50,100,4.266703,0.177343
4+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,Naive (CPU),50,100,4.338512,0.111102
5+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),100,100,3.604704,0.063980
6+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),100,100,4.218450,0.092314
7+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,Naive (CPU),100,100,5.897992,0.069724
8+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),250,100,3.594188,0.045117
9+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),250,100,4.092836,0.101914
10+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,Naive (CPU),250,100,18.074257,0.265221
11+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),500,100,4.050222,0.079530
12+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),500,100,4.181186,0.128703
13+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,Naive (CPU),500,100,70.806250,0.382224
14+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),1000,100,5.090459,0.094832
15+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),1000,100,4.415727,0.013465
16+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,Naive (CPU),1000,100,290.000797,2.489353
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),50,100,3.599059,0.069716
3+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),50,100,4.192222,0.114750
4+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),100,100,3.613343,0.075662
5+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),100,100,4.158486,0.034935
6+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),250,100,3.587423,0.019483
7+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),250,100,4.147545,0.045834
8+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),500,100,3.835621,0.013189
9+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),500,100,4.204011,0.025557
10+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),1000,100,5.177155,0.038985
11+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),1000,100,4.339210,0.021666
12+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),2500,100,24.733530,0.109393
13+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),2500,100,5.307009,0.178610
14+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),5000,100,82.864845,3.439353
15+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),5000,100,7.100434,0.399275
16+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,NumPy (CPU),10000,100,331.884689,4.332655
17+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),10000,100,15.048609,0.088731
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),50,100,3.949557,0.061366
3+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),100,100,3.976500,0.048919
4+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),250,100,3.878019,0.001916
5+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),500,100,3.881949,0.010910
6+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),1000,100,3.929638,0.021552
7+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),2500,100,4.407816,0.030216
8+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),5000,100,6.377364,0.045547
9+
NVIDIA_GeForce_RTX_3070,AMD_Ryzen_9_5950X_16-Core_Processor,CuPy (GPU),10000,100,14.188796,0.045603
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),50,100,1.983749,0.007513
3+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),50,100,2.381084,0.068829
4+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,Naive (CPU),50,100,2.410273,0.049775
5+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),100,100,1.945175,0.039153
6+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),100,100,2.336525,0.002403
7+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,Naive (CPU),100,100,3.904390,0.023506
8+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),250,100,1.971557,0.060440
9+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),250,100,2.469172,0.128338
10+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,Naive (CPU),250,100,14.725007,0.102246
11+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),500,100,2.184285,0.066509
12+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),500,100,2.443785,0.112158
13+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,Naive (CPU),500,100,62.142849,0.301355
14+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),1000,100,2.938326,0.294434
15+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),1000,100,2.359441,0.030637
16+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,Naive (CPU),1000,100,264.626117,13.762658
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
gpu,cpu,method,grid_size,timesteps,mean_time_sec,std_dev_sec
2+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),50,100,1.869059,0.043287
3+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),50,100,2.374159,0.029446
4+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),100,100,1.911878,0.055914
5+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),100,100,2.321233,0.027948
6+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),250,100,1.951020,0.020478
7+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),250,100,2.380752,0.072261
8+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),500,100,2.199362,0.094118
9+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),500,100,2.393087,0.049348
10+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),1000,100,2.864257,0.115768
11+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),1000,100,2.364880,0.022514
12+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),2500,100,16.395034,0.058331
13+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),2500,100,2.688642,0.313695
14+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),5000,100,57.519849,0.447362
15+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),5000,100,2.872334,0.298268
16+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,NumPy (CPU),10000,100,222.391967,1.363038
17+
NVIDIA_H100_NVL,AMD_EPYC_9V84_96-Core_Processor,CuPy (GPU),10000,100,3.946568,0.353731

0 commit comments

Comments
 (0)