GPU-enabled集群

预览

这个特性是在公共预览

请注意

一些GPU-enabled实例类型β和被标记为下拉列表中选择司机和工人时在集群创建类型。

概述

砖支持集群加速的图形处理单元(gpu)。本文描述了如何创建集群GPU-enabled实例和描述了GPU司机和库安装在这些实例。

更多地BOB低频彩了解深度学习在GPU-enabled集群,明白了深度学习

创建一个GPU集群

创建一个集群GPU集群类似于创建任何火花。你应该记住以下几点:

  • 砖的运行时版本的必须是一个GPU-enabled版本,如运行时9.1 LTS毫升(GPU, Scala 2.12,火花3.1.2)

  • 工作类型驱动程序类型必须GPU实例类型。

  • 对单机工作流没有火花,你可以设置员工的数量为零。

支持实例类型

砖支持以下实例的类型:

  • A2机家庭:a2-highgpu-2g a2-highgpu-1g a2-highgpu-4g、a2-highgpu-8g a2-megagpu-16g

看到GCP accelerator-optimized机器在这些实例类型的更多信息,和丰富的地区检查这些实例可用。你的砖部署必须驻留在一个地区推出GPU-enabled集群支持。

GPU调度

砖运行时9.1 LTS毫升以上的支持GPU-aware调度从Apache 3.0火花。砖preconfigures在GPU集群。

GPU调度不是单一节点上启用集群。

spark.task.resource.gpu.amount是唯一的火花GPU-aware调度相关配置,您可能需要改变。缺省配置使用一个GPU每个任务,这是理想的分布式推理工作负载和分布式训练,如果你使用所有GPU节点。做分布式训练节点的一个子集,这有助于减少通信开销在分布式训练,砖推荐设置spark.task.resource.gpu.amount人均的gpu集群中的节点火花配置

对于PySpark任务,砖自动重新映射分配GPU (s)指数0,1,…。在每个任务使用一个GPU的默认配置,您的代码可以使用默认的GPU没有检查这GPU是分配给的任务。如果您设置多个gpu每个任务,例如4中,您的代码可以假定的指标分配gpu总是0,1,2,3。如果你需要指定的gpu的物理指标,你可以得到的CUDA_VISIBLE_DEVICES环境变量。

如果你使用Scala,你可以得到gpu的指标分配给的任务TaskContext.resources () . get (gpu)

NVIDIA GPU的司机,CUDA和cuDNN

砖安装NVIDIA驱动程序和库需要使用gpu火花司机和工人实例:

  • CUDA工具包,安装在/usr/local/cuda

  • cuDNN:NVIDIA CUDA深层神经网络库。

  • NCCL:NVIDIA集体通信库。

NVIDIA驱动程序的版本包括450.119.04,支持CUDA 11.0。

的版本库包含,请参阅发布说明您使用的特定数据砖运行时版本。

请注意

这个软件包含NVIDIA公司提供的源代码。具体来说,支持gpu,砖包括代码CUDA样品

英伟达最终用户许可协议(EULA)

当您选择一个GPU-enabled“砖砖运行时版本”,你含蓄地同意的条款和条件中列出的NVIDIA CUDA EULA对,cuDNN,特斯拉库,英伟达最终用户许可协议(NCCL补充)NCCL库。

限制

  • 你不能当你创建一个新的GPU集群安排一个工作从一个笔记本。你可以在现有的GPU集群上运行的工作只有从集群创建页面

  • 砖在谷歌的云,常用的NVIDIA的可执行文件nvidia-smi不包括在内吗路径环境变量。相反,他们在/usr/local/nvidia/bin。例如,使用nvidia-smi你必须使用网络终端% sh笔记本神奇的命令运行/usr/local/nvidia/bin/nvidia-smi

  • 不支持集群监控指标使用Ganglia砖在谷歌的云。