专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
今天看啥  ›  专栏  ›  GiantPandaCV

【CUDA编程】束内规约与块内规约问题

GiantPandaCV  · 公众号  · 3D  · 2023-11-26 23:20
写在前面:规约问题在 CUDA 编程中应用非常广泛,笔者最近在研究 Faster Transformer 源码,趁此机会结合 Nivida 官方的代码对规约手段进行总结。1 应用背景关于规约的定义,相信能读到这篇文章的读者都不陌生,笔者在早期的文章中也介绍过一些规约方法,基本思想都是折半规约,主要应用于较大元素规模的向量规约,有兴趣的读者可以移步【CUDA编程】CUDA编程中的并行规约问题。本文要介绍的规约场景与之前有所不同,主要应用于矩阵规约,也就是说本文假设的输入变量的维度是 2 维的,形状为 [batch_size, hidden_units],规约之后的输出变量形状为 [batch_size, ]。接下来,本文将以规约求和为例介绍两种规约方式:束内规约、块内规约。2 束内规约束内规约,也就是在一个线程束内对某个变量进行规约。我们知道 CUDA 架构下指令是以线程束(相邻的 32 个 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照