GPU加速

概览

SAW 软件支持利用 GPU 资源来显著加速分析计算,通过单一参数进行控制:--gpu-id

SAW 中的 GPU 加速模块主要由两个独立的部分组成:

  1. 图像处理 (原生自带):软件内置支持,用于加速图像分割任务。默认可用。
  2. 矩阵分析 (需安装插件):SAW 8.3 中的新增功能,主要用于加速下游的矩阵计算(如聚类、降维)。此功能需要通过 saw support plugin 命令安装扩展包后方可使用。

在不同的分析流程中,指定 --gpu-id 参数将会对以下步骤进行加速:

SAW count & SAW realign

  • 图像处理模块 (内置):
    • 组织分割 (Tissue segmentation):加速从染色图像中识别组织边界的过程
    • 细胞分割 (Cell segmentation):加速细胞核分割算法(例如:深度学习部分)以生成细胞分割轮廓
  • 下游分析 (需安装插件):
    • 降维 (Dimensionality reduction):GPU 加速的 neighbors 和 UMAP 计算
    • 聚类 (Clustering):GPU 加速的 Leiden 聚类

SAW aggr

  • 联合分析模块 (需安装插件):
    • 聚类 (Clustering):加速对合并后的矩阵进行 neighbors、UMAP 和 Leiden 计算

SAW reanalyze

  • cluster (需安装插件):
    • 加速标准的下游分析工作流:基于输入的表达矩阵执行 neighbors、UMAP 和 Leiden 计算
  • multiomics (需安装插件):
    • 建模:加速针对 Stereo-CITE(蛋白与转录本)数据的概率建模步骤
    • 下游分析:加速多组学数据后续的降维和聚类过程

驱动安装

SAW 分析流程在 Linux 系统上运行。当 Linux 服务器连接了一张或多张 NVIDIA 显卡后,请确保已安装相应的驱动程序。如果尚未安装,请参照 NVIDIA 官方的《Linux CUDA 安装指南》(NVIDIA CUDA Installation Guide for Linux) 来完成 CUDA 的安装。

检查 GPU 资源

安装 CUDA 后,请按如下要求检查环境中的 GPU

  1. 请确认 CUDA 版本 (CUDA Version) >= 11.7。
  2. 请确认剩余可用显存 (device memory remaining) > 3 GiB 且 GPU 利用率 (GPU utilization) < 100%。

    Please confirm CUDA Version >= 11.7

$ nvidia-smi

Tue Jun  4 05:20:12 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01    Driver Version: 515.65.01    CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:17:00.0 Off |                    0 |
| N/A   28C    P8    16W /  70W |      4MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  Tesla T4            Off  | 00000000:65:00.0 Off |                    0 |
| N/A   34C    P0    26W /  70W |   1259MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  Tesla T4            Off  | 00000000:CA:00.0 Off |                    0 |
| N/A   36C    P0    28W /  70W |    641MiB / 15360MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   3  Tesla T4            Off  | 00000000:E3:00.0 Off |                    0 |
| N/A   65C    P0    66W /  70W |  14439MiB / 15360MiB |     99%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    1   N/A  N/A     83410      C   .../envs/cellbin2/bin/python     1255MiB |
|    2   N/A  N/A     84598      C   .../envs/cellbin2/bin/python      637MiB |
|    3   N/A  N/A     15814      C   python                          14435MiB |
+-----------------------------------------------------------------------------+

在上方第一个表格 NVIDIA-SMI 中,可以直观地看到当前有 4 张 GPU 显卡,以及它们各自的序号 (GPU ID)、对应的风扇转速、显卡名称和性能状态。其余的详细参数涉及 GPU 整体使用率、显存使用率等,此处不再赘述。

第二个表格 Processes 则显示了各个进程占用的显存大小、进程号 (PID) 以及该进程所挂载运行的 GPU 序号。

启用 GPU 分析

以 NVIDIA 显卡为例,说明如何调用 GPU 来启动 saw count 分析任务。

--gpu-id 用于配置并指定要使用的 GPU 显卡。请根据服务器环境中的实际 GPU 资源分布情况,为 --gpu-id 选择一个合适的 GPU 序号 (GPU index)。如系统未检测到指定的 GPU,saw count 任务将直接无法启动(程序不会自动降级回退到 CPU 运行)。

请参考以下脚本运行分析任务:

cd /saw/runs

saw count \
    --id=Demo_Mouse_Brain_with_GPU \
    --sn=C04144D5\
    --omics=transcriptomics \
    --kit-version="Stereo-seq N FFPE V1.0" \
    --sequencing-type="PE75_25+59" \
    --chip-mask=/saw/datasets/chip_mask/C04144D5.barcodeToPos.h5 \
    --fastqs=/saw/datasets/fastqs \
    --reference=/saw/datasets/reference/mouse_transcriptome \
    --image-tar=/saw/datasets/image/C04144D5_SC_20240620_153.tar.gz \
    --gpu-id=0  ## 目前仅支持输入一个 GPU ID
© 2026 STOmics Tech. All rights reserved.Modified: 2026-09-15 10:50:37

results matching ""

    No results matching ""