简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

设计注意事项

提供者 kevin-hoke

网络设计

要成功部署 NetApp HCI 流量,需要对用于处理此流量的交换机进行特定配置。

有关物理布线和交换机的详细信息,请参见《 NetApp HCI 网络设置指南》。此解决方案对计算节点采用双缆线设计。此外,还可以在六节点缆线设计中配置计算节点,以便为部署计算节点提供选项。

下图显示在下 "架构" 描绘了此 NetApp HCI 解决方案的网络拓扑结构,并为计算节点设计了双缆线。

计算设计

NetApp HCI 计算节点提供两种外形规格:半宽和全宽,两种机架单元大小为 1 RU 和 2 RU 。此解决方案中使用的 410c 节点为半宽和 1 RU ,位于一个机箱中,最多可容纳四个此类节点。此解决方案中使用的另一个计算节点是 H615c ,它是一个全宽节点,大小为 1 RU 。H410c 节点基于 Intel Skylake 处理器, H615c 节点基于第二代 Intel 级联湖处理器。可以将 NVIDIA GPU 添加到 H615c 节点中,每个节点最多可以托管三个 NVIDIA Tesla T4 16 Gb GPU 。

H615c 节点是适用于 NetApp HCI 的最新系列计算节点,也是可支持 GPU 的第二系列计算节点。第一个支持 GPU 的型号是 H610c 节点(全宽, 2RU ),它可以支持两个 NVIDIA Tesla M10 GPU 。

在此解决方案中, H615c 节点优于 H610c 节点,因为具有以下优势:

  • 减少数据中心占用空间,这对于边缘部署至关重要

  • 支持为加快推理速度而设计的新一代 GPU

  • 降低电耗

  • 降低散热

NVIDIA T4 GPU

推理所需的资源与训练工作负载所需的资源几乎没有什么关系。事实上,大多数现代手持设备都能够在没有 GPU 等强大资源的情况下处理少量推理。但是,对于处理各种应用程序的任务关键型应用程序和数据中心来说, GPU 在减少推理时间和提高应用程序性能方面起着关键作用,这些应用程序需要极低的推理延迟,同时又需要极高的并行处理能力和大量的输入批处理大小。

NVIDIA Tesla T4 是一种基于 Turing 架构的 x16 PCIe 第 3 代单插槽低性能 GPU 。T4 GPU 可实现通用推理加速,涵盖图像分类和标记,视频分析,自然语言处理,自动语音识别和智能搜索等应用。Tesla T4 的推理功能范围广泛,可用于企业级解决方案和边缘设备。

由于这些 GPU 的功耗较低且采用小型 PCIe 外形,因此非常适合部署在边缘基础架构中。由于 T4 GPU 的大小,可以在与双插槽全尺寸 GPU 相同的空间中安装两个 T4 GPU 。T4S 虽然较小,但具有 16 GB 内存,但可以支持大型 ML 型号,也可以同时在多个较小型号上运行推理。

基于 Turing 的 T4 GPU 包括一个增强版 Tensor 核心,并支持用于推理 FP32 , FP16 , INT8 和 INT4 的一系列预收件。GPU 包括 2 , 560 个 CUDA 核心和 320 个 Tensor 核心,可提供高达 130 tera 每秒操作数( TOPS )的 INT8 以及高达 260 个 TOPS 的 INT4 推理性能。与基于 CPU 的推理相比,由新的 Turing Tensor 核心提供支持的 Tesla T4 可将推理性能提高多达 40 倍。

Turing Tensor 核心可加快神经网络训练和推理功能核心的矩阵 - 矩阵乘法的速度。它们尤其擅长推理计算,在推理计算中,经过培训的深度神经网络可以根据给定输入推断和提供有用的相关信息。

Turing GPU 架构继承了 Volta 架构中引入的增强型多进程服务( MPS )功能。与基于 Pascal 的 Tesla GPU 相比, Tesla T4 上的 MPS 可提高小型批处理的推理性能,降低启动延迟,提高 QoS 并支持处理更多并发客户端请求。

NVIDIA T4 GPU 是 NVIDIA AI 推理平台的一部分,该平台支持所有 AI 框架,并提供全面的工具和集成,可显著简化高级 AI 的开发和部署。

存储设计: Element 软件

NetApp Element 软件为 NetApp HCI 系统的存储提供支持。它通过横向扩展灵活性和有保障的应用程序性能提供灵活的自动化,以加速提供新服务。

存储节点可以按一个增量无中断地添加到系统中,并且存储资源可立即供应用程序使用。添加到系统中的每个新节点都会为可用池提供精确的额外性能和容量。数据会在后台自动在集群中的所有节点之间进行负载平衡,从而在系统增长时保持平均利用率。

Element 软件支持 NetApp HCI 系统通过保证每个工作负载的 QoS 来轻松托管多个工作负载。通过为每个工作负载提供精确的性能控制以及最小,最大和突发设置,该软件可以实现精心规划的整合,同时保护应用程序性能。它可以将性能与容量分离,并允许为每个卷分配特定的容量和性能。可以动态修改这些规范,而不会中断数据访问。

如下图所示, Element 软件与 NetApp ONTAP 集成,可在运行不同存储操作系统的 NetApp 存储系统之间实现数据移动。可以使用 NetApp SnapMirror 技术将数据从 Element 软件移动到 ONTAP ,反之亦然。Element 通过与 NetApp Cloud Volumes ONTAP 集成来使用相同的技术提供云连接,从而实现从边缘到核心以及多个公有云服务提供商的数据移动。

在此解决方案中,基于 Element 的存储可提供在 NetApp HCI 系统上运行工作负载和应用程序所需的存储服务。

错误:缺少图形映像

存储设计: ONTAP Select

NetApp ONTAP Select 在 NetApp HCI 上引入了软件定义的数据存储服务模式。它基于 NetApp HCI 功能构建,在扩展数据网络结构的同时,为 HCI 平台添加了一组丰富的文件和数据服务。

虽然 ONTAP Select 是实施此解决方案的可选组件,但它确实具有诸多优势,包括数据收集,保护,移动性等。 在整个 AI 数据生命周期中非常有用。它有助于简化数据处理中的几个日常挑战,包括载入,收集,培训,部署, 和分层。

错误:缺少图形映像

ONTAP Select 可以作为 VM 在 VMware 上运行,但仍可提供在专用 FAS 平台上运行时可用的大多数 ONTAP 功能,例如:

  • 支持 NFS 和 CIFS

  • NetApp FlexClone 技术

  • NetApp FlexCache 技术

  • NetApp ONTAP FlexGroup 卷

  • NetApp SnapMirror 软件

ONTAP Select 可用于利用 FlexCache 功能,该功能可通过缓存后端原始卷中的频繁读取数据来帮助减少数据读取延迟,如下图所示。对于具有大量并行处理的高端推理应用程序,同一模型的多个实例会部署在推理平台上,从而导致对同一模型进行多次读取。通过验证所需模型是否可在原始卷或源卷中使用,可以将经过训练的模型的更新版本无缝引入推理平台。

错误:缺少图形映像

NetApp Trident

NetApp Trident 是一款开源动态存储编排程序,可用于管理所有主要 NetApp 存储平台上的存储资源。它与 Kubernetes 本机集成,因此可以使用原生 Kubernetes 接口和构造按需配置永久性卷( PV )。Trident 支持微服务和容器化应用程序使用企业级存储服务,例如 QoS ,存储效率和克隆,以满足应用程序的持久存储需求。

容器是最常用的应用程序打包和部署方法之一, Kubernetes 是托管容器化应用程序的最常用平台之一。在此解决方案中,推理平台基于 Kubernetes 基础架构构建。

Trident 目前支持跨以下平台的存储编排:

  • ONTAP : NetApp AFF , FAS 和 Select

  • Element 软件: NetApp HCI 和 NetApp SolidFire 全闪存存储

  • NetApp SANtricity 软件: E 系列和 EF 系列

  • Cloud Volumes ONTAP

  • Azure NetApp Files

  • NetApp Cloud Volumes Service : AWS 和 Google Cloud

Trident 是一款简单但功能强大的工具,不仅可以跨多个存储平台实现存储编排,还可以跨从边缘到核心再到云的整个 AI 数据生命周期范围实现存储编排。

Trident 可用于从构成经过培训的模型的 NetApp Snapshot 副本配置 PV 。下图显示了通过引用现有 Snapshot 副本创建永久性卷请求( PVC )的 Trident 工作流。之后, Trident 将使用 Snapshot 副本创建卷。

错误:缺少图形映像

这种从 Snapshot 副本引入经过培训的模型的方法支持强大的模型版本控制。它简化了向应用程序引入较新版本的模型以及在不同版本的模型之间切换推理的过程。

NVIDIA DeepOps

NVIDIA DeepOps 是 Ansible 脚本的模块化集合,可用于自动部署 Kubernetes 基础架构。您可以使用多种部署工具来自动部署 Kubernetes 集群。在此解决方案中, DeepOps 是首选,因为它不仅部署 Kubernetes 基础架构,还安装了必要的 GPU 驱动程序,适用于 Docker 的 NVIDIA 容器运行时( NVIDIA-docker2 )以及各种其他依赖项,以实现 GPU 加速工作。它囊括了 NVIDIA GPU 的最佳实践,并可根据需要自定义或作为单独的组件运行。

DeepOps 在内部使用 Kubespre 部署 Kubernetes ,它作为子模块包含在 DeepOps 中。因此,应使用 Kubernetes 执行常见的 Kubernetes 集群管理操作,例如添加节点,删除节点和升级集群。

使用 MetalLb 的基于软件的 L2 负载平衡器以及基于 NGINX 的传入控制器,也可通过使用 DeepOps 提供的脚本在此解决方案中部署。

在此解决方案中,三个 Kubernetes 主节点部署为 VM ,两个采用 NVIDIA Tesla T4 GPU 的 H615c 计算节点设置为 Kubernetes 工作节点。

NVIDIA GPU 操作员

GPU 操作员部署 NVIDIA K8s-device-plugin 以支持 GPU ,并将 NVIDIA 驱动程序作为容器运行。它基于 Kubernetes 操作员框架,可帮助自动管理配置 GPU 所需的所有 NVIDIA 软件组件。这些组件包括 NVIDIA 驱动程序,适用于 GPU 的 Kubernetes 设备插件, NVIDIA 容器运行时以及与 Kubernetes Node 功能发现结合使用的自动节点标记。

GPU 操作员是的一个重要组件 "NVIDIA EGX" 软件定义的平台,旨在实现大规模混合云和边缘运营并提高运营效率。当 Kubernetes 集群需要快速扩展时,该功能尤其有用,例如,在配置更多基于 GPU 的工作节点以及管理底层软件组件的生命周期时。由于 GPU 操作员将所有内容作为容器运行,包括 NVIDIA 驱动程序,因此管理员只需启动或停止容器即可轻松交换各种组件。

NVIDIA Triton 推理服务器

NVIDIA Triton 推理服务器( Triton 服务器)可简化在生产数据中心部署 AI 推理解决方案的过程。此微服务专为在生产数据中心进行推理而设计。它可以最大限度地提高 GPU 利用率,并与 Docker 和 Kubernetes 无缝集成到 DevOps 部署中。

Triton 服务器为 AI 推理提供了一个通用解决方案。因此,研究人员可以专注于创建经过培训的高质量模型,开发运营工程师可以专注于部署,开发人员可以专注于应用程序,而无需为每个采用 AI 的应用程序重新设计平台。

以下是 Triton Server 的一些主要功能:

  • * 支持多个框架。 * Triton 服务器可以处理多种型号组合,型号数量仅受系统磁盘和内存资源的限制。它可以支持 TensorRT , TensorFlow GraphDef , TensorFlow SavedModel , ONNX , PyTorch , 和 Caffe2 NetDef 型号格式。

  • * 并发模式执行。* 同一型号的多个型号或多个实例可以在一个 GPU 上同时运行。

  • * 多 GPU 支持。 * Triton 服务器可通过在一个或多个 GPU 上对多个型号启用推理来最大限度地提高 GPU 利用率。

  • * 支持批处理。 * Triton 服务器可以接受对一批输入的请求,并使用相应的一批输出进行响应。推理服务器支持多种计划和批处理算法,这些算法可将各个推理请求组合在一起,以提高推理吞吐量。无状态和有状态应用程序都可以使用批处理算法,需要正确使用。这些计划和批处理决策对于请求推理的客户端是透明的。

  • * 整体支持。 * 集合是一个管道,包含多个模型,这些模型之间具有输入和输出感应器连接。可以向集合发出推理请求,从而执行整个管道。

  • * 指标。 * 指标是有关自动扩展和负载平衡的 GPU 利用率,服务器吞吐量,服务器延迟和运行状况的详细信息。

NetApp HCI 是一种混合多云基础架构,可托管多个工作负载和应用程序, Triton 推理服务器设备齐全,可满足多个应用程序的推理要求。

在此解决方案中,使用部署文件在 Kubernetes 集群上部署 Triton 服务器。使用此方法,可以根据需要覆盖和自定义 Triton Server 的默认配置。此外, Triton Server 还可以使用 HTTP 或 gRPC 端点提供推理服务,从而使远程客户端可以为服务器管理的任何模型请求推理。

永久性卷通过 NetApp Trident 提供给运行 Triton 推理服务器的容器,并且此永久性卷配置为推理服务器的模型存储库。

Triton 推理服务器使用 Kubernetes 部署文件使用不同的资源集进行部署,每个服务器实例都提供了一个负载平衡器前端以实现无缝可扩展性。这种方法还说明了为推理工作负载分配资源的灵活性和简便性。