自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 使用CUDA做Reduce算子优化

文章运用了shuffle、合并访存和shared memory三种手段来优化reduce算子。

2024-05-23 15:50:56 347 1

原创 手把手教你不用SASS写出超越cublas的GEMM

​最终,mykernel在M,N,K都是2048的情况下比cublas快了7.3%,并且文章给大家提供了一步步查看profiler来优化GEMM kernel的过程,而不像其他文章一样直接给个最终结果,希望能对你的kernel优化有所帮助。​

2024-05-15 15:33:52 722

原创 详解eigen中的表达式模板

​通过参考eigen,实现了自己的一个表达式模板,目前可以完成加法和减法运算,并预留了其他运算的接口。主要优化技巧有:1、head only:只有头文件,使用方便;2、运用栈存储元素;3、运用表达式模板进行lazy compute,减少访存和临时变量生成;4、对赋值进行循环展开。​

2024-03-05 16:35:33 895 1

原创 一文读懂对象池

建立对象池,可以避免对象的频繁构造与析构,同时防止内存碎片。

2024-02-05 18:16:30 343 1

原创 自定义Vector

自定了Vector,核心原理是在小size的情况下使用栈内存替代堆内存。

2024-01-29 18:16:13 381 1

原创 在C++中部署TVM GEMM

该文章详细解释如何将python写的TVM在部署到C++中使用,速度和python侧基本一致;

2023-12-04 17:17:16 99

原创 使用TVM优化GEMM

优化时间(s)default2.930760+tile0.261980+vectorize0.16041+parallel0.025833。

2023-11-21 13:07:11 92 1

原创 IPC(Inter Process Communication)通信(C代码)

主要用sem_open,sem_post,sem_wait,sem_try_wait,同样也是基于name进行匹配,其中sem_post每次执行,信号量会加1,sem_wait每次执行,信号量会减1,这里同样写了一个简单的Producer和Consumer;unamed pipe必须在具有亲缘关系的管道中才能使用,fifo管道,将能够避免这个问题,fifo的核心API是mkfifo,具体使用方式类似于文件,下面是一个fifo调用的Writer和Reader;这里分别写了两个class来实现文件读和写;

2023-11-14 13:02:48 102

原创 openmp #pragma omp task总结

如果产生task的数量过多且每个task处理的内容很少,会发生极其严重的负向优化;在unbloundloop结构中,如果process的的内容与前后的task有关,也是负向优化;在unbloundloop结构中,只有每个task处理的内容与前后无关,会产生正向优化;taskloop可以有效降低运行时间,但是grainsize不应该选用过小。

2023-11-01 18:50:05 463 1

空空如也

空空如也

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

TA关注的人

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