NVIDIA Parabricks 入门
硬件要求
任何支持 CUDA 架构 70、75、80、86、89 或 90 且至少具有 16GB GPU RAM 的 NVIDIA GPU。NVIDIA Parabricks 已在以下 NVIDIA GPU 上进行过测试
V100
T4
A10、A30、A40、A100、A6000
L4、L40
H100、H200
Grace Hopper 超级芯片
fq2bam 工具默认需要至少 38 GB 的 GPU 内存;
--low-memory
选项会将此要求降低到 16 GB 的 GPU 内存,但会降低处理速度。所有其他工具每个 GPU 至少需要 16 GB 的 GPU 内存。系统要求
一个 2 GPU 系统应至少具有 100GB CPU RAM 和至少 24 个 CPU 线程。
一个 4 GPU 系统应至少具有 196GB CPU RAM 和至少 32 个 CPU 线程。
一个 8 GPU 系统应至少具有 392GB CPU RAM 和至少 48 个 CPU 线程。
Parabricks 在分时虚拟 GPU (vGPU) 上受支持,但在多实例 (MIG) GPU 上不受支持。
软件要求
以下是运行 Parabricks 的软件要求。
版本为 525.60.13 或更高的 NVIDIA 驱动程序。有关向前兼容性的更多详细信息,请查看此处。
任何支持 nvidia-docker2 Docker 版本 20.10(或更高版本)的 Linux 操作系统
有关支持的驱动程序配置的更多信息,请参阅此页面。
Parabricks 以 Docker 镜像的形式提供。对于 Singularity 用户,请查看此处,了解有关将 Docker 镜像导入到 Singularity 镜像的信息。
验证硬件和软件要求
检查可用的 NVIDIA 硬件和驱动程序
要检查您的 NVIDIA 硬件和驱动程序版本,请使用 nvidia-smi
命令
$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.13 Driver Version: 525.60.13 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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 V100-DGXS... On | 00000000:07:00.0 Off | 0 |
| N/A 44C P0 38W / 300W | 74MiB / 16155MiB | 0% Default |
| | | N/A |
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 3019 G /usr/lib/xorg/Xorg 56MiB |
+-----------------------------------------------------------------------------+
这显示了以下重要信息
NVIDIA 驱动程序版本为 525.60.13。
支持的 CUDA 驱动程序 API 为 12.0。
GPU 具有 16 GB 内存。
检查可用的 CPU RAM 和线程
要查看您的机器中有多少 RAM 和 CPU 线程,您可以运行以下命令
# To check available memory
$ cat /proc/meminfo | grep MemTotal
# To check available number of threads
$ cat /proc/cpuinfo | grep processor | wc -l
检查 nvidia-docker2 安装
要确保您已安装 nvidia-docker2,请运行此命令
$ docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu20.04 nvidia-smi
当容器下载完成后,它将运行 nvidia-smi
命令,并显示与上面相同的输出。
检查 Python 版本
要查看您拥有的 Python 版本,请输入以下命令
$ python3 --version
确保版本至少为 3(3.6.9、3.7 等)。
可以通过运行以下命令获取 NVIDIA Parabricks Docker 镜像
$ docker pull nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1
此时,软件已准备好使用。
从命令行
Parabricks 使用 Docker 镜像部署。自定义 Parabricks 运行分为两个部分
自定义 Docker 容器特定选项:这些是在容器名称之前传递给
docker
命令的选项。例如,用户应通过将-v
选项传递给 Docker,在 Docker 容器中挂载其数据目录。有关更详细的示例,请参阅教程。Parabricks 特定选项:这些选项传递给 Parabricks 命令行,以自定义 Parabricks 运行。例如,您可以选择要运行的工具并传递特定于工具的选项。
例如,使用以下命令使用 Docker 容器运行 Parabricks fq2bam (BWA-MEM + GATK) 工具。有关此命令如何工作的更多详细信息,请参阅教程。
$ docker run \
--gpus all \
--rm \
--volume $(pwd):/workdir \
--volume $(pwd):/outputdir \
nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \
pbrun fq2bam \
--ref /workdir/parabricks_sample/Ref/Homo_sapiens_assembly38.fasta \
--in-fq /workdir/parabricks_sample/Data/sample_1.fq.gz /workdir/parabricks_sample/Data/sample_2.fq.gz \
--out-bam /outputdir/fq2bam_output.bam
示例数据是免费提供的。有关获取示例数据的说明,以及使用 fq2bam 和 Haplotype Caller 的分步指南,请参阅教程中的获取示例数据部分。
一些有用的 Docker 选项需要考虑
--gpus all
让 Docker 容器使用系统上的所有 GPU。可以使用--gpus "device=<GPU 列表>"
选项限制 Parabricks 容器可用的 GPU。使用nvidia-smi
查看您有多少个 GPU,以及哪个是哪个。--rm
告诉 Docker 在命令完成后终止镜像。--volume $(pwd):/image/data
将您的当前目录(服务器上的路径)挂载到 Docker 容器中的/image/data
目录(Docker 容器内的路径)。如果您的数据不在当前目录中,请使用类似于--volume /path/to/your/data:/image/data
的选项。--workdir
告诉 Docker 从哪个工作目录执行命令(在容器内)。命令的其余部分是您要运行的 Parabricks 工具,后跟其参数。对于熟悉 v4.0 之前版本的 Parabricks 及其
pbrun
命令的用户,此 Docker 调用取代了pbrun
。
使用 Base Command Platform 运行 Parabricks
在单 GPU 实例上启动 BaseCommand 容器的示例命令是
ngc batch run --name "parabricks-germline" \
--instance dgxa100.80g.1.norm \
--commandline "pbrun germline \
--ref /workspace/parabricks_sample/Ref/Homo_sapiens_assembly38.fasta \
--in-fq /Data/HG002-NA24385-pFDA_S2_L002_R1_001-30x.fastq.gz /Data/HG002-NA24385-pFDA_S2_L002_R2_001-30x.fastq.gz \
--knownSites /workspace/parabricks_sample/Ref/Homo_sapiens_assembly38.known_indels.vcf.gz \
--out-bam output.bam \
--out-variants output.vcf \
--out-recal-file report.txt \
--run-partition \
--no-alt-contigs" \
--result /results \
--image "nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1"
请注意,对于其他 Parabricks 命令(即 fq2bam、HaplotypeCaller、DeepVariant),ngc batch run
命令是相似的。确保为您的工作区或数据集使用正确的路径,其中包含您打算使用的数据。
卸载 NVIDIA Parabricks 与删除 Docker 镜像一样简单。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
...
nvcr.io/nvidia/clara/clara-parabricks 4.4.0-1 516740210042 2 months ago 3.23GB
...
$ docker rmi 516740210042
"IMAGE ID" 的确切值将因您的安装而异。
用户指南和参考手册可以在 NVIDIA Parabricks 文档页面上找到。
许多其他常见问题的答案可以在开发者论坛上找到。