triton矩阵乘以及缓存优化

news2024/11/25 15:25:11

这里triton.cdiv(M, META['BLOCK_SIZE_M']) * triton.cdiv(N, META['BLOCK_SIZE_N']),所以grid的形状是一维的。

观察函数内部

pid = tl.program_id(axis=0),因为grid是一维的,所以这里就是总块数,我们假设实际A*B=C,

A,B形状是574*574,块形状是64*64,这样一共有81块,pid就是0~80,

这里用574/64=9,所以num_pid_m和num_pid_n都是81

num_pid_in_group = GROUP_SIZE_M * num_pid_n,算的是一个组有多少块,这里假设是3*9,所以一组27块。

group_id = pid // num_pid_in_group算组id,当前pid//27就得到所在组id,比如30//27=1,说明30块在组1

first_pid_m = group_id * GROUP_SIZE_M,每一组的第一个块在结果矩阵中是第几行。

因为数据不一定能整除,最后一个组可能少,所以有

group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M)
pid_m = first_pid_m + (pid % group_size_m)
    pid_n = (pid % num_pid_in_group) // group_size_m

这两行做映射,是关于pid和结果矩阵中块位置的映射,

行坐标=组号*每组行数+pid%每组行数,pid%3知,pid三个三个一排,也就是算的当前pid在当前组里相对是第几行,比如如果是4,4%3=1,可知pid=4在当前组第一行(0,1,2),那么组号*每组行数就可以相对整组位移,最终可以知道pid和c矩阵中行位置的映射

列坐标=pid%每组总数//每组行数,pid%每组总数可知当前组顺序是第几块,也就是27块中的第几块,比如pid%4就会得到4,然后4//=1就知道在第几列了,

所以pid的对应关系就和上图的一样的顺序对应。

这里比如想要计算块pid=4,那么就需要拿到A的第一行和B的第一行,

这里各自会得到一个二维矩阵,里面的指针值就是所指向的元素位置,这里只是第一块

这里就好理解了,就是A矩阵从列迭代,B从行迭代,

不同的顺序,所要求的缓存中所需要的空间不一样,下面这一种在缓存受限的情况下要好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1830540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024文件找回:怎么恢复删除的数据?6种实用的数据恢复汇总锦集!

怎么恢复删除的数据?在当今数字化的时代,我们的电脑中存储了大量的重要数据,一旦数据丢失,可能会对我们的工作和生活造成极大的困扰。因此,掌握一些有效的电脑数据恢复方法是非常必要的。下面,我将介绍六种…

【仿真建模-anylogic】Port原理解析

Author:赵志乾 Date:2024-06-14 Declaration:All Right Reserved!!! 1. 类图 2. 原理解析 2.1 核心函数: Port作为各类型端口的基类,其核心方法如下 : 函数功能Port(A…

Github 2024-06-17 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-06-17统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量JavaScript项目3Python项目3C++项目3Rust项目1C#项目1Tcl项目1Java项目1TypeScript项目1Godot引擎 – 多平台2D和3D游戏引擎 创建周期:3817 天…

Suno新技能亮相:完美复刻歌手音色,我甚至不敢公开!

之前写过一篇文章 颠覆音乐创作! Suno史诗级更新,随便哼哼就能出一首好听的歌曲? Suno支持上传一段音频或者自己的哼唱进行续创歌曲,这个功能大家有玩出花样嘛? 可能很多人,还不知道这个到底有啥用! 大家先看看这首《满…

天翼云认证高级解决方案架构师,回忆题库,刚刚出炉,建议收藏

天翼云毕竟是国家队的 面向的都是大市场 虽然起步晚 但是人家底子厚,厚积薄发,且是央资背景,做的都是大项目 这种势下,学习且考出几个天翼云认证,那得安排上,以便以后跳槽,涨薪,…

《天软股票特色因子定期报告》

最新《天软股票特色因子定期报告》(2024-06),抢先发布 内容概要如下: 天软特色因子A08006(近一月日度买卖压力2)从行业角度分析,在电子设备、石油石化行业表现稳定,无论在有效性、区…

【ARM】MDK Debug模式下Disassembly窗口介绍

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 主要了解Disassembly窗口中包含的内容,和如何利用Disassembly中的内容了解程序的存储和调用情况。 2、 问题场景 对于Disassembly窗口中具体包含的内容不了解,无法合理地应用Disassembly窗口…

[数据集][目标检测]减速区域检测数据集VOC+YOLO格式1654张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1654 标注数量(xml文件个数):1654 标注数量(txt文件个数):1654 标注…

如何利用H5封装App:小猪APP分发为你解决难题

在这个移动互联网时代,开发一款App并不是件轻而易举的事情。你可能会遇到各种各样的挑战,尤其是当你想要快速上线并高效推广时。如何利用H5来封装App,解决这些难题呢?今天我们就来聊聊这个话题,并看看“小猪APP分发”是…

#0延时赋值

代码; module dff1;reg a, b;initial begina 0;b 1;a < b;b < a;$monitor ("%0dns: \$monitor: a%b b%b", $stime, a, b);$display ("%0dns: \$display: a%b b%b", $stime, a, b);$strobe ("%0dns: \$strobe : a%b b%b\n", $st…

Origin中增加一列并更新绘图

一、在book当中增加数据列 二、回到绘图中&#xff0c;双击图层 三、修改增加图像的格式 四、根据需要删除图例中多余的部分

【linux网络(四)】传输层协议详解(上)

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. UDP协议…

ABAP开发:屏幕输入中,在多个选项卡中如何确定选择了哪个Tab Strips?

在ABAP开发中&#xff0c;使用了SELECTION-SCREEN来创建了一个带有多个选项卡&#xff08;Tab Strips&#xff09;的屏幕。每个选项卡对应一个不同的屏幕编号&#xff08;SCREEN 101, 102, 103&#xff09;&#xff0c;如下图&#xff1a; 屏幕中有Name、Age、City三个标签选择…

开源、无广告的小巧的动态壁纸软件

一、简介 1、开源、无广告的小巧的动态壁纸软件。它是绿色软件&#xff0c;软件压缩包大小仅有 0.5MB&#xff0c;目前仅支持 Windows 平台。它简单好用&#xff0c;支持将各种尺寸、分辨率的 MP4、MOV 等主流格式的视频文件设置为桌面动态壁纸&#xff0c;性能表现以及稳定性都…

python数据分析---ch11 python数据描述性统计

python数据分析--- ch11 python数据描述性统计 1. Ch11--描述性统计2. 数据集中趋势的度量2.1 平均值2.2 中位数2.3 众数2.4 几何平均值2.5 调和平均值 3. 数据离散趋势的度量3.1 极差3.2 平均绝对偏差(MAD)3.3 方差和标准差3.4 下偏方差和下偏标准差3.5 目标下偏方差和目标下偏…

嵌入式技术学习——c51单片机——定时器

一、定时器 定时器是51单片机内部的资源&#xff0c;其电路连接和运转均在单片机内部完成。 定时器的作用&#xff1a; &#xff08;1&#xff09;用于计时系统&#xff0c;可实现软件计时&#xff0c;或程序每隔一固定时间完成一项操作 &#xff08;2&#xff09;替代长时…

windows下mysql设置开机自启动

windows下mysql设置开机自启动 情况1.mysql服务不存在情况2.mysql服务已存在 我们先检查一下电脑是否存在mysql服务 此电脑(右键)—>管理—>服务 看一下能不能找到相关mysql 服务 情况1.mysql服务不存在 以管理员的身份运行命令窗口,找到mysqld.exe 所在的路径 命令如下…

python flask配置数据库并进行orm操作 flask_sqlalchemy

&#x1f308;所属专栏&#xff1a;【Flask】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您的点…

python之对接有道翻译API接口实现批量翻译

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! python之对接有道翻译API接口实现批量翻译 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&…

Stable Diffusion 3 Medium 正式开源

Stable Diffusion 3 Medium 正式开源 Stability AI宣布Stable Diffusion 3 Medium现已开源&#xff0c;这是最新的文本生成图像AI模型&#xff0c;被官方声称为“迄今为止最先进的开源模型”&#xff0c;其性能超过了Midjourney 6。 这款Stable Diffusion 3 Medium模型拥有2…