GPU 增强功能

以下增强功能会影响 LSF GPU 支持。

对 MPS 作业禁用 CUDA_VISIBLE_DEVICES

LSF 现在允许您禁用 MPS 作业的 CUDA_VISIBLE_DEVICES 环境变量。

禁用 CUDA_VISIBLE_DEVICES 环境变量时, LSF 不会为任务设置 CUDA_VISIBLE_DEVICES<number> 环境变量,因此 LSF MPI 不会为任务设置 CUDA_VISIBLE_DEVICESLSF 只是设置任务的 CUDA_VISIBLE_DEVICES<number> 环境变量,而不是 CUDA_VISIBLE_DEVICESLSF MPICUDA_VISIBLE_DEVICES<number> 环境变量转换为 CUDA_VISIBLE_DEVICES 并为任务设置这些变量。

LSF 使用 CUDA_VISIBLE_DEVICES 环境变量来告知用户应用程序分配了哪些 GPU ,并使这些 GPU 仅对应用程序可见。 要对 MPS 作业禁用 CUDA_VISIBLE_DEVICES ,请将 ",nocvd" 关键字添加到 GPU 资源需求字符串中的现有 mps 值 (即, bsub -gpu 命令选项, lsf.conf 文件中的 LSB_GPU_REQ 参数以及 lsb.queueslsb.applications 文件中的 GPU_REQ 参数)。 在 GPU 需求中指定 mps=yes,nocvdmps=yes,shared,nocvd 以在 MPS 作业中禁用 CUDA_VISIBLE_DEVICES

必须在 lsf.conf 文件中定义 LSB_GPU_NEW_SYNTAX=extend 才能使用 MPS 作业。

已分配 GPU 的块分布

LSF 现在允许您启用已分配 GPU 的块分发,这意味着当任务数大于所请求的 GPU 数时, LSF 可以将作业的已分配 GPU 作为块分发。

例如,如果 GPU 作业请求在具有 4 GPU 和 40 个任务的主机上运行,那么块分发会为列组 0-9 分配 GPU0 ,为列组 10-19 分配 GPU1 ,为坦克 20-29 分配 GPU2 ,为列组 30-39 分配 GPU3 。

要启用已分配 GPU 的块分发,请在 GPU 资源需求字符串中指定 block=yes (即, bsub -gpu 命令选项, lsf.conf 文件中的 LSB_GPU_REQ 参数以及 lsb.queueslsb.applications 文件中的 GPU_REQ 参数)。

必须在 lsf.conf 文件中定义 LSB_GPU_NEW_SYNTAX=extend 以启用已分配 GPU 的块分发。

GPU 共享方式作业的包调度

LSF 现在允许您对共享方式 GPU 作业启用包调度。

LSF 将多个共享方式 GPU 作业打包到已分配的 GPU。 启用时, LSF 会将多个共享方式 GPU 作业打包到已分配的 GPU。 LSF 按如下所示调度共享方式 GPU:

  1. LSF 根据已具有正在运行的作业的共享 GPU 数,然后按非互斥的 GPU 数对候选主机进行排序 (从最大到最小)。

    如果在资源需求字符串中定义了 order [] 关键字,那么在对 order []进行排序之后, LSF 会按 gpack 策略 (先按已具有正在运行的作业的共享 GPU ,然后再按非互斥的 GPU 数) 对候选主机进行重新排序。 gpack 策略排序优先级高于 order [] 排序。

  2. LSF 根据正在运行的作业数对每个主机上的候选 GPU 进行排序 (从最大到最小)。

调度后,共享方式 GPU 作业打包到首先排序的已分配共享 GPU ,而不是新的共享 GPU。

先前, LSF 已将其他 GPU 分配给新的共享方式 GPU 作业。 例如,主机具有 4 GPU ,一个 GPU 作业正在共享方式 GPU 上运行。 将另一个共享方式 GPU 作业调度到主机时,会将另一个 GPU 分配给新作业。 因此,两个共享方式 GPU 正在运行两个 GPU 共享方式作业。 启用包调度后,如果首先对 GPU 进行排序,那么 LSF 将分配一个共享方式 GPU 以运行这两个 GPU 共享方式作业。

要对共享方式 GPU 作业启用包调度,请在 GPU 资源需求字符串中指定 gpack=yes (即, bsub -gpu 命令选项, lsf.conf 文件中的 LSB_GPU_REQ 参数以及 lsb.queueslsb.applications 文件中的 GPU_REQ 参数)。

必须在 lsf.conf 文件中定义 LSB_GPU_NEW_SYNTAX=extend ,才能启用共享方式 GPU 作业的包调度。

NVIDIA (DCGM)集成更新

LSF,版本 10.1 Fix Pack 2 与 NVIDIA 数据中心 GPU 管理器(DCGM)集成,可更有效地与 LSF 集群中的 GPU 协同工作。 LSF 现已与 NVIDIA 1.7.2集成。

通过在 lsf.conf 文件中定义 LSF_DCGM_PORT 参数来启用 DCGM 集成。