网站建设公司厦门有哪些,网站建设经营特色,广东城乡建设厅网站,商城推广 网站建设一组带有on-chip 共享内存的SIMD多处理器
GPU可以被看作一组多处理器, 每个多处理器使用单一指令#xff0c;多数据架构(SIMD)【单指令流多数据流】
在任何给定的时钟周期内#xff0c;多处理器的每个处理器执行同一指令#xff0c;但操作不同的数据
每个多处理器使用以下…一组带有on-chip 共享内存的SIMD多处理器
GPU可以被看作一组多处理器, 每个多处理器使用单一指令多数据架构(SIMD)【单指令流多数据流】
在任何给定的时钟周期内多处理器的每个处理器执行同一指令但操作不同的数据
每个多处理器使用以下四种类型的on-chip集成的内存:
每个处理器一组本地32位寄存器并行数据缓存或共享内存被所有处理器共享实现内存空间共享通过设备内存的一个只读区域一个只读常量缓冲器被所有处理器共享通过设备内存的一个只读区域一个只读纹理缓冲器被所有处理器共享
本地和全局内存空间作为设备内存的读写区域而不被缓冲
每个多处理器通过纹理单元访问纹理缓冲器它执行各种各样的寻址模式和数据过滤 执行模式
一个线程块栅格是通过多处理器规划执行的
一个块只被一个多处理器处理因此可以对驻留在on-chip 共享内存中的共享内存空间形成非常快速的访问
一个批处理中每一个多处理器可以处理多少个块取决于每个线程中分配了多少个寄存器和已知内核中每个时钟需要多少的共享内存
因为多处理器的寄存器和内存在所有的线程中是分开的
如果在至少一个块中每个多处理器没有足够的寄存器或共享内存可用那么内核将无法启动
线程块在一个批处理中被一个多处理器执行被称作active
每个active 块被划分成为SIMD 线程组称为warps
每一条这样的warp 包含数量相同的线程叫做warp 大小并且在SIMD 方式下通过多处理器执行
线程调度程序周期性地从一条warp 切换到另一条warp以达到多处理器计算资源使用的最大化
块被划分成为warp 的方式是相同的
每条warp 包含连续的线程线程索引从第一个warp 包含着的线程0 开始递增
一个多处理器可以处理并发地几个块通过划分在它们之中的寄存器和共享内存
更准确地说每条线程可使用的寄存器数量等于每个多处理器寄存器总数除以并发的线程数量
并发线程的数量等于并发块的数量乘以每块线程的数量
在一个块内的warp 次序是未定义的但通过协调全局或者共享内存的存取它们可以同步的执行
如果一个通过warp 线程执行的指令写入全局或共享内存的同一位置写的次序是未定义的
在一个线程块栅格内的块次序是未定义的并且在块之间不存在同步机制
因此来自同一个栅格的二个不同块的线程不能通过全局内存彼此安全地通讯
计算兼容性
设备的计算兼容性由两个参数定义主要版本号和次要版本号
设备拥有相同的主要版本号代表相同的核心架构
次要版本号代表一些改进的核心架构比如新的特性
多设备
为一个应用程序使用多GPU 作为CUDA 设备必须保证这些GPU 是一样的类型
如果系统工作在SLI 模式下那么只有一个GPU 可以作为CUDA 设备
因为所有的GPU 在驱动堆栈中被底层的融合了
SLI 模式需要在关闭这样才能使用多个GPU 作为CUDA设备
模式切换
GPU 指定一些DRAM 来存储被称作primary surface 的内容这些内容被用于显示输出
如果用户改变显示的分辨率或者色差那么primary surface 的存储需求量将改变
如果用户将显示分辨率从1280x1024x32bit 到1600x1200x32bit
那么系统必须指定7.68MB 的primary surface 而不在是5.24MB
使全屏抗锯齿的应用程序需要更多的primary surface空间
如果模式切换增加了primary surface 的内存空间系统将会占用CUDA 所指定的内存空间导致OOM。
什么是纹理缓冲器
纹理存储器texture memory是一种只读存储器由GPU用于纹理渲染的的图形专用单元发展而来因此也提供了一些特殊功能。
纹理缓存的优势 纹理缓存具备硬件插值特性可以实现最近邻插值和线性插值。纹理缓存针对二维空间的局部性访问进行了优化所以通过纹理缓存访问二维矩阵的邻域会获得加速。纹理缓存不需要满足全局内存的合并访问条件。
纹理可以是一段连续的设备内存也可以是一个CUDA数组。但是CUDA数组对局部寻址有优化称为“块线性”原理是将邻域元素缓存在同一条cache线上这将加快邻域内的寻址但是对于设备内存并没有“块线性”。所以选择采用CUDA数组还是设备内存需要根据实际情况决定将数据copy至CUDA数组是很耗时的。