Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/getting_started/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,18 @@ Before submitting a software installation request, please review our [Software i
For individuals who need to install Python libraries not included in our base Python or Anaconda modules, we recommend using Conda environments through the Anaconda module. Instructions for creating a custom Conda environment can be found on our [Python and R with Anaconda](../software/python.md) documentation page.
::::

### Which NVIDIA SDK version should I use on Alpine GPUs?
::::{dropdown} Show
:icon: note

Our recommendation is to use >= `nvhpc_sdk/2025.251` on all GPUs. If you require more specific information on the CUDA versions a given GPU architecture will support, please see the [NVIDIA Toolkit, Driver and Architecture Matrix](https://docs.nvidia.com/datacenter/tesla/drivers/cuda-toolkit-driver-and-architecture-matrix.html), noting the following architectures available on Alpine:

* A100: Ampere
* L40: Ada
* H200: Hopper
* RTX Pro 6000: Blackwell
::::

## Alpine

### Why do I get an `Invalid Partition` error when running an Alpine job?
Expand Down
19 changes: 12 additions & 7 deletions docs/programming/profiling-nvidia-gpu-performance.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Profiling NVIDIA GPU Performance

The NVIDIA Performance Counters provide low-level metrics on GPU usage, enabling users to understand how efficiently their code uses the GPU. This is especially important for optimizing workloads on Alpine’s A100 GPU nodes, where GPU time is a valuable and shared resource.
```{warning}
Ensure you are using a CUDA version compatible with the GPU you are using. For more information, see our FAQ on [Which NVIDIA SDK version should I use on Alpine GPUs?](../getting_started/faq.md#which-nvidia-sdk-version-should-i-use-on-alpine-gpus)
```

The NVIDIA Performance Counters provide low-level metrics on GPU usage, enabling users to understand how efficiently their code uses the GPU. Optimizing workloads on Alpine’s GPU nodes is important due to the high demand for these valuable shared resources.

The following tools are available for interacting with performance counters:

Expand Down Expand Up @@ -241,7 +245,7 @@ Example output of `nvidia-smi` on the `aa100` partition using [matrixMultiply.cu

### nvidia-smi on MIG-Enabled GPUs

Some A100 GPUs on our systems are MIG-enabled (Multi-Instance GPU). On these nodes, `nvidia-smi` shows a different output format, displaying information for both full GPUs and individual MIG instances.
Some GPUs on our systems are MIG-enabled (Multi-Instance GPU). On these nodes, `nvidia-smi` shows a different output format, displaying information for both full GPUs and individual MIG instances.

Here's an example output from a MIG-enabled A100 node:
```
Expand Down Expand Up @@ -370,7 +374,7 @@ NVIDIA Nsight Compute is a command-line CUDA kernel profiler that provides detai

### Why do these metrics matter?

Modern GPUs, such as the NVIDIA A100, have hundreds of compute units (Streaming Multiprocessors or SMs). To fully exploit this parallel architecture, your kernel must be configured to launch enough threads and blocks to keep these units busy.
Modern GPUs have hundreds of compute units (Streaming Multiprocessors or SMs). To fully exploit this parallel architecture, your kernel must be configured to launch enough threads and blocks to keep these units busy.

Key Features:

Expand All @@ -386,6 +390,10 @@ Collecting performance data using `ncu` can incur significant runtime overhead.

### Getting Started

```{attention}
`ncu` is not compatible with MIG-enabled GPUs. Ensure you run `ncu` only on GPU nodes without MIG.
```

To use `ncu`, first load the appropriate CUDA module:

```
Expand All @@ -406,9 +414,6 @@ $ ncu --set full --target-processes all ./vectorAdd

- `--target-processes all`: Profiles all child processes (useful for multi-threaded applications).

```{note}
`ncu` is not compatible with MIG-enabled GPUs. Ensure you run `ncu` only on A100 nodes without MIG.
```

::::{dropdown} Click here to view the full `ncu` report
:icon: note
Expand Down Expand Up @@ -1154,4 +1159,4 @@ Time (%) Total Time (ns) Num Calls Name
This output means that most of the runtime was spent in system calls like `poll` and `ioctl`, which are unrelated to the kernel execution. This suggests the application is not compute-bound, and system overhead is prominent due to the small workload.

````
`````
`````
21 changes: 15 additions & 6 deletions docs/software/alphafold.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ AlphaFold is a program that predicts the three-dimensional structure of proteins
````{tab-item} AlphaFold 2
:sync: batch-scripting-ex1

```{attention}
AlphaFold 2 is supported on A100 and L40 GPUs, but **not on H200 and RTX Pro 6000 GPUs**.
```

Load the default AlphaFold 2 module:
```
module load alphafold/2.3.1
Expand Down Expand Up @@ -86,9 +90,14 @@ AlphaFold 3 has a substantially updated diffusion-based architecture that is cap
On CURC’s Alpine system, AlphaFold 3 is available as a containerized module. It uses Apptainer/Singularity under the hood and is fully self-contained except for the separately downloaded model parameters (required).

#### AlphaFold 3 Module
```{attention}
Comment thread
monaghaa marked this conversation as resolved.
AlphaFold 3 versions 3.0.0 and 3.0.1 are supported on A100, L40, and H200 GPUs, but **not on RTX Pro 6000 GPUs**.
AlphaFold 3 version 3.0.3 is supported on **all NVIDIA GPU types** on Alpine.
```

Load AlphaFold 3 module:
```
module load alphafold/3.0.0
module load alphafold/3.0.3
```
View run options:
```
Expand All @@ -103,7 +112,7 @@ Loading the AlphaFold 3 module does the following:
- redirects temporary files to `/scratch/alpine/$USER`
- you can override this path by resetting TMPDIR *after* you load the module:
```
module load alphafold/3.0.0
module load alphafold/3.0.3
export TMPDIR=<path/of/your/choosing>
```
- creates a shortcut to the AlphaFold 3 script so you can run the program with `run_alphafold`
Expand Down Expand Up @@ -137,7 +146,7 @@ To better utilize limited GPU resources, these stages can be split using flags:
- `--norun_data_pipeline` → Run only the inference step (Stage 2)

#### AlphaFold 3 Examples
Example input files and scripts are in `/curc/sw/install/bio/alphafold/3.0.0/examples`.
Example input files and scripts are in `/curc/sw/install/bio/alphafold/3.0.3/examples`.
Loading the AlphaFold 3 module stores this path in `AF3_EXAMPLES`:
```
ls $AF3_EXAMPLES
Expand All @@ -152,7 +161,7 @@ You can copy the examples folder to a location where you have write permissions

```bash
cd /projects/$USER
cp -R /curc/sw/install/bio/alphafold/3.0.0/examples .
cp -R /curc/sw/install/bio/alphafold/3.0.3/examples .
cd examples
```

Expand All @@ -175,7 +184,7 @@ Path of the script: `$AF3_EXAMPLES/alphafold3_alpine.sh`

# Load the AlphaFold 3 module
module purge
module load alphafold/3.0.0
module load alphafold/3.0.3

# Set input JSON, output directory, and model parameter path
export INPUT_FILE=$AF3_EXAMPLES/fold_protein_2PV7/alphafold_input.json
Expand All @@ -186,4 +195,4 @@ export AF3_MODEL_PARAMETERS_DIR=/path/to/alphafold3/params
run_alphafold --json_path=$INPUT_FILE --output_dir=$OUTPUT_DIR --model_dir=$AF3_MODEL_PARAMETERS_DIR
```
````
`````
`````
6 changes: 6 additions & 0 deletions docs/software/matlab.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ resources. In this tutorial we will learn how to run Matlab on these
resources. The tutorial assumes you are familiar with Matlab and basic
Linux terminal commands.

```{attention}
If you are running on **A100, L40, or H200 GPUs**, use Matlab R2025b.

If you are running on an **RTX Pro 6000 GPU**, use Matlab R2025b_FC to ensure forward compatibility with the GPU compute capability. Future versions of Matlab are anticipated to work on all GPUs without needing a forward compatibility module.
```

There are two basic ways to run Matlab (or many other kinds of
software) on RC resources. The first is through an interactive job,
and the second is through a batch job. An interactive job allows one
Expand Down