【tool】CPU和GPU 有什么差别

CPU和GPU 有什么差别

原文链接:https://www.cnblogs.com/biglucky/p/4223565.html

CPU:基于低延时的设计
GPU:基于大吞吐量的设计
二者差别  Cache, local memory: CPU > GPU 
Threads(线程数): GPU > CPU
Registers: GPU > CPU  
多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须得跟着很大才行。
SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU。

相关概念

 动态随机存取存储器:dram(  Dynamic Random Access Memory)最为常见的系统内存。
 DRAM 只能将数据zd保持很短的时间。为了保持数据,
 DRAM使用电容存储,所以必须内隔一段时间刷新(refresh)一次,
 如果存储单元没有被刷新,存储的信息就会容丢失。 (关机就会丢失数据)

# 线程:thread 
 计算机中执行的程序叫做"进程"(Process) ,所谓"线程"(Thread),是"进程"中某个单一顺序的控制流。
 线程是进程中的实体,一个进程可以拥有多个线程(也可以只拥有一个线程),一个线程必须有一个父进程。
 线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。
 线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态

 高速缓存:cache  简称缓存    
 原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,
 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

提供“缓存”的目的是为了让数据访问的速度适应CPU的处理速度,
其基于的原理是内存中“程序执行与数据访问的局域性行为”,
即一定程序执行时间和空间内,被访问的代码集中于一部分。

为了充分发挥缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测与数据预取技术——
尽可能把将要使用的数据预先从内存中取到缓存里。

算术逻辑单元 ALU Arithmetic Logic Unit

计算密集型 Compute-intensive

单指令多数据 SIMD(Single Instruction Multiple Data)

GPU 适用于什么类型的程序

01 计算密集型
02 易于并行的程序

猜你喜欢

转载自blog.csdn.net/weixin_43988131/article/details/106243203