Skip to content

Commit 5ce8e6d

Browse files
committed
third draft of docs
1 parent 524fe0f commit 5ce8e6d

File tree

1 file changed

+35
-10
lines changed

1 file changed

+35
-10
lines changed

docs/eessi.md

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,55 @@
11
# EESSI Guide
22

33
## How to Load EESSI
4-
EESSI can be initialised using the following method.
54

6-
The EESSI environment is sourced (in a non-reversible way) by running:
5+
The EESSI environment can be initialise by running:
6+
77
```[bash]
88
source /cvmfs/software.eessi.io/versions/2023.06/init/bash
99
```
1010

1111
This is non-reversible because it:
12+
1213
- Changes your `$PATH`, `$MODULEPATH`, `$LD_LIBRARY_PATH`, and other critical environment variables.
1314
- Sets EESSI-specific variables such as `EESSI_ROOT`.
1415

15-
This is the recommended method because it:
16-
- Detects your CPU architecture and OS.
16+
However, it is the recommended method because it:
17+
18+
- Detects system CPU architecture and OS.
1719
- Detects and configures GPU support.
1820
- Prepares the full EESSI software stack.
1921
- Sets up Lmod (environment module system).
2022

21-
The [EESSI docs](https://www.eessi.io/docs/using_eessi/setting_up_environment/) offer another method to load EESSI, in addition to one above. The alternative method only initialises the Lmod module system and does not load a platform-specific setup. For these reasons, it is recommened to use the method detailed above.
23+
The [EESSI docs](https://www.eessi.io/docs/using_eessi/setting_up_environment/) offer another method to load EESSI. This alternative method only initialises the Lmod module system and does not load a platform-specific setup. For these reasons, it is recommended to use the method detailed above.
2224

2325
Successful environment setup will show `{EESSI 2023.06}` at the start of your CLI.
2426

25-
To deactivate your EESSI environment you can either restart your shell using `exec bash` or exit the shell by `exit`.
27+
To deactivate your EESSI environment you can either restart your shell using `exec bash` or exit the shell by running `exit`.
2628

2729
## GPU Support with EESSI
28-
To enable GPU support, you need a site-specific build that has CUDA enabled. For a guide on how to do this, please refer to [docs/image-build.md](../image-build.md).
30+
31+
To enable GPU support, the cluster must be running a site-specific image build that has CUDA enabled. For a guide on how to do this, please refer to [docs/image-build.md](../image-build.md).
2932

3033
### Using GPUs
34+
3135
All CUDA-enabled software in EESSI expects CUDA drivers in a specific `host_injections` directory.
3236

33-
#### To expose the NVIDIA GPU drivers:
37+
#### To expose the NVIDIA GPU drivers
38+
3439
Use the `link_nvidia_host_libraries.sh` script, provided by EESSI, to symlink your GPU drivers into `host_injections`.
40+
3541
```[bash]
3642
/cvmfs/software.eessi.io/versions/2023.06/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh
3743
```
44+
3845
Rerun this script when your NVIDIA GPU drivers are updated. It is also safe to rerun at any time as the script will detect if the driver versions have already been symlinked.
3946

4047
### Building with GPUs
4148

4249
Run `which nvcc` to confirm that the CUDA compiler is found.
4350

4451
If `nvcc` is not found, add the CUDA path to your environment:
52+
4553
```[bash]
4654
export PATH=/usr/local/cuda/bin:$PATH
4755
```
@@ -51,16 +59,33 @@ export PATH=/usr/local/cuda/bin:$PATH
5159
#### Loading EESSI module for the GCC compiler
5260

5361
Running `which gcc` with EESSI initialised should initially show a path `.../2023.06/compat...` which points to the compatibility compiler.
54-
It is important to load a `gcc` version that is compatible with the host's CUDA version:
62+
63+
It is important to load a `gcc` version that is compatible with the host's CUDA version. This can be found by referring to the table below:
64+
65+
To find your cuda version run `nvcc --version`
66+
67+
| **CUDA Version** | **Recommended GCC Module (EESSI 2023.06)** |
68+
| ---------------- | ------------------------------------------------------- |
69+
| CUDA 13.0 | GCC/12.3.0 |
70+
| CUDA 12.3 – 12.5 | GCC/12.3.0 or GCC/12.2.0 (officially supports GCC 12.x) |
71+
| CUDA 12.0 – 12.2 | GCC/12.2.0 (officially listed supported version) |
72+
| CUDA 11.4 – 11.8 | no matching GCC module in EESSI 2023.06 |
73+
| CUDA < 11.4 | not supported |
74+
75+
To load correct ESSI module run, substituing x for the compatible GCC version:
76+
5577
```[bash]
56-
module load GCC/12.3.0
78+
module load GCC/12.x.0
5779
```
80+
5881
Running `which gcc` will now give a path `.../2023.06/software...` which is the full compiler provided by EESSI. This is what we want for CUDA builds.
5982

6083
Now you can run `cmake` and `make` to compile CUDA using EESSI's `gcc`.
6184

6285
#### Test: Compile deviceQuery from CUDA-Samples
86+
6387
To test that your EESSI setup can compile CUDA, try compiling `deviceQuery` from CUDA-Samples with the following steps:
88+
6489
```[bash]
6590
git clone https://github.com/NVIDIA/cuda-samples.git
6691
cd cuda-samples/Samples/1_Utilities/deviceQuery

0 commit comments

Comments
 (0)