![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA
文章平均质量分 82
zgq016
这个作者很懒,什么都没留下…
展开
-
【参加CUDA线上训练营】执行流和运行库
两个执行流一个执行流当删除一个流后时间增加40ms,接近1/3的时间。由实验结果可以看出,执行流极大的提高了几十倍运算速度。从nvprof分析性能看出,创建事件花费程序一半的时间,尝试删除事件记录看到出现在API最前面的时执行流创建,花费时51%。原创 2023-02-10 12:11:18 · 82 阅读 · 0 评论 -
【参加CUDA线上训练营】线程组织
变成逻辑类似,GPU编程最大的特点应该时其多核并行的特性。要掌握其特性需要很好的理解其多核索引,根据其索引调度线程对所需要计算的数组、矩阵元素进行计算,可以极大的提高计算效率。另外,和CPU多线程类似的,多线程需要注意数据的保护和读写。以及多线程直接的特殊关系。原创 2023-02-11 11:52:50 · 74 阅读 · 0 评论 -
【参加CUDA线上训练营】储存单元矩阵乘法
两个指针是指针的指针,cuda内存用指针指向数据,如要修改指针故要用两个星号。gpu和cpu异步运行,需要同步函数blockid要根据grid的分块判断,上图就把grid分为一个块,所以整个idx=(0,0),Dim=(12,6),threadidx=(6,3),所以整个结果为(0,0)*(12,6)+(6,3)=(6,3)通过工具分析,其实增加size=1000后计算所用时间变化并不大,说明了GPU并行计算的高校性。原创 2023-02-07 23:04:03 · 80 阅读 · 0 评论 -
【参加CUDA线上训练营】一种多CUDA存储单元详解
实验通过线程索引指定线程处理矩阵对应元素,实现多线程乘法并行计算,矩阵乘法效率。为block的大小设置,网格大小通过设置。通过改写参数可以调动不同数量和位置的线程,优化程序。实验过程一般可概括为:定义变量——申明GPU内存——拷贝变量到GPU——GPU上并行计算——将结果拷贝回CPU内存——输出。原创 2023-02-11 10:58:06 · 117 阅读 · 0 评论 -
【参加CUDA线上训练营】原子操作
实验原理首先把所有数据累加到线程数量长度一行,这一行所有元索都是该列的元素和。然后在通过下图箭头所示进行累加,累加万到每个block只有一个元索。其中每个线程访问block的不同地址。通过原子操作atomicAdd对其进行累加,完成求和。通过原子操作避免了多线程访问时的数据安全。课后习题寻找最值和前K和最大值,关键逻辑和一般的CPU编程类似,只是需要注意线程索引来利用GPU的多核特性。特别注意其实函数也可以理解一哈。原创 2023-02-11 11:34:51 · 141 阅读 · 0 评论