【论文阅读】Automated Runtime-Aware Scheduling for Multi-Tenant DNN Inference on GPU

本文主要是介绍【论文阅读】Automated Runtime-Aware Scheduling for Multi-Tenant DNN Inference on GPU,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该论文发布在 ICCAD’21 会议。该会议是EDA领域的顶级会议。

基本信息

AuthorHardwareProblemPerspectiveAlgorithm/StrategyImprovment/Achievement
Fuxun YuGPU
  • Resource under-utilization
  • Contention
SW Scheduling
  • Operator-level scheduling
  • ML-based scheduling auto-search
  • Reduced inference makespan

论文作者

Fuxun Yu 是一名来自微软的研究员。主要研究的是大规模深度学习服务系统。上一次看它的论文是一片关于该领域的综述,感觉写的蛮不错的。

背景

现在深度学习特别特别地火,multi-tenant DNN inference 也变成一个比较重要的问题。那什么是 multi-tenant DNN inference 呢?简而言之,就是研究如何让 GPU 同时运行不同模型推理。现有解决 multi-tenant DNN inference 问题的主要方法有两种:sequential exection 和 parallel/concurrent exection。
在这里插入图片描述

但这两种方式对于 GPU 资源利用不够充分。第一种方法(Sequential)由于是串行计算,自然GPU利用会比较低。第二种方法(Parallel)尽管前期提高了 GPU 的利用率,但当有的模型层数比较深,有的模型比较浅时,还会出现不平衡的现象。而且,由于GPU和内存资源争用,会产生高额的格外开销。
为此,希望提出一个新的解决方案,该解决方法能够进一步提高资源的利用率从而降低 latency。
在这里插入图片描述

Schedualing Framework

multi-tenant schedule的关键点在于如何管理运行时的一致性以及平衡资源利用率。

基本思想

在这里插入图片描述

对于 Stream-Level 并行而言, 每个 GPU 流都会分配一个执行序列以实现不同模型并行推理。同时,如果要实现更细粒度的调度,这里引入一个概念 ---- 「pointers」。在插入同步阻碍(synchronization barries)的地方叫pointer。这样会将一个执行序列分成多个stage,这种拆分操作可以保证只有同一stage的操作才共享资源。我们可以通过调整pointers的位置而改变每个阶段的操作数量,从而找出最优的资源利用率策略。最后,状态内也做了一点优化,传统的DFS调动策略会导致GPU流之间存在优先级,导致停滞时间很长,因此改成使用BFS调度策略,使每个操作都得到执行。

这里有一个最关键的地方就是状态如何划分。接下来重点讲解这一部分。

Automated Scheduling Search

在这里插入图片描述

首先要明确我们的目标是找到一个stage集合,使得总时延最少。

τ ∗ = arg ⁡ min ⁡ τ f ( τ ) , for τ ∈ D τ \tau^*=\arg\min_\tau f(\tau),\quad\text{for} \tau\in D_\tau τ=argτminf(τ),forτDτ
但由于 D τ D_\tau Dτ 并不是一个规则的数组集合,这导致难以比较和优化,在此,做了一个pointers和stages的映射:
ρ ∗ = arg ⁡ min ⁡ ρ f ( τ ) , s . t . τ = T ( G , ρ ) , f o r ρ ∈ D ρ . \begin{aligned}&\rho^*=\arg\min_\rho f(\tau),\\&\mathrm{s.t.}\quad\tau=T(G,\rho),\quad\mathrm{for}\rho\in D_\rho.\end{aligned} ρ=argρminf(τ),s.t.τ=T(G,ρ),forρDρ.
关于 T ( G , ρ ) T(G, \rho) T(G,ρ) 的用法,下面这个例子可以说明:

ρ 1 : ( 3 , 5 , 7 ) + S 1 : [ 1 , 2 , 3 , . . . , 9 , 10 ] = S 1 ′ : [ 1 , 2 , 3 ] , [ 4 , 5 ] , [ 6 , 7 ] , [ 8 , 9 , 10 ] \begin{aligned}\rho_1:(3,5,7)&~+~\mathcal{S}_1:[1,2,3,...,9,10]=\\&\mathcal{S}_1^{^{\prime}}:[1,2,3],[4,5],[6,7],[8,9,10]\end{aligned} ρ1:(3,5,7) + S1:[1,2,3,...,9,10]=S1:[1,2,3],[4,5],[6,7],[8,9,10]

这样我们可以将不定长且不规则的Stages数组变成规则的pointers矩阵。之后根据上图进行迭代优化,找出最优解。

Random Search

第一种方法是随机搜索,顾名思义,该算法会从搜索空间中随机抽取样本(pointers矩阵),然后计算相应的时延成本。经过多轮迭代,选择最低时延成本的样本作为最优解。

这种方法虽然很简单,但后面也验证了该方法的有效性。

Coordinate Gradient Search

第二种方法是坐标梯度搜素。这种方法类似于我们所说的控制变量法。核心思想是每次仅仅对一个模型的划分策略做优化。
具体的算法流程如下:
在这里插入图片描述

模型性能评估

加速性能

在这里插入图片描述
可以看到,该模型所用时间比传统算法都有提高,模型集合的复杂程度越高,性能越好。这其实也符合常理,不同模型复杂度相差越大,该算法的加速效率越高,因为它将资源更加均匀地分配了。

搜索算法比较与开销分析

搜索算法性能
在所有情况下,无论是Random还是Coordinate都优于传统的并行策略。但在模型集合复杂度很高的时候,Random算法的效果并不理想,只有在1000轮时才有很明显的效果。话又说回来,如果模型集合的复杂度不高,大可以使用Random算法,这个算法的时间复杂度一定是远远低于coordinate算法的。

下面来看一下Coordiante算法的时间开销。
在这里插入图片描述
在大部分情况下,Coordiante算法的时间开销大概在10s-3min内。由于我们只需要对模型集合调整一次(但模型集合会有很多呀)并且可以离线调优,因此是这点时间开销可以接受的。

这篇关于【论文阅读】Automated Runtime-Aware Scheduling for Multi-Tenant DNN Inference on GPU的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/638570

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已