计算机的基础:CPU & GPU

GPU编程--CPU和GPU的设计区别 本篇结构 前言 概论 CPU简介 GPU简介 并行计算 CPU/GPU对比 适于GPU计算的场景 GPU开发环境 参考博文 一、前言 因为工作需要,需要从github上找一个CUDA的DBSCAN聚类实现,刚开始从github上获取到的代码只支持二维数据,为了适配多维数据,要对代码简单改造,这就需要了解CUDA编程模式。之前没有接触过GPU编程相关概念,甚至于没有学过c语言,加上脑袋笨重... 阅读详情

一、在屏幕成像的过程中,CPU和GPU起着至关重要的作用
1、CPU(Central Processing Unit,中英处理器)
对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片格式的转换和解码、图像的绘制(Core Graphics)
2、GPU(GraphicsProcessing Unit,图像处理器)
纹理的渲染

二、屏幕成像原理
1、通常来说,计算机系统的CPU、GPU、显示器是以一种类似于串行的方式协调工作的。CPU计算好显示的内容交给GPU
2、GPU把CPU提交过来的内容渲染成显示器可以显示的格式(也就是我们常说的 一帧)。
3、GPU渲染完成之后将渲染结果(也就是一帧画面)放到屏幕的帧缓冲区(此处的帧缓冲区和离屏渲染的屏幕缓冲区、屏幕外缓冲区是一回事)
4、随后视频控制器会按照Vsync(垂直同步信号)读取帧缓冲区的数据,经过数模转换传递给显示器显示。
三、页面卡顿的原因
掉帧,也就说说CPU处理数据和GPU渲染时间过长导致掉帧,界面展示也就是卡顿
四、解决卡顿的思路
尽可能的减少CPU、GPU资源消耗
五、优化方案
a、卡顿优化 —— CPU
1、尽量使用轻量级的对象,比如用不到事件处理的地方,可以考虑使用CALayer取代UIview(使用ASDK框架布局)
2、不要频繁调用UIView的相关属性,比如frame、bounds、transform等属性、尽量减少不必要的修改
3、尽量提前计算好布局,在有需要时一次性调整对应的属性,不要多脆修改属性
4、Autolayout会比直接设置frame消耗更多的CPU资源
5、图片的size最好刚好跟UIImageView的size保持一致
6、控制胰腺癌线程的最大并发数量
7、尽量把耗时操作哦放到子线程
(文本处理(尺寸计算、绘制))
(图片处理(解码、绘制))
b、卡顿优化 —— GPU
1、尽量避免短时间内大量图片的显示,尽可能将多张图片合成一张进行显示
2、GPU能处理的最大纹理尺寸是4096x4096,一旦超过这个尺寸,就会占用CPU资源进行处理,所以纹理尽量不要超过这个尺寸
3、尽量减少视图数量和层次
4、减少透明的视图(alpha<1),不透明的就设置opaque为YES
5、尽量避免出现离屏渲染
六、什么是离屏渲染?
在OpenGL中,GPU有2种渲染方式 On-Screen Rendering:当前屏幕渲染,在当前用于显示的屏幕缓冲区进行渲染操作 Off-Screen Rendering:离屏渲染,在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作
1、离屏渲染消耗性能的原因: GPU 产生的离屏渲染主要是当 CALayer 使用圆角,阴影,遮罩等属性的的时候,图层属性的混合体被指定为 在未预合成之前 不能直接在屏幕中渲染,则过程中需要进行离屏渲染。
2、需要创建新的缓冲区
离屏渲染的整个过程,需要多次切换上下文环境,先是从当前屏幕(On-Screen)切换到离屏(Off-Screen);等到离屏渲染结束以后,将离屏缓冲区的渲染结果显示到屏幕上,又需要将上下文环境从离屏切换到当前屏幕
3、哪些操作会触发离屏渲染?
光栅化,layer.shouldRasterize = YES 遮罩,layer.mask 圆角,同时设置layer.masksToBounds = YES、layer.cornerRadius大于0 考虑通过CoreGraphics绘制裁剪圆角,或者叫美工提供圆角图片 阴影,layer.shadowXXX 如果设置了layer.shadowPath就不会产生离屏渲染

GPU离屏渲染

在上面的渲染流水线示意图中我们可以看到,主要的渲染操作都是由COREANIMATION的RENDER

SERVER模块,通过调用显卡驱动所提供的OPENGL/METAL接口来执行的.通常对于每一层LAYER.

RENDER SERVER会遵循"画家算法",按次序输出到FRAME BUFFER,后一层,就能得到最终

的显示结果(值得一提的是,与一般桌面架构不同,在IOS中,设备主存和GPU的显存共享物理内

存,这样可以省去一些数据传输开销).

"画家算法",把每一层依次输出到画布

然而有些场最并没有那么简单.作为"画家"的GPU虽然可以一层往画布上进行输出,但是无法

在某一层渲染完成之后,再回过头来擦除改变其中的某个部分一因为在这一层之前的若干层

LAYER像素数据,已经在渲染中被永久覆盖了.这就意味着,对于每一层LAYER,要么能找到一种通

过单次遍历就能完成渲染的算法,要么就不得不另开一块内存,借助这个临时中转区域来完成一些

更复杂的,多次的修改/剪裁操作.

如果要绘制一个带有圆角并剪切圆角以外内容的容器,就会触发离屏渲染.我的猜想是(如果读者

中有图形学专家希望能指正)

将一个LAYER的内容裁剪成圆角,可能不存在一次遍历就能完成的方法

.容器的子LAYER因为父容器有圆角,那么也会需要被裁剪,而这时它们还在渲染队列中排队,尚未

被组合到一块画布上,自然也无法统一裁剪

此时我们就不得不开辟一块独立于FRAMEBUFFER的空白内存,先把容器以及其所有子LAYER依次画

好,然后把四个角"剪"成圆形,再把结果画到FRAMEBUFFER中.这就是GPU的离屏渲染.

 

GPU与CPU、显卡区别 一、GPU介绍以及与显卡区别论述:百度百科-GPU GPU是显卡的处理器,称为图形处理器(Graphics Processing Unit,即GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器,它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必... 阅读详情

相关推荐

【CPU & GPU & TPU】机器学习扫盲篇

CPU CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”,也是布局谋略、发号施令、控制行动的“总司令官”。 CPU的结构主要包括运算器(ALU, Arithmetic and Logic Unit)、控制单元(CU, Control Unit)、寄存器(Register)、高速缓存器(Cache)和它们之间通讯的数据、控制及状态的总线。 简单来说就是...

DreamSeeker_1314的博客 5851

Android系统获取GPU、屏幕信息

Android系统获取GPU、屏幕信息

QG 2472

CPU 和 GPU:为什么GPU更适合深度学习?

GPU(图形处理单元)的诞生,初衷是为了专门应对渲染复杂图形和加速视频处理的需求。随着计算机图形技术的发展,实时 3D 图形的渲染需求逐渐增多,传统的CPU(中央处理器)难以高效处理这些繁重的计算任务。GPU 的出现大大缓解了这一负担,通过其独特的架构将大量的图形处理操作从 CPU 中剥离出来,从而极大地提升了系统的图形处理能力。GPU 的架构设计非常独特,由成百上千个小型处理单元组成,每个处理单元能够独立并行执行指令。这种高度并行的处理能力使 GPU 能够同时处理海量数据。

weixin_56054625的博客 5325

电脑显示屏是怎么显示出图像的?CPU与GPU又是什么关系?

电脑显示屏是怎么显示出图像的?CPU与GPU又是什么关系?

qq_38056514的博客 4822

如何评估计算机的算力:从 CPU 到 GPU 的演变

这就是 CPU 和 GPU 在计算能力上的区别,这是由它们的架构决定的,CPU 可以执行任何程序,而 GPU转为多任务而生,并发能力强。当然,上面的两张图并不是说 GPU 比 CPU 厉害,事实上,CPU 和 GPU 各自具有不同的特点和优势,选择哪种设备取决于具体的应用场景和需求。其中,CPU(中央处理器)和 GPU(图形处理器)是计算机中最为核心的两个组件,它们的算力和性能对于计算机的整体性能具有决定性的影响。CPU 是计算机的核心组件之一,它的主要功能是执行指令、控制计算机的运行和处理数据等任务。

github_36774378的博客 2390

CPU,GPU,GPGPU

CPU,GPU,GPGPU 1.基本概念 1.1 GPU 图形处理器(bai英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉du处理器、zhi显示芯片,是一种专门在个人电脑、工dao作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 1.2 CPU 中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计

吴建明wujianming_110117 2521

使用darknet-dnn-GPU方式识别物体(一)

1、darknet darknet是一个c写的可以使用GPU方式来调用深度卷积网络来识别物体的深度学习框架,上手及其简单,易用。 1.1 编译 到官方网站下载后编译darknet,注意一定要下载cudn,编译gpu版本。为了演示方便,这里直接在windows上编译,使用cmake就行,依赖就是opencv,stb,还有就是cuda。 使用cuda静态库 将opencv和cuda,以及pthreads的头目录配置好,编译就行,生成darknet.exe,dark.lib 等等,下面要使用。 1.2 测试

qianbo042311的博客 2826

对比GPU与CPU

GPU和CPU在计算能力、功耗和适用场景等方面有着明显的差异。在选择使用GPU还是CPU时,需要根据具体的任务需求和性能要求来进行综合考虑。通过合理地利用GPU和CPU的优势,可以更高效地完成各种计算任务。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

yolov5 nv1060 GPU 识别图片

torch.cuda.is_available() 为false,CPU推理更改为GPU 推理环境

wozai2513的博客 955

解决AutoDock与Python版本冲突导致的内存泄漏问题:从BHtree *错误到环境配置优化

本文深入解析了AutoDock分子对接中常见的‘BHtree *’内存泄漏错误,其根源在于SWIG接口模块与Python运行环境的版本不匹配。文章提供了根治方案:通过构建Python 2.5.4与MGLTools 1.5.6的黄金兼容组合,并详细指导环境清理、安装配置及实战测试,从而彻底解决该内存泄漏问题,确保AutoDock工作流的稳定运行。

g5h6i的博客 1113

TouchGFX使用教程(三)

TouchGFX使用教程(三)界面事件控件修改方法图片等资源放置位置 界面事件 控件修改方法 图片等资源放置位置

yuanzhan11的专栏 6972

什么是GPU?GPU和显卡的关系?GPU国产化布局?

要说有什么芯片产品最引数码达人关注,那必然是GPU。GPU是个热闹异常的市场。围绕GPU/显卡玩梗也成为数码爱好者茶余饭后的一项乐趣:“超低功耗,极致色彩,曲面细分””矿卡论斤卖““一卡一栋楼,两卡毁地球,三卡银河系,四卡创世纪”。它曾一度挑战甚至超越同时期的CPU,它曾让无数游戏玩家为之疯狂,它曾向更深、更广领域延伸触角。[1]因为国外厂商长期垄断,国内对自主GPU的期盼越来越强烈。本文是“国产...

张巧龙的博客 2万+

建议收藏:华为海思IC设计笔试题,含解析(附下载)

接触过的部门有麒麟芯片、CPU/GPU,总体面试感觉非常好,规范且认真,第一轮手撕代码状态机+复盘机考题+瞄准几个知识点深挖,时间1hour+;一二轮面试是连着的,所以很累。但是岗位就那么多,在面试的时候,很多同学因为准备不充分,与岗位失之交臂,无缘进入该公司。时序电路有记忆功能,不会产生锁存器,锁存器一般在组合逻辑中case写不全,else写不全,或者敏感列表写不全。

nuoweishizi的博客 3286

CPU,GPU,TPU,NPU都是什么?

CPU,GPU,TPU,NPU都是什么? 什么是CPU? 中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速及实现它们缓冲处理器之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储...

冷色调的夏天的博客 18万+

[统计模型] 基于R的潜在剖面分析(LPA)

本文主要介绍基于R进行潜在剖面分析(Latent Profile Aanalysis, LPA)。 关于潜在类别分析LCA/潜在剖面分析LPA的概念和区别,可以参考一下这篇文章: 潜在类别分析LCA \潜在剖面分析LPA介绍https://www.jianshu.com/p/4c830094131e?utm_campaign=maleskine 但是此文对潜类别分析的阐释还比较生涩,而且没有具体的代码编写、模型优选等内容。本文旨在丰富LPA的内容,并希望和大家交流、共同进步。 1. 什么是潜类别分.

bigstar863的博客 1万+

手把手教你用Python实现ITRS与GCRS坐标转换(附完整代码)

本文详细介绍了如何使用Python的Astropy库实现ITRS与GCRS坐标转换。文章从环境配置、坐标对象构建入手,深入解析了transform_to方法背后的转换矩阵与地球定向参数管理,并通过卫星地面轨迹计算实战案例,帮助开发者掌握高精度空间坐标转换的核心技术与工程实践。

weixin_28335283的博客 79

CPU和GPU区别(GPU入门)

文章目录什么是超算:CPUGPUGPU和CPU的区别:硬件结构区别串行和并行CPU和GPU联系GPU 硬件结构线程格(Grid)线程块(Block)线程(Thread)核函数(Kernel)一些概念显存容量显存位宽 什么是超算: 把计算机连接在一起,获得更强大计算能力 原来:串行计算 现在:并行提交任务计算 超算:就是一群计算机 超算使用的技术: GPU技术。 CPU 在CPU基础上增加GPU来协助CPU CPU局限性: CPU由于物理限制,遇到了工艺上壁垒,主频无法突破。 而GPU却仍在高速的增长。 GP

Charles Ren's Tech Blog 2万+

[Dify实战] 做企业内部助手时,最容易被低估的不是提示词,而是权限、状态同步和反馈回写

这篇文章围绕“做企业内部助手时”这个具体问题展开,很多团队做企业内部助手时,最先优化的是提示词,但真正决定系统能不能上线长期跑下去的,往往是权限边界、状态同步和反馈回写闭环。正文会结合Dify拆解节点设计、配置建议和测试样例,补充关键步骤、检查点和常见坑,帮助读者判断第一版该怎么落地,并把经验复用到自己的真实业务场景中。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 68

CPU、GPU、NPU的区别

CPU、GPU、NPU的区别

qq_36944952的博客 3万+

SVN使用:使用TortoiseSVN遇到提示请执行“清理”命令的解决方法

作为程序员来说,在团队开发过程中关于代码管理的工具使用并不陌生,比较常用的代码合并管理工具如:Git、SVN等,虽然相关工具的使用并不复杂,但是还是要掌握常用的使用方法,尤其是相关的第三方软件的使用也是极为重要的,而且有时候使用这些三方软件来进行代码管理的时候也会遇到一些问题。本篇博文就来分享一下在SVN使用的时候使用TortoiseSVN遇到提示请执行“清理”命令的解决方法,方便查阅使用。

全沾软贱开发攻城狮 1万+

如何安装最新版本的 SAP ABAP Development Tool ( ADT ) ,并且能够随时升级

下载链接:https://tools.hana.ondemand.com/#abap 首先安装 Eclipse IDE for Java Developers 找到适合自己操作系统的 Eclipse 安装包: 安装之后,打开Eclipse: Install -&gt; New Softwares, 输入 url:https://tools.hana.ondemand.com/latest 全部安装: 安装完毕之后,新建一个 ABAP Project,本地 SAP GUI 里添加的系统,会自动带出来:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4279

深度学习硬件基础:CPU与GPU

文章目录CPU和GPU1. CPU1. 1 CPU定义——少量复杂运算1.2 CPU组成1.3 CPU执行流程:2. GPU2.1 GPU定义——大量简单运算2.2 GPU组成3. CPU与GPU不同3.1 CPU和GP体系结构的不同:3.2 CPU显存与CPU主存的区别 CPU和GPU 不太懂硬件,关于CPU的知识还是在大学计算机中学的,没有太多的理解。这篇文章是找了很多文章进行的整理,逻辑性可能不是很强,随着在深度学习上学习和研究的让深入我也讲 1. CPU 1. 1 CPU定义——少量复杂运算

Liu Feng's Blog 7092

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CPU、GPU、显卡

CPU 和 GPU 的概念及区别,显卡概念及 Nvidia 显卡分类,有趣之处:RT 光线追踪技术、H100价格

一杯水果茶!足矣~ 8571

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

什么是GPU?跟CPU有什么区别?终于有人讲明白了

在学习深度学习时,电脑如果没有GPU,训练的时候需要用的是CPU,那么两者之间在训练数据集有什么差别?当你在一次训练过程中,着重看一下训练过程,就会发现,训练时间是真的差距大。这两个具体有什么差别呢?CPU:中央处理器(英文CentralUnit)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。

AI_dataloads的博客 13万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从CPU到GPU,建立计算机基础知识体系

极客星球:深入理解计算机系统分享本文介绍一下相关计算机基础知识,并将一些计算机的基础知识串在一起, 构成相对完整的知识体系。一、计算机基础知识我们知道, 一台 电脑 主要由四部分组成: CPU (Central Processing Unit), 内存 (Main Memory), 硬盘 (Data Storage) 和 IO 设备 (Input / Output Device)。1.1 硬盘 与...

极客重生 839

CPU、GPU 并行加速

CPU、GPU 并行加速

一杯水果茶!足矣~ 1548
上一篇: Java集合框架零碎整理
下一篇: 阿里ACA学习记录
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值