0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用NVIDIA模型分析仪最大限度地提高深度学习的推理性能

电子设计 来源: 电子设计 作者: 电子设计 2020-10-21 19:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

你已经建立了你的深度学习推理模型并将它们部署到 NVIDIA Triton Inference Serve 最大化模型性能。 你如何进一步加快你的模型的运行速度? 进入 NVIDIA模型分析器 ,一个收集模型计算需求的工具。

没有这些信息,在理解在GPU上运行多少模型方面就存在知识差距。 通过收集冷热储存需求,您可以使用它们通知模型的调度,以获得几个好处:

最大化模型吞吐量—确保放置在每个GPU上的模型总和不超过可用内存和GPU利用率的特定阈值,例如100%。这样可以最大限度地提高硬件的吞吐量。

优化硬件使用—检查GPU内存需求,以便在较少硬件上运行更多型号。您可以使用此数据来确定每个GPU可以加载的最大模型数,而不是优化吞吐量,从而减少所需的硬件,或者权衡吞吐量的权衡。

提高了可靠性—通过了解在GPU上加载的模型不会超出其能力,消除内存不足错误。

此外,还有两个关键的非调度好处:

有效的模式—比较和对比不同的模型,将计算需求作为一个额外的数据点来衡量模型的性能。这有助于生成更轻量级的模型,并减少推理所需的内存量。

更好的硬件尺寸—使用内存需求确定运行模型所需的确切硬件数量。

总之,理解推理模型的计算要求提供了从模型创建和硬件大小到模型的可靠、高效运行的大量好处。 下面我们来看看ModelAnalyzer,看看它如何为最高性能的推理解决方案做出贡献。

获取模型分析器Docker容器

在使用推理服务器容器之前,必须安装一些软件,如Docker。 有关更多信息,请参见 安装Docker和NVIDIA Docke 一节进去 NVIDIA Docker:GPU服务器应用程序部署容易.

模型分析器作为Helm图表、Docker容器或独立命令行接口运行。 对于本教程,您可以从源代码the构建Docker容器 triton-inference-server/model_analyzer Github回购。

git clone https://github.com/triton-inference-server/model_analyzer.git
cd model_analyzer
docker build -t memory-analyzer

要为您的模型运行容器,请确保端口8000、8001和8002可用。 然后,运行以下命令,替换大写参数:

docker run -v /var/run/docker.sock:/var/run/docker.sock /
-v /ABSOLUTE/PATH/TO/MODELS:ABSOLUTE/PATH/TO/MODELS /
-v /ABSOLUTE/PATH/TO/EXPORT/DIRECTORY:/results --net=host /
memory-analyzer:ANALYZER-VERSION /
--batch BATCH-SIZES /
--concurrency CONCURRENCY-VALUES /
--model-names MODEL-NAMES /
--triton-version TRITON-VERSION /
--model-folder /ABSOLUTE/PATH/TO/MODELS /
--export --export-path /results/

这里有一个示例命令供参考:

docker run -v /var/run/docker.sock:/var/run/docker.sock /
-v /home/user/models: /home/user/models /
-v /home/user/results:/results --net=host /
memory-analyzer:latest /
--batch 1,2,4 /
--concurrency 1,2,4 /
--model-names chest_xray,covid19_xray/
--triton-version 20.02-py3 /
--model-folder /home/user/models /
--export --export-path /results/

容器完成后,每个模型、批处理大小和并发值的度量将导出到您选择的目录中。 信息是通过在系统运行时收集度量来收集的,因此在一个孤立的GPU或仅运行模型分析器的系统上运行它是理想的。

使用计算需求进行优化

下面是如何使用这些度量来优化系统性能。 我们讨论了两个使用医学推断模型的案例研究:

第一个案例研究探讨了如何将间歇性运行的系统的硬件最小化,例如需要在最小硬件上运行许多模型的低成本医疗提供商。

第二个案例研究探讨了使用最少的硬件来最大化这些相同模型的吞吐量,例如在一致的基础上运行许多模型的大型急诊室。

这两个案例研究都是手动完成这些步骤的,因此我们最后讨论了将模型元数据纳入自动调度的下一步。 对于这两项研究,为了简化分析,我们使用总结的数据,对每个模型使用2的模型批处理大小和4的并发。

马克斯记忆用法(%) 马克斯GPU使用(%) 最大GPU内存(MB)
0 9 309

表1。 只运行TritonServer的内存使用。

Model Batch 流率 马克斯记忆用法(%) 马克斯GPU使用(%) 最大GPU内存(MB)
classification_breast 2 4 1381.6推断/秒 1 23 1461
classification_chest 2 4 172.4推断/秒 11 56 5035
分类_玛利亚 2 4 586推断/秒 2 43 1851
节段_CT_Colon_Tumo 2 4 33.6推断/秒 60 60 6955
segmentation_ct_胰腺 2 4 29.6推断/秒 51 79 6955
节段_CT_脾 2 4 32推断/秒 54 54 6955
肝段 2 4 28推断/秒 53 76 11051
分段_MRI_脑_肿瘤 2 4 4推断/秒 48 48 8579
分段_MRI_海马 2 4 30.8推断/秒 52 52 6955

表2。 每个运行模型的内存使用情况。

通常,有几种潜在的方法:

每个GPU放置一个模型。 这意味着这9种型号的9个GPU。 例如,如果要在DGX上运行,这种方法将需要两个不能充分利用的DGX。

把所有的模型放在一个GPU上。 这只需要一个GPU,但会导致“内存不足”错误。

在每个GPU上放置任意数量的模型。 这涉及到以前方法的问题。 如果每个GPU放置两个模型,则只需要5个GPU。 然而,记忆错误仍然是一个风险,例如,如果你把肝脏分割和脑肿瘤分割模型放在一个GPU上。 同时,其他GPU没有得到充分或最佳的利用,例如当您将乳房和胸部x射线分类放在一个GPU上时。

另一种选择是什么?

案例研究:尽量减少间歇系统的硬件

想象一下,你有一个系统,你知道它只会断断续续地出现,所以你想在最少的硬件上安装尽可能多的模型。 在这种情况下,GPU内存是瓶颈。 您可以为Triton Server减去309MB的内存,以单独获得模型的GPU内存,然后查看在GPU上的一个服务器上可以容纳多少模型。

表3显示,可以匹配的模型只使用四个16GB GPU与以下配置,这协调了最小的GPU可能为这些模型,需要53GB的内存。

GPU # 模特儿典型 带有服务器的GPU内存(MB
1 分类_胸部,节段_CT_结肠_肿瘤 11681
2 classification_breast,segmentation_live 12203
3 分类_疟疾,节段_MRI_海马,节段_CT_脾 15143
4 节段_CT_胰腺,节段_MRI_脑_肿瘤 15225

表3。 最小硬件的示例配置。

使用这种配置,您的GPU数量最少,同时保证没有内存错误。 这是一个很好的设置,用于间歇性地运行模型,当吞吐量不需要达到最大值时。

案例研究:最大限度地提高一致的、关键的系统的性能

对于此设置,最大吞吐量是优先级,因此必须确保吞吐量不会因为所有模式的并发负载而下降。 查看所有指标,以确保内存利用率、GPU利用率和GPU内存总量不超过机器的计算资源。

As total GPU utilization adds up to 491% and would therefore require a minimum of five GPUs, compared to total memory utilization (332%, or four GPUs) or total GPU memory (52 GB, or four GPUs), GPU utilization is the bottleneck and a great place to start.

表4假设GPU利用率阈值为100%,并显示了一个只有6个16GB GPU的示例配置。

GPU # 模特儿典型 内存使用(%) GPU使用(%) 带有服务器的GPU内存(MB
1 节段_CT_Colon_Tumo 60 60 6955
2 肝段 54 76 11051
3 classification_chest,classification_breast 12 79 2939
4 segmentation_ct_pancreas 51 79 6955
5 级化_级,细分_级 56 97 8497
6 Segmentation_MRI_海马,segmentation_mri_brain_tumo 100 100 15225

表4。 最大吞吐量的示例配置。

这与每个模型的批处理大小和并发值相同。 通过调整,使用不同的批处理大小和并发值来最大化吞吐量,内存和GPU利用率会有更高的变化,从而节省更多的资源。 此外,如果您的系统可以牺牲一些吞吐量,您可以使用更少的硬件,只需占用内存或GPU利用率的100。

进一步用例:自动调度

虽然这两个案例研究显示了优化系统运行的手工操作,但最有可能的用例是将这些数据自动纳入调度。 调度规则将放在计算需求之上,例如在模型运行时不要使用超过80%的GPU或80%的GPU内存。 这样的规则是你的模式,模型的使用计算元数据收集。

有了计算机需求,您就可以确定什么对您最重要,并从硬件中获得最大的性能。

结局推论

使用Triton Server工具Model Analyzer,您可以轻松高效地描述您的模型,使您能够最大限度地提高硬件的性能。 无论您使用命令行接口、Docker容器还是Helm图表,ModelAnalyzer都会收集模型的计算需求,允许您最大化性能并最小化运行模型所需的硬件。

正如将9个GPU减少到4个或6个GPU的案例研究所显示的,将这些数据合并到您的调度中是非常强大的。 对数据的进一步探索提供了对批处理大小和并发如何影响模型的洞察,使您能够使用Triton Server以最大的性能运行模型。

Model Analyzer 是开源的,在GitHub上可用。

关于作者

关于大卫·亚斯特雷姆斯基
大卫·亚斯特雷姆斯基是NVIDIA的软件实习生,从事克拉拉部署工作。 他是一名硕士学位学生,在宾夕法尼亚大学学习计算机科学,对医疗AI充满热情,未来人人都能获得高质量的医疗保健。


审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分析仪
    +关注

    关注

    0

    文章

    1774

    浏览量

    54892
  • NVIDIA
    +关注

    关注

    14

    文章

    5682

    浏览量

    110095
  • 深度学习
    +关注

    关注

    73

    文章

    5603

    浏览量

    124609
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    通过NVIDIA Jetson AGX Thor实现7倍生成式AI性能

    Jetson Thor 平台还支持多种主流量化格式,包括 NVIDIA Blackwell GPU 架构的新 NVFP4 格式,有助于进一步优化推理性能。该平台同时支持推测解码等新技术,为在边缘端加速生成式 AI 工作负载提供了新的途径。
    的头像 发表于 10-29 16:53 1614次阅读

    NVIDIA TensorRT LLM 1.0推理框架正式上线

    TensorRT LLM 作为 NVIDIA 为大规模 LLM 推理打造的推理框架,核心目标是突破 NVIDIA 平台上的推理性能瓶颈。为实
    的头像 发表于 10-21 11:04 1386次阅读

    利用NVIDIA DOCA GPUNetIO技术提升MoE模型推理性能

    在第三届 NVIDIA DPU 中国黑客松竞赛中,我们见证了开发者与 NVIDIA 网络技术的深度碰撞。在 23 支参赛队伍中,有 5 支队伍脱颖而出,展现了在 AI 网络、存储和安全等领域的创新突破。
    的头像 发表于 09-23 15:25 1178次阅读

    什么是AI模型推理能力

    NVIDIA 的数据工厂团队为 NVIDIA Cosmos Reason 等 AI 模型奠定了基础,该模型近日在 Hugging Face 的物理
    的头像 发表于 09-23 15:19 1445次阅读

    使用NVIDIA NVLink Fusion技术提升AI推理性能

    本文详细阐述了 NVIDIA NVLink Fusion 如何借助高效可扩展的 NVIDIA NVLink scale-up 架构技术,满足日益复杂的 AI 模型不断增长的需求。
    的头像 发表于 09-23 14:45 1091次阅读
    使用<b class='flag-5'>NVIDIA</b> NVLink Fusion技术提升AI<b class='flag-5'>推理性能</b>

    同步热分析仪的联用技术的应用

    同步热分析仪是一款可同时测量样品的tg和dsc信号的热分析仪器,被广泛应用在材料科学、高分子工程师、医药生物、能源等领域。随着同步热分析仪性能技术的不断提升,同步热
    的头像 发表于 08-28 16:04 1036次阅读
    同步热<b class='flag-5'>分析仪</b>的联用技术的应用

    利用矢量网络分析仪测试大动态范围微波器件的几种方法

    利用矢量网络分析仪对微波器件进行测试时,矢量网络分析仪的测试动态范围将影响被测微波器件(DUT)的测量范围、测量精度和测量速度。只有矢量网络分析仪的测试动态范围大于被测微波器件的动态范
    的头像 发表于 08-27 17:33 1873次阅读
    <b class='flag-5'>利用</b>矢量网络<b class='flag-5'>分析仪</b>测试大动态范围微波器件的几种方法

    NVIDIA Nemotron Nano 2推理模型发布

    NVIDIA 正式推出准确、高效的混合 Mamba-Transformer 推理模型系列 NVIDIA Nemotron Nano 2。
    的头像 发表于 08-27 12:45 1991次阅读
    <b class='flag-5'>NVIDIA</b> Nemotron Nano 2<b class='flag-5'>推理模型</b>发布

    NVIDIA从云到边缘加速OpenAI gpt-oss模型部署,实现150万TPS推理

    的发布持续深化了双方的 AI 创新合作。NVIDIANVIDIA Blackwell 架构上优化了这两款全新的开放权重模型并实现了推理性能加速,在
    的头像 发表于 08-15 20:34 2474次阅读
    <b class='flag-5'>NVIDIA</b>从云到边缘加速OpenAI gpt-oss<b class='flag-5'>模型</b>部署,实现150万TPS<b class='flag-5'>推理</b>

    功率分析仪最大峰值因数的真实含义

    某些功率分析仪将可测量峰值因数作为重要特点进行宣传。例如:某高精度功率分析仪标称最大可测量峰值因数为6,另一高精度功率分析仪则标称最大可测量
    的头像 发表于 08-04 18:11 1163次阅读
    功率<b class='flag-5'>分析仪</b><b class='flag-5'>最大</b>峰值因数的真实含义

    PCIe协议分析仪能测试哪些设备?

    :提升数据中心的整体效率,降低CPU负载。 四、异构计算与扩展设备 多GPU系统 测试场景:利用PCIe协议分析仪模拟高负载的GPU间通信,测试PCIe交换机的性能和稳定性。 应用价值:确保复杂多GPU
    发表于 07-25 14:09

    如何测试协议分析仪的实时响应效率?

    测试协议分析仪的实时响应效率需从硬件性能、软件处理能力、协议解析精度和实际场景模拟四个维度综合评估。以下是具体测试方法及步骤,结合工具与场景设计,帮助量化分析仪的实时性表现:一、硬件性能
    发表于 07-24 14:19

    信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代

    网络智能诊断平台。通过对私有化网络数据的定向训练,信而泰打造了高性能、高可靠性的网络诊断模型,显著提升了AI辅助诊断的精准度与实用性。该方案实现了网络全流量深度解析能力与AI智能推理
    发表于 07-16 15:29

    模型推理显存和计算量估计方法研究

    ,为实际应用提供了有益的参考。 未来,我们将继续深入研究大模型推理的优化方法,以降低显存和计算资源的需求,提高深度学习模型在实际应用中的
    发表于 07-03 19:43

    是德N9917A FieldFox手持分析仪 N9917B便携式分析仪

    电压表。 N9917A FieldFox 手持式微波分析仪 主要特性和功能 18 GHz 最大频率 *随身携带功能齐全的手持式分析仪:标准型号包括电缆和天线分析仪 *添加 VNA、频谱
    的头像 发表于 05-07 16:58 1507次阅读