(三) CUDA 硬件实现

一组带有on-chip 共享内存的SIMD多处理器

GPU可以被看作一组多处理器, 每个多处理器使用单一指令,多数据架构(SIMD)【单指令流多数据流】

在任何给定的时钟周期内,多处理器的每个处理器执行同一指令,但操作不同的数据

每个多处理器使用以下四种类型的on-chip(集成的)内存:

  1. 每个处理器一组本地32位寄存器
  2. 并行数据缓存或共享内存,被所有处理器共享实现内存空间共享
  3. 通过设备内存的一个只读区域,一个只读常量缓冲器被所有处理器共享
  4. 通过设备内存的一个只读区域,一个只读纹理缓冲器被所有处理器共享

本地和全局内存空间作为设备内存的读写区域,而不被缓冲

每个多处理器通过纹理单元访问纹理缓冲器,它执行各种各样的寻址模式和数据过滤

在这里插入图片描述
执行模式

一个线程块栅格是通过多处理器规划执行的

一个块只被一个多处理器处理,因此可以对驻留在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 的存储需求量将改变

如果用户将显示分辨率从1280x1024x32bit1600x1200x32bit

那么,系统必须指定7.68MB 的primary surface 而不在是5.24MB

(使全屏抗锯齿的应用程序需要更多的primary surface空间)

如果模式切换增加了primary surface 的内存空间,系统将会占用CUDA 所指定的内存空间,导致OOM

什么是纹理缓冲器

纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的的图形专用单元发展而来,因此也提供了一些特殊功能。

纹理缓存的优势:
纹理缓存具备硬件插值特性,可以实现最近邻插值和线性插值。纹理缓存针对二维空间的局部性访问进行了优化,所以通过纹理缓存访问二维矩阵的邻域会获得加速。纹理缓存不需要满足全局内存的合并访问条件。

纹理可以是一段连续的设备内存,也可以是一个CUDA数组。但是CUDA数组对局部寻址有优化,称为“块线性”,原理是将邻域元素缓存在同一条cache线上,这将加快邻域内的寻址,但是对于设备内存,并没有“块线性”。所以,选择采用CUDA数组,还是设备内存,需要根据实际情况决定,将数据copy至CUDA数组是很耗时的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/39110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HASH索引,AVL树,B树,B+树的区别?

1. 什么是 Hash 1.1 Hash 函数 Hash 本身其实是一个函数,又被称为散列函数,它可以大幅提高我们对数据的检索效率。因为它是散列的,所以在存储数据的时候,它也是无序的。 Hash 算法是通过某种确定性的算法(例如MD5,S…

virtualBox桥接模式下openEuler镜像修改IP地址、openEule修改IP地址、openEule设置IP地址

安装好openEuler后,设置远程登入前,必不可少的一步,主机与虚拟机之间的通信要解决,下面给出详细步骤: 第一步:检查虚拟机适配器模式:桥接模式 第二步:登入虚拟机修改IP cd /etc/sysconfig/network-scripts vim ifcfg-enpgs3 没有vim的安装或者用vi代替:sudo dnf …

关于consul的下载方法

linux下 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consulwindow下 https://developer.hashicorp.com/consul/downloads 然后把里面的exe文件放在gopath下就行了 验证…

打造专属花店展示小程序

在当今社会,微信小程序已经成为了各行各业拓展客户资源的利器,而花店行业也不例外。通过打造一个独特的花店小程序,你可以为你的花店带来更多的曝光和客户资源。那么,如何制作一个专属的花店小程序呢?下面我们就来一步…

图像像素梯度

梯度 在高数中,梯度是一个向量,是有方向有大小。假设一二元函数f(x,y),在某点的梯度有: 结果为: 即方向导数。梯度的方向是函数变化最快的方向,沿着梯度的方向容易找到最大值。 图像梯度 在一幅模糊图…

【实际开发19】- 压测 / 调优准备

目录 1. Jmeter 2. Jmeter 环境部署 1. 配置 : 临时修改语言 ~ Options → Choose Language → Chinese 3. Jmeter 并发测试 0. 提示 : Postman 测试是“串行”的 , 无法测试并发请求 1. daiding 1. Jmeter 下载 : Apache JMeter - Download Apache JMeter 详参&#xf…

【已解决】mac端 sourceTree 解决remote: HTTP Basic: Access denied报错

又是在一次使用sourcetree拉取或者提交代码时候,遇到了sourcetree报错; 排查了一会,比如查看了SSH keys是否有问题、是否与sourcetree账户状态有问题等等,最终才发现并解决问题 原因: 因为之前公司要求企业gitlab中…

JavaEE初阶:多线程 - 编程

1.认识线程 我们在之前认识了什么是多进程,今天我们来了解线程。 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行 着多份代码. 引入进程这个概念,主要是为了解决并发编程这样的…

编译工具:CMake(三)| 最简单的实例升级

编译工具:CMake(三)| 最简单的实例升级 前言过程语法解释ADD_SUBDIRECTORY 指令 如何安装目标文件的安装普通文件的安装:非目标文件的可执行程序安装(比如脚本之类)目录的安装 修改 Helloworld 支持安装测试 前言 本篇博客的任务…

解决右键打印html只能识别1页的问题

hello,大家好久不见,昨天在开发中遇到了一个问题,就是在自己开发的网页中右键-->打印,由于页面内容过多,打印出来的内容只被识别到一页。 针对这一问题,查阅了好多资料最终解决啦。 1.问题重现 大家可以看到这个是我们开发的页面,公司需要…

2023最新最全最细版本~ESP8266/ESP01S烧录AT固件

硬件准备 图上有两种型号的模块均可刷写AT固件 ① ESP01S ② ESP8266NODEMCU 软件准备(私聊免费分享) ESP01S1烧录方式 如图使用模块烧录座的方式~ 模块插入烧录座后直接连接电脑的USB接口即可~ ESP8266NODEMCU烧录方式 如图usb直接连接的方式~ 一端接模块的USB口&…

数据暴涨时代,该如何数据治理?_光点科技

随着信息技术的迅猛发展,数据已经成为现代社会的核心资源。在这个被称为"数据暴涨时代"的时代里,大量的数据源源不断地被产生和积累,但如何有效地管理、分析和利用这些数据成为了一个迫切需要解决的问题。数据治理,作为…

【Spring源码】Spring扩展点及顺序

Spring扩展点及顺序 01-调用BeanFactoryPostProcessor的构造器 02-调用了BeanFactoryPostProcessor的postProcessBeanFactory 03-调用了BeanPostProcessor构造器 04-调用InstantiationAwareBeanPostProcessor构造方法 05-调用了InstantiationAwareBeanPostProcessor接口的Befo…

Memory Analyzer(MAT)分析内存

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、 使用3.1 hprof 文件准备3.1.1 Android sutdi…

【SpringBoot学习笔记】04. Thymeleaf模板引擎

模板引擎 所有的html元素都可以被thymeleaf替换接管 th:元素名 templates下的只能通过Controller来跳转,templates前后端分离,需要模板引擎thymeleaf支持 模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的&#x…

cuda+anaconda+pytorch按照教程

首先安装显卡对应的CUDA版本,关键点在于区别显卡支持的CUDA最高版本和运行版本 1、查看当前显卡支持的最高版本,有两种方式: 1)NVIDIA控制面板—>帮助—>系统信息—>组件—>NVCUDA.dll对应版本 请注意,12…

2023年国赛数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

项目:基于UDP的TFTP文件传输

1)tftp协议概述 简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输特点: 是应用层协议 基于UDP协议实现 数据传输模式 octet:二进制模式(常用) mail:已经不再…

分布式 - 服务器Nginx:一小时入门系列之代理缓冲与缓存

官方文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html 1. 代理缓冲 proxy_buffer 代理缓冲用于临时存储从后端服务器返回的响应数据。通过使用代理缓冲,Nginx可以在接收完整的响应后再将其发送给客户端,从而提高性能和效率…

照耀国产的星火,再度上新!

国产之光,星火闪耀 ⭐ 新时代的星火⭐ 多模态能力⭐ 图像生成与虚拟人视频生成⭐ 音频生成与OCR笔记收藏⭐ 助手模式更新⭐ 插件能力⭐ 代码能力⭐ 写在最后 ⭐ 新时代的星火 在这个快速变革的时代,人工智能正迅猛地催生着前所未有的革命。从医疗到金融…