youzjuer
这个作者很懒,什么都没留下…
展开
-
triton之flaggems的point-wise分析
如果没有写triton.jit装饰器,则会报上面的错误,fn.args_names是JITFuntion的属性。原创 2024-08-20 17:15:02 · 52 阅读 · 0 评论 -
cuda指北之professional CUDA C Programming第五章共享内存
CPU的内存是线性存储的,但是GPU的共享内存并不是线性的,而是二维的说白了就是不要一个线程束中访问一列共享内存,而是要访问一行最好就是同步线程,不同bank(同一个线程束中)原创 2024-08-13 17:24:04 · 38 阅读 · 0 评论 -
triton之triton/runtime/jit.py分析
参数解释fnjitversionreprdebugnoinline返回类型。原创 2024-08-06 16:21:57 · 50 阅读 · 0 评论 -
cuda指北之professional CUDA C Programming第四章内存模型
GPU上最大的内存空间,延迟最高,使用最常见的内存,global指的是作用域和生命周期,一般在主机端代码里定义,也可以在设备端定义,不过需要加修饰符,只要不销毁,是和应用程序同生命周期的。使用共享内存的时候一定要注意,不要因为过度使用共享内存,而导致SM上活跃的线程束减少,也就是说,一个线程块使用的共享内存过多,导致更过的线程块没办法被SM启动,这样影响活跃的线程束数量。每个SM都有一定数量的由线程块分配的共享内存,共享内存是片上内存,跟主存相比,速度要快很多,也即是延迟低,带宽高。原创 2024-08-06 14:57:16 · 34 阅读 · 0 评论 -
cuda指北之professional CUDA C Programming第三章
CUDA只提供了一种块内同步的方式,块之间没办法同步。原创 2024-08-01 16:42:26 · 58 阅读 · 0 评论 -
triton之内联汇编
约束字符串,定义输入输出寄存器的分配。原创 2024-07-31 15:45:02 · 40 阅读 · 0 评论 -
cuda编译选项说明书
需要加一个-std=c++11。-I是指定依赖的库函数。原创 2024-07-30 11:00:51 · 41 阅读 · 0 评论 -
pytorch源码分析之index_put_with_sort_kernel
::::原创 2024-07-24 10:34:06 · 181 阅读 · 0 评论 -
flag-gems的装饰器point-wise分析
1 其中Optional表示输入参数为可选项,可以为指定的类型,或者为None,默认是None2 nonlocal在Python中, `nonlocal` 关键字用于在嵌套函数中声明一个非局部变量。它允许您在内部函数中访问和修改外部函数的变量。以下是 `nonlocal` 关键字的具体用法:声明非局部变量:在内部函数中使用 `nonlocal` 关键字,然后指定要声明为非局部变量的变量名。例如:x = 10nonlocal xx = 20print(x) # 输出: 20。原创 2024-06-27 15:03:57 · 93 阅读 · 0 评论 -
pytorch自定义扩展
pytorch的自定义拓展之(一)——torch.nn.Module和torch.autograd.Function_用torch.autograd.function还是nn.module-CSDN博客。原创 2024-06-19 14:30:13 · 114 阅读 · 0 评论 -
ptx学习
声明使用若干寄存器(谓词寄存器、32位寄存器和64位寄存器)。分别是当前线程块在x和y维度上的索引。从参数内存中加载函数参数到寄存器中。原创 2024-06-11 14:47:25 · 102 阅读 · 0 评论 -
cuda之transpose
【代码】cuda之transpose。原创 2024-06-05 10:55:08 · 69 阅读 · 0 评论 -
triton源码分析之setup.py
【代码】triton源码分析之setup.py。原创 2024-05-29 13:51:55 · 152 阅读 · 0 评论 -
高效triton编写指南
这种方式比tl.arange的方式要提前知道具体的内存的范围大小,有助于提高计算速度。原创 2024-05-23 14:43:08 · 84 阅读 · 0 评论 -
Dao-AILab之flash-attenton源码分析(一)整体分析
在flash_attn目录下。原创 2024-05-16 17:18:22 · 48 阅读 · 0 评论 -
triton之gemm
如果不采用group gemm的话,采用单流执行,则具体的硬件执行调度如下所示:gemm0,gemm1,gemm2同时分配任务给sm做 第一轮:gemm0、gemm1和gemm2的0-4分给4个sm去做,都计算完成第二轮:gemm0在上一轮已经计算完毕,gemm1和gemm2的45分给sm0,sm1去做,在这一轮可以发现,sm0和sm1针对gemm0的task出现了idel,而sm2和sm3对三个gemm的task都是idle状态而如果采用group gemm,则可以实现: 就是保证sm尽量满载,而不处于i原创 2024-05-13 17:26:00 · 152 阅读 · 0 评论 -
triton编译学习
Triton-MLIR: 从DSL到PTX - 知乎 (zhihu.com)Superjomn's blog | OpenAI/Triton MLIR 迁移工作简介。原创 2024-05-11 15:20:53 · 294 阅读 · 0 评论 -
pytorch教程
PyTorch 74.自定义操作torch.autograd.Function - 知乎 (zhihu.com)虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 "Extending torch.autograd"。原创 2024-05-08 11:04:14 · 59 阅读 · 0 评论 -
triton之fused attention
【BBuf的CUDA笔记】十五,OpenAI Triton入门笔记三 FusedAttention - 知乎 (zhihu.com)图解大模型计算加速系列:FlashAttention V1,从硬件到计算逻辑 - 知乎 (zhihu.com)图解大模型计算加速系列:Flash Attention V2,从原理到并行计算 (qq.com)原创 2024-05-07 10:00:31 · 131 阅读 · 0 评论 -
triton之语法学习
一 基本语法1 torch中tensor的声明x = torch.tensor([[1,2, 1, 1, 1, 1, 1, 1],[2,2,2,2,2,2,2,2]],device='cuda')原创 2024-05-06 09:30:45 · 196 阅读 · 0 评论 -
triton之normalization教程
在上式中,x是代表一个tensor。原创 2024-05-03 14:21:25 · 76 阅读 · 0 评论 -
triton之dropout教程
Transformer模型-Dropout的简明介绍:丢掉一些元素,防止过度拟合_transformer dropout-CSDN博客过程可以参考简单理解就是将mask为1的元素置零。原创 2024-04-30 15:19:41 · 49 阅读 · 0 评论 -
AI算法与模型综述
Transformer模型-Dropout的简明介绍:丢掉一些元素,防止过度拟合_transformer dropout-CSDN博客。将原有的tenser以一定的概率置零。原创 2024-04-30 14:28:22 · 78 阅读 · 0 评论 -
c++常见错误
这个就是对内存释放了两次,如果声明的数据是数组类型,则不再需要用free去释放,如果使用free释放这个数组,则会报这个错误。原创 2024-04-26 20:57:48 · 31 阅读 · 0 评论 -
cuda报错basic_string.tcc:1067:16: error: cannot call member function ‘void std::basic_string
本来在网络上找了很多办法,有说gcc版本需要6.x才行,但是6.x被centos的scl工具遗弃了,根本无法下载,后来才发现是是编译选项的问题。需要加一个-std=c++11。-I是指定依赖的库函数。原创 2024-04-26 18:50:51 · 35 阅读 · 0 评论 -
eigen使用教程
ubuntu c++使用eigen提示"fatal error: Eigen/Dense: No such file or directory"的解决办法_: fatal error: eigen3/eigen/dense: 没有那个文件或目录 #incl-CSDN博客。原创 2024-04-16 14:57:15 · 105 阅读 · 0 评论 -
c++利用动态链接库执行文件
也可以对二进制文件执行nm命令来查看具体的符号链接。前面的是target 后面的是source。原创 2024-04-12 19:35:36 · 69 阅读 · 0 评论 -
cmake实用代码学习
已经在之前的代码中定义了,那么这个操作不会改变它的值。但是如果它之前未定义,这个操作会将其定义并赋予一个空值或者未定义的状态。这种用法可以帮助避免在后续代码中出现变量未定义的错误,因为在这之前已经通过。函数确保了它的存在。原创 2024-04-09 20:12:03 · 66 阅读 · 0 评论 -
升级eigen3到3.4版本
ubuntu升级eigen到3.4.0_查看eigen版本-CSDN博客。ubuntu 重装/升级 eigen 教程_升级eigen-CSDN博客。原创 2024-04-09 14:55:39 · 205 阅读 · 0 评论 -
centos安装nvidia驱动(附各种问题)
1、Linux查看显卡信息:(ps:若找不到lspci命令,可以安装 yum install pciutils)2、使用nvidia GPU可以:3、查看显卡驱动。原创 2024-04-08 16:59:23 · 830 阅读 · 0 评论 -
docker最简单教程(使用dockerfile构建环境)
安装好的docker+dockerfile。原创 2024-04-08 11:23:49 · 221 阅读 · 0 评论 -
triton教程--vector addition逐行解释
来自于官方的文档的解释说明原创 2024-03-19 17:10:48 · 105 阅读 · 0 评论 -
python中使用anaconda
括号中的名字就是刚才设定的virtualenv_name。然后后续使用的pip就是虚拟环境中的pip。* 在第一步中指定了python的环境。原创 2024-03-17 11:32:19 · 64 阅读 · 0 评论 -
word中插入图片目录
分别选择位1级和2级。原创 2024-03-04 16:44:28 · 223 阅读 · 0 评论 -
计算机组成与设计++硬件软件接口+risc-v 第二章 计算机的语言
存在上述情况的根本原因是,地址是+1,则存储空间+8个字节,双字需要64bits,因此需要地址是64/8=8,所以双字的地址自增数为8。原创 2024-01-26 09:51:28 · 247 阅读 · 0 评论 -
cadence中利用sva进行FPV实战(可直接使用)
在cadence中使用fpv进行formal验证原创 2023-04-01 19:09:24 · 223 阅读 · 0 评论 -
C指针大合集
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。,在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。这是定义了一个指针t,t可以制指向任意类型的值,对b不能通过上述方法(其他方法也不行)进行修改。红色字体的理解:但是b指向的内容不能修改。const是定义常量,不可修改。原创 2023-11-22 11:33:13 · 95 阅读 · 0 评论 -
Latex学习
【LaTeX 语法】字母表示 ( 大写、小写、异体 希腊字母 | 粗体字母 | 花体字母 )_latex字母_韩曙亮的博客-CSDN博客。原创 2023-11-20 11:35:12 · 167 阅读 · 0 评论 -
嵌入式汇编大合集
嵌入式汇编。原创 2023-09-27 16:35:35 · 374 阅读 · 0 评论 -
risc-v dv源代码分析
地址为文件结构为没有贴完整。原创 2023-09-11 14:27:10 · 1051 阅读 · 0 评论