自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (2)
  • 收藏
  • 关注

原创 高效triton编写指南

这种方式比tl.arange的方式要提前知道具体的内存的范围大小,有助于提高计算速度。

2024-05-23 14:43:08

原创 triton之flag-attention源码分析

主要的实现,在一个类FlashAttention中实现在这个类中调用的其他函数都不是类的内部的函数,类的内部的函数只有这两个这两个函数是一定要这样实现的,是固定写法。

2024-05-20 17:33:36 155

原创 Dao-AILab之flash-attenton源码分析(一)整体分析

在flash_attn目录下。

2024-05-16 17:18:22 11

原创 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 32

原创 triton编译学习

Triton-MLIR: 从DSL到PTX - 知乎 (zhihu.com)Superjomn's blog | OpenAI/Triton MLIR 迁移工作简介。

2024-05-11 15:20:53 195

原创 torch教程

PyTorch 74.自定义操作torch.autograd.Function - 知乎 (zhihu.com)虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 "Extending torch.autograd"。

2024-05-08 11:04:14 36

原创 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 48

原创 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 120

原创 triton之normalization教程

在上式中,x是代表一个tensor。

2024-05-03 14:21:25 38

原创 triton之dropout教程

Transformer模型-Dropout的简明介绍:丢掉一些元素,防止过度拟合_transformer dropout-CSDN博客过程可以参考简单理解就是将mask为1的元素置零。

2024-04-30 15:19:41 26

原创 AI算法与模型综述

Transformer模型-Dropout的简明介绍:丢掉一些元素,防止过度拟合_transformer dropout-CSDN博客。将原有的tenser以一定的概率置零。

2024-04-30 14:28:22 33

原创 triton之softmax

我们的softmax kernel的工作方式如下:每个程序加载输入矩阵X的一行,对其进行归一化处理,然后将结果写回到输出Y中。需要注意的是,load加载的需要是tensor数据,因此inputs_ptrs必须有一个指针指向tensor的过程,并不是简单的像c++的指针指向内存,只需要指向的过程,而且需要一个指明范围的过程,而且load的过程,就是将数据从global ram向sram传输数据的过程。【BBuf的CUDA笔记】十三,OpenAI Triton 入门笔记一 - 知乎 (zhihu.com)

2024-04-30 11:15:31 11

原创 tmux使用教程

和枯燥的终端说再见吧 → 终端复用工具 Tmux - 知乎 (zhihu.com)

2024-04-29 17:18:22 142

原创 c++常见错误

这个就是对内存释放了两次,如果声明的数据是数组类型,则不再需要用free去释放,如果使用free释放这个数组,则会报这个错误。

2024-04-26 20:57:48 11

原创 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 12

原创 vim的IDE进阶之路

安装ctags比较简单,我用的是vim-plug,网络上随便一搜应该就有很多教程,而且没有什么坑。

2024-04-24 17:22:46 544

原创 neovim0.9版本安装

ln: 无法创建符号链接"/usr/bin/nvim": 文件已存在。如果在建立软连接的时候出现。

2024-04-24 11:10:23 30

原创 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 33

原创 c++利用动态链接库执行文件

也可以对二进制文件执行nm命令来查看具体的符号链接。前面的是target 后面的是source。

2024-04-12 19:35:36 40

原创 cmake实用代码学习

已经在之前的代码中定义了,那么这个操作不会改变它的值。但是如果它之前未定义,这个操作会将其定义并赋予一个空值或者未定义的状态。这种用法可以帮助避免在后续代码中出现变量未定义的错误,因为在这之前已经通过。函数确保了它的存在。

2024-04-09 20:12:03 53

原创 升级eigen3到3.4版本

ubuntu升级eigen到3.4.0_查看eigen版本-CSDN博客。ubuntu 重装/升级 eigen 教程_升级eigen-CSDN博客。

2024-04-09 14:55:39 57

原创 triton环境安装

基于centos7安装,曾经尝试了ubuntu16.04安装nvidia的驱动,发现非常麻烦,不推荐,推荐centos7安装,直接命令行就可以安装,相关教程可参考之间发布的博客。

2024-04-09 14:07:54 436

原创 centos安装nvidia驱动(附各种问题)

1、Linux查看显卡信息:(ps:若找不到lspci命令,可以安装 yum install pciutils)2、使用nvidia GPU可以:3、查看显卡驱动。

2024-04-08 16:59:23 282

原创 docker最简单教程(使用dockerfile构建环境)

安装好的docker+dockerfile。

2024-04-08 11:23:49 172

原创 c++模板杂计

模板是本质上是代码生成器。

2024-04-03 15:22:42 220

原创 ubunt16.04中ubuntu-drivers devices没有输出

更换为下面的源就可以。

2024-03-30 15:46:05 494

原创 ubuntu16.04碰到dpkg-deb:错误:归档 /var/cache/apt/archives/init-system-helpers_1.62_all.deb 对成员 control.tar

这是问题我找了好多办法,最好发现是ubutun的源和你添加的源不匹配,也就是我们在更换ubuntu16.04的源的时候,前往不能用20.04的源,一定要搜16.06的源

2024-03-30 11:36:30 409

原创 triton教程--matrix multiplication逐行解释

triton中的matrix multiplication代码注释讲解

2024-03-21 10:33:30 691

原创 triton教程--vector addition逐行解释

来自于官方的文档的解释说明

2024-03-19 17:10:48 38

原创 python中使用anaconda

括号中的名字就是刚才设定的virtualenv_name。然后后续使用的pip就是虚拟环境中的pip。* 在第一步中指定了python的环境。

2024-03-17 11:32:19 43

原创 word中插入图片目录

分别选择位1级和2级。

2024-03-04 16:44:28 116

原创 leetcode-206-翻转链表

对于链表来说,->next就是代表图上的那个箭头,指向后,就相当于已经建立完链接,就可以改变只想节点的指针的位置了每一个指针,则是代表一个圈。

2024-02-08 16:48:02 230

原创 leetcode-215-数组中的第K个最大元素

(2)、依次弹出大根堆的根节点,但弹出k-1次后,此时的根节点就是要求第k个大的值。3、具体构造: (1)、构造大根堆: 首先数据是以数组形式存储的,在堆中也一样,构造大根堆的过程就是将合适的元素互换位置的过程。(2)在上面的大根堆构造完毕后,就可以弹出根节点了,总共要弹k-1次,且每次弹出一个值,就要对原本的大根堆进行更新,这里的弹出的做法是将0与i的位置交换,实际交换的值都依次排在堆得后面,这里交换的值都是弹出来的,所以在更新大根堆时就不能把这些算上,所以就可以用heapsize限定边界了。

2024-02-04 15:39:01 152

原创 leetcode常见错误

力扣:runtime error: load of null pointer of type ‘std::_Bit_type‘ (aka ‘unsigned long‘) (stl_bvector)_runtime error: load of null pointer of type 'std::-CSDN博客。而是用resize()函数。

2024-01-30 19:10:32 172

原创 计算机组成与设计++硬件软件接口+risc-v 第二章 计算机的语言

存在上述情况的根本原因是,地址是+1,则存储空间+8个字节,双字需要64bits,因此需要地址是64/8=8,所以双字的地址自增数为8。

2024-01-26 09:51:28 237

原创 Linux安装软件(常用的、易安装的)

Linux下不使用root权限安装Anaconda - 知乎 (zhihu.com)

2024-01-25 10:23:27 352

原创 leetcode-200-岛屿问题

如果要改变数组的内容,要函数传参要用引用的形式,不要直接传值,不然会浪费很多时间。

2024-01-24 18:41:17 135

原创 leetcode-560-和为K的子数组

给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。22。

2024-01-04 19:23:26 337

原创 c++知识总结

C++学习笔记之pragma once的理解_pragma once什么意思-CSDN博客。保证只被编译一次,和#ifndef,#define,#endif功能相同。

2023-12-14 08:57:26 1077

原创 C指针大合集

void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。,在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。这是定义了一个指针t,t可以制指向任意类型的值,对b不能通过上述方法(其他方法也不行)进行修改。红色字体的理解:但是b指向的内容不能修改。const是定义常量,不可修改。

2023-11-22 11:33:13 87

史上最全 excel技巧

是非常实用并且全面的excel技巧,有助于大家对于excel的学习

2012-10-06

win7密码超级破解

一个可靠实用的win7密码破解方法,并且不会破坏原有系统,方法新颖,简单易掌握

2012-09-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除