![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cuda
OoFrizyoO
热爱技术
展开
-
cuda学习笔记(6)
目录锁页内存多线程、页锁存的点乘示例前面基础部分说cpu内存跟gpu内存在各自的函数中不能相互操作。申请主机内存用malloc,释放用free。但其实cuda可以通过DMA(Direct Memory Access)把主机内存地址直接映射到cuda地址,称为锁页内存(pinned memory or page locked memory)锁页内存主机端存在虚拟内存,主机内存不足是会将内存数据...原创 2020-02-16 23:29:36 · 577 阅读 · 0 评论 -
cuda学习笔记(5)
目录原子操作(Atomics)笔记(2)中提到当cuda需要对同一个内存地址中的值进行读写访问时,需要原子操作(Atomics)(类似cpu多线程的互斥锁mutex或原子变量),本章通过一个列子介绍原子操作。原子操作(Atomics)有些操作不能被拆分, 多线程要针对同一内存地址进行操作,这时需要对该内存使用原子操作,来保证线程对资源有暂时的”独占性”, 避免计算错误。原子操作是把双刃剑,因...原创 2020-02-10 23:22:19 · 567 阅读 · 0 评论 -
cuda学习笔记(4)
目录1. 纹理内存2. 纹理内存的使用引用上篇文章介绍cuda常量内存的特点及使用方法。本篇记录cuda纹理内存( texture )的特点及使用方法。1. 纹理内存cuda编程经常要对二维或者三维数据进行操作,为了加速内存读写,需要使用纹理内存。纹理内存不能单独使用,必读绑定到全局内存上,纹理内存( texture memory )实质上是全局内存的一个特殊形态,全局内存被绑定为纹理内存,...原创 2020-02-08 20:16:27 · 697 阅读 · 1 评论 -
cuda学习笔记(3)
目录1. cuda 常量内存2. 常量内存的声明与使用上篇笔记中记录了cuda共享内存及线程同步的方法。本篇将介 cuda 常量内存( __ constant __ ) 的特点及使用方法。1. cuda 常量内存cuda编程中,如何核函数要用到的数据从开始到结束一直不需要变化,我们可以把这些数据放到cuda常量内存中,以提升读取数据的速度(有些程序运行速度的瓶颈在内存读取与交换上)。常量内存...原创 2020-02-07 22:19:14 · 258 阅读 · 1 评论 -
cuda学习笔记(2)
目录1. 大维度数组运算核函数的写法2. 线程交互(共享内存)与同步上篇笔记中记录了cuda核函数的写法及调用的方法,并简单的介绍了grid,block,thread 的概念,即指定多少个线程来执行核函数。上篇例子演示了一个简单的N维数组(N很小)的例子,例子中调用了N个block,每个block分配一个线程,共N个并行的线程执行 c[N] = a[N] + b[N] 运算。 本篇扩展上篇内容,...原创 2020-02-06 22:27:54 · 243 阅读 · 0 评论 -
cuda学习笔记(1)
1.基本流程cuda代码(.cu)的目的是并行运算。只要在c代码中调用以 __ global__为关键字修饰的函数( __ global __ void function( type *InputArrayA, type *InputArrayB, type *OutputArrayA) ),称为核函数,代码经nvcc编译,识别到核函数就会编译成gpu指令码; 调用该函数时,要在函数名称加上 &...原创 2020-02-05 20:12:00 · 393 阅读 · 1 评论