Skip to content

zeroRains/CUDA-kernel-optimization-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA Kernal基本优化思路DEMO

本仓库用于记录一些kernel的优化思路的一些实现demo,以便于个人理解和学习。

其中包括

  1. softmax
  2. reduce
  3. sgemm的各类优化,2维线程块划分,向量化读取,warp级分块,双缓冲区
  4. flash attention v1

有些kernel还配套创建了XX_try.cu文件,在理解了kernel实现细节之后可以在XX_try.cu文件中删除掉带有core kernel Tag的方法的实现内容,然后自己去实现,编译执行后,如果实现无误会显示结果输出正确。

使用方法:

本仓库提供了基本的编译脚本make_shell.sh

# 使用方式
make_shell.sh [file_path]

# example
make_shell.sh falsh_attn/fa1.cu
# 会生成fa1.cu.o的文件
./flash_attn/fa1.cu.o
# Max shared memory: 49152, requested shared memory: 26624 
# Results are correct! 

本仓库参考了cuda.keter.top,感谢这位大佬提供的技术知识支持。

About

A demo for some technology for CUDA optimization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages