运行GPU 任务——以 DeepVariant 为例

DeepVariant 是一块基于深度学习计算框架(Tensorflow)的变异检测工具。通过对比对结果文件的累积图张量(pileup image tensors),采用卷积神经网络(convolutional neural network, CNN )进行分类,最终生成样本的变异检测结果文件(vcf 文件或 gvcf 文件)。

对于生信用户而言,使用DeepVariant 最大的障碍在于其使用GPU 进行加速计算时,对系统配置相对复杂。Achelous 平台针对GPU 使用上的配置问题,提供了WDL runtime属性接口,可以最大限度的简化用户的配置工作。


DeepVariant 任务的WDL 脚本编写

Achelous 平台可以实现在WDL 语言中定义任务所需要的GPU 使用资源,通过runtime 中的属性来实现:

  1. gpu 指明需要分配的GPU的设备数,可以是GPU卡、GPU实例(MIG模式GPU卡)或者GPU计算实例(MIG模式的GPU卡)
  2. gpumemory 指定需要的GPU显卡内存,多个使用显存的任务可能会共用同一个GPU卡。 其中 gpugpumemory不能同时使用,如果同时指定只有gpumemory会生效。
task deepvariant_task {
   File reference
   File inputBamFile
   command {
      export TF_FORCE_GPU_ALLOW_GROWTH=true
      /opt/deepvariant/bin/run_deepvariant \
      --model_type=WGS \
      --ref=${reference} \
      --reads=${inputBamFile} \
      --output_vcf=output_vcf.gz  \
      --num_shards=25
   }
   output {
      File output_vcf = "output_vcf.gz"
   }
    runtime {
      docker:"deepvariant:google-0.10.0-gpu"
      cpu:"5"
      gpu:"1"
      memory:"20G"
    }
}

workflow deepvariant {
    File reference
    File inputBamFile
    call deepvariant_task{
        input: 
            reference = reference, 
            inputBamFile = inputBamFile
    }
}

DeepVariant 镜像准备

DeepVariant 的官方镜像中已经对需要使用的相关库文件(如 libcuda.so )进行了配置,因此用户可以直接通过DeepVariant 官方镜像资源,进行镜像获取和运行。

注意 对于其他基于GPU 计算的程序,用户需要在镜像制作时,提前安装相应的库。以保证程序的正常运行。

Powered by XTAO TechnologyLast Modified On:2021 2023-03-24 09:05:16

results matching ""

    No results matching ""