摘要: 主机内存 系统中被CPU访问的内存,分为两种类型:可分页内存(pageable memory,一般应用中默认使用)和页锁定内存(page-locked或者pinned)。 可分页内存即为通过操作系统api(malloc(), new())分配的存储器空间;而页锁定内存始终不会被分配到低速的虚拟内存中 阅读全文
posted @ 2020-11-09 22:38 一介草民李八千 阅读(842) 评论(0) 推荐(1) 编辑
摘要: 请求计算能力2.0设备(费米架构): struct cudaDeviceProp device_prop; int chosen_device; memeset(device_prop, 0, sizeof(cudaDeviceProp)); device_prop.major = 2; devic 阅读全文
posted @ 2020-11-09 22:37 一介草民李八千 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 常量内存简介 常量内存其实只是全局内存的一种虚拟地址形式,并没有特殊保留的常量内存块。常量内存有两个特性: 高速缓存,拥有缓存加速; 支持将单个值广播到线程束中的每个线程 常量内存的大小限定为64K,每个SM拥有8KB的常数存储器缓存,在编译期时声明一块常量内存,需要用到__constant__关键 阅读全文
posted @ 2020-11-09 22:36 一介草民李八千 阅读(1540) 评论(0) 推荐(0) 编辑
摘要: 全局内存 GPU全局内存,CPU和GPU都可以进行读写操作。任何设备都可以通过PCI-E总线对其进行访问,GPU之间不通过CPU,直接将数据从一块GPU卡上的数据传输到另一块GPU上。 点对点的特性实在DUDA4.x SDK中引入。只对特定平台进行支持(特斯拉硬件通过TCC驱动模型能够支持windo 阅读全文
posted @ 2020-11-09 22:34 一介草民李八千 阅读(1473) 评论(0) 推荐(0) 编辑
摘要: 共享内存简介 共享内存时受用户控制的一级缓存,共享存储器为片内高速存储器,是一块可以被同一block中的所有线程访问的可读写存储器。访问共享存储器的速度几乎和访问寄存器一样快(相对而言,不是十分严谨的说法,真实情况是,共享内存的延时极低,大约1.5T/s的带宽,远高于全局内存的190G/s,此速度是 阅读全文
posted @ 2020-11-09 22:32 一介草民李八千 阅读(1496) 评论(0) 推荐(0) 编辑
摘要: 寄存器 GPU片上高速缓存器,基本单元时寄存器文件,每个寄存器文件大小为32bit。 计算能力1.0/1.1版本硬件中,每个SM中寄存器文件数量为8192;而在1.2/1.3硬件中,每个SM中寄存器文件数量为16384. 一般情况下,内核线程中的简单局部变量都在寄存器存储器中。 局部存储器 对于每个 阅读全文
posted @ 2020-11-09 22:29 一介草民李八千 阅读(989) 评论(0) 推荐(0) 编辑
摘要: CUDA有自己的存储器模型,线程在执行时将会访问到处于多个不同存储器空间中的数据。cuda应用程序开发中涉及8中存储器,层次结果如图所示: 每一个线程拥有自己的私有存储器寄存器和局部存储器;每一个线程块拥有一块共享存储器(shared_memory);最后,grid中所有的线程都可以访问同一块全局存 阅读全文
posted @ 2020-11-09 22:28 一介草民李八千 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 线程的索引计算 只需要知并行线程的初始索引,以及如何确定递增的量值,我们希望每个并行线程从不同的索引开始,因此就需要对线程索引和线程块索引进行线性化,每个线程的其实索引按照以下公式来计算: int tid = threadIdx.x + blockIdx.x * blockDim.x; 线程块数量限 阅读全文
posted @ 2020-11-09 22:24 一介草民李八千 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 题目: 有红黑两种颜色的方块积木,红色代表正数A、黑色代表负数B,选出17块积木排成一排,使得任意相邻7块积木之和小于0;如何挑选才能使得17块积木之和最大,最大值是多少? 输入: 正数A、负数B; A和B的绝对值均小于10000; 样例输入: 10 -61 样例输出: 28 思路: 用一个长度为7 阅读全文
posted @ 2018-09-12 21:36 一介草民李八千 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 题目: 样例输入: 10 样例输入: 1 思路: 产生素勾股数的方式: 设m > n 、m 和n 均是正整数, a=m2-n2 b=2mn c= m2+n2 若m 和n 是互质,而且m 和n 其中有一个是偶数,计算出来的 (a, b, c) 就是素勾股数。 并且能够找到所有的素勾股数。 实现: 阅读全文
posted @ 2018-09-12 21:29 一介草民李八千 阅读(534) 评论(0) 推荐(0) 编辑