CPU密集表示该任务需要大量的运算,而没有阻塞,CPU一直全速运行。CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就只有这么多。
CPU使拆胡用率较高(例如雹裤:计算圆周率、对视频进行高清解码、矩阵运算等情况)的情况下,通常,线程数只需要设置为CPU核心数的线程个数就可以了。 这一情况多出现在一些业务复杂的计算和逻辑处理过程中。比如说,现在的一些机器学习和深度学习的模型训练和推理任务,包含了大量的矩阵运算。
IO密集型:指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等IO (硬盘/内存) 的读写 *** 作,因此源御简,CPU负载并不高。
密集型的程序一般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O *** 作,而程序的逻辑做得不是很好,没有充分利用处理器能力。
CPU 使用率较低,程序中会存在大量的 I/O *** 作占用时间,导致线程空余时间很多,通常就需要开CPU核心数数倍的线程
GPU执行的是简单但计算量大的应用时才有优势,而CPU在计算复杂的数据时有优势。因此如果某个程序在GPU上的运行速度不如CPU上快,只是消握应用或程序本身就决定了。
GPU的优势如下:
(1)计算密集型的程序。所谓计手桥胡算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有毕拦延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD,
也实在是太慢了。
(2)易于并行的程序。GPU其实是一种SIMD(Single
Instruction
Multiple
Data)架构,
他有成百上千个核,每一个核在同一时间最好能做同样的事情。
程序系统大部分在做计算、逻辑判断、循环导樱消携脊伏致cpu占用率很高的情况,桥含称之为计算密集型;频繁网络传输、读取硬盘及其他io设备称之为io密集型很高兴为您解答有用请采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)