ATB概念之:算子tiling

1 什么是算子tiling

在计算机科学和深度学习领域,算子 tiling(有时也被称作操作符 tiling 或者循环 tiling)是一种优化技术,主要用于提高计算效率,尤其是在处理大规模张量运算时。Tiling 技术通常用于将大的计算任务分解成更小的块,这些小块可以在内存中更高效地处理,或者更适合并行计算环境。

在深度学习框架中,算子 tiling 可以应用于不同的场景:

  1. 内存优化:通过将大的张量切分成更小的部分,可以更好地利用高速缓存(cache),减少内存访问延迟,从而提高计算性能。
  2. 并行计算:在分布式系统或GPU上,数据可以被切分成块(tiles),然后并行处理。这样可以让更多的处理器同时工作,加快计算速度。
  3. 避免内存溢出:对于非常大的张量,直接处理可能会导致内存不足的问题。通过 tiling,可以将数据分批处理,从而避免一次性加载整个张量到内存中。
    在深度学习模型的实现过程中,特别是在卷积神经网络(CNNs)中,经常会遇到需要对输入数据进行切片处理的情况。例如,在一些深度学习框架中,可以使用特定的API来实现 tiling 操作。

需要注意的是,“tiling”一词在不同的上下文中可能有不同的含义。在图像处理中,tiling 也可能指的是将图像分割成多个小块(tiles),以便于独立处理或存储。而在计算机图形学中,tiling 则可能涉及到纹理映射或屏幕渲染中的技术。不过,在上述情况下讨论的“算子 tiling”主要指的是与计算优化相关的一种技术。

2 tiling data

tiling操作输出的数据,就叫做tilingdata,是kernel的分片参数,用于决定kernel实际计算时的分片策略。在ATB中(ATB是什么? - 知乎 (zhihu.com))通常以结构体的形式存储,由用户输入的参数与张量Shape计算而来。

tiling data的计算通常放到host侧,tiling data在host侧计算完毕后,ATB再将其拷贝到device侧,作为kernel的输入提供给kernel。

既然是host->device肯定涉及到内存的拷贝,那如何优化这种拷贝任务也需要一种设计上的优化。在ATB中,存在三种不同的tiling data搬移策略:tiling整体搬移、多stream搬移、tiling随kernel下发搬移,当前默认使用的是tiling随kernel下发搬移这一方式。

3 ATB中的Tiling data搬移策略

3.1 整体搬移

tiling整体搬移方式会把每次计算出的tiling data存放到一片连续的host内存中,待所有kernel的tiling data计算完成后,再一次性搬移到device侧。

在性能优化方面,内存整体搬移相较于单个内存搬移,肯定是由有优势的。机器指令下发次数少,机器寻址次数也少。

3.2 多stream搬移方式

多stream搬移方式则是针对整体搬移方式做出的改良,其核心思路是通过stream并行的方式来减少tiling data搬移所消耗的时间。在该搬移策略中,ATB会准备好两个stream、一个环状的device缓冲区以及一系列同步信号量。

  • 其中一条stream用于kernel的执行,另一条则单独用于tiling data的拷贝。由于kernel的执行依赖于tiling data拷贝的完成,此时需要用同步信号量来保证另一条stream上的kernel执行动作位于当前kernel的tiling data拷贝完成之后。
  • 环状的device内存缓冲区则是用于处理在tiling data拷贝速度快于kernel执行速度时,提前拷贝到device侧的tiling data数据可以保存下来且不互相冲突。但在tiling data拷贝速度过于快时,有可能会出现device缓冲区被填满的情况,这种情况下需要增大device缓冲区中的内存块数。
    如上这种方式,也就是将tiling搬移作为异步任务下发,与kernel的执行形成流水的任务。这也是性能优化一种常用的手段。

注意:多stream搬移方式下的tiling data还是多个kernel的tiling data,不是单kernel的tiling data。

3.3 tiling随kernel下发搬移

该策略对tiling整体搬移方式进行了性能优化,但优化方式与多stream搬移方式不同。

tiling随kernel下发搬移的核心思路是:

  • 不再等待所有tiling data计算完毕后再一次性搬移到device侧,而是每次计算完一个kernel的tiling data就搬移至device侧。
  • 在kernel任务下发至device侧时,同时启动tiling data的搬移任务。这样就可以使host侧与device侧的设备并行,在host侧准备下一个kernel的tiling data的时候,device侧同时执行当前kernel任务,从而显著提升了tiling data的搬移效率。

如下图所示,相较于多stream搬移方式,在tiling data搬移速度过快时会导致的device缓存区不足,从而导致tiling data被覆盖,tiling随kernel下发搬移的方式不受两者(tiling data拷贝速度与kernel执行速度)速度的限制,且性能优化也更进一步。


image.png

tiling随kernel下发搬移策略
这种方式下,还是一个异步操作。

疑问:性能上相比多stream搬移方式有提升吗?感觉是是差不多的,主要是不是解决device缓存区不足,从而导致tiling data被覆盖的问题?

参考:

工作原理-进阶专题-Ascend Transformer Boost加速库-领域加速库开发-CANN商用版8.0.RC2.2开发文档-昇腾社区

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容