CPU,GPU,NPU的架构差异对比

本文详细对比了CPU、GPU和NPU的架构特点,CPU擅长复杂串行计算,GPU专注于大量并行计算,NPU在GPU基础上提升存储利用率。GPU和CPU在设计上有显著区别,CPU侧重逻辑和控制,GPU强调吞吐量。NPU则更专注于特定领域的高效计算,结构简单,存算融合。文章还探讨了三者在图灵完备性、异构融合和实际应用中的角色,指出未来的趋势将是算力模块的深度融合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算系统最有价值的操作

计算系统最有价值的操作,按照价值从高到低的排序是 控制,计算,数据搬运,为了提高计算系统的运行效率,应该让专业的硬件处理专业的事情:

CPU/GPU/NPU架构特点

一图胜千言,关于CPU,GPU,NPU的结构上的区别,,如下图所示:

从优化的角度讲,CPU的目标函数是 "minimize laency", GPU是 "maximize throughput",NPU则在GPU的基础上,进一步提高了存储的利用率。

先从CPU和GPU的区别开始说起,CPU是中央处理器,是一个逻辑单元,CPU负责复杂且少量的串行计算。GPU主要负责大量且简单的并行计算,如下图:

GPU和CPU都属于通用算力,和NPU的区别明显,我们先对比GPU和CPU,最后再讨论NPU,作用上,GPU 是替代不了 CPU 的,同样,CPU 也替代不了 GPU。

从本质上说,CPU和GPU的区别是,CPU是向量机&标量机,GPU是阵列机。

从设计角度,传统处理器为减少每个核心上顺序代码的执行时间而优化,从而增加每个内核的复杂性是以提供功更少的核心为代价的,传统的处理器通常使用复杂的控制逻辑和大的缓存处理器,目的为了有效的处理条件分支,流水线STALL,数据局部性差的问题。

而GPU是基于以吞吐量为导向的设计,提供数千个简单核心和高带宽内存架构,这种设计可以最大限度地提高执行吞吐量,对于具有高度数据并行的应用程序,这些应用程序可能被分解为在程序数据空间中的不同位置上操作的大量线程,在这种设计中,当一些线程等待完成算术运算或内存访问的延迟时间较长时,可以调度其它线程,通过硬件调度器来隐藏延迟。这种机制可能会延长各个线程各自的执行时间,但会改进总的吞吐量。

从物理中的第一性原理触发,物质是基础。GPU和NPU将80%的面积用于构造计算单元,而CPU只有30%,所以显然GPU和NPU更加适合去做计算。而CPU用于做控制的面积比其他两个都要多,所以CPU更加擅长去做控制和逻辑。

打个比方,如果把CPU比作是曹操,谋略无双,具有政治家的智慧和军事家的远见,但是动手能力不行,执行力差,适合担任发号施令的角色。GPU应该是张辽,有勇也有谋,但这个谋特指军事上的谋略,政治上的智慧比老曹差太多,属于进可攻,退可守的将才。而NPU就是许褚了,有勇无谋,做个保镖,带刀侍卫啥的绰绰有余,算做发挥特长,带兵打仗的恐怕就难以胜任了。在举个比较荷尔蒙的例子,如果把数据看作女孩,GPU就是老实人,特点是嘴巴笨,只会行动。

### llama.cpp 调用算子及 GPU/NPU 加速方法 #### 启动带有 GPU 支持的 llama.cpp 推理服务 为了使 `llama.cpp` 利用 GPU 提升推理速度,可以通过指定 `-ngl N` 或者 `--n-gpu-layers N` 参数来配置要卸载到 GPU 上的层的数量。这允许部分或全部网络层在 GPU 上执行而不是仅限于 CPU。 ```bash ./llama-server -m /mnt/workspace/my-llama-13b-q4_0.gguf -ngl 28 ``` 上述命令会加载位于 `/mnt/workspace/` 下名为 `my-llama-13b-q4_0.gguf` 的模型文件,并设置有 28 层神经网络将在 GPU 上处理[^1]。 #### 在 NPU 设备上部署 llama.cpp 对于想要利用华为昇腾系列 NPU 来加速的应用场景,则需要遵循特定的操作流程: ```bash bash run.sh leakyrelu_custom ascend910 AiCore npu ``` 此脚本将会针对 Ascend 910 平台准备必要的环境并启动基于自定义 Leaky ReLU 激活函数的任务,在 AICore 计算核心上调度作业以实现高效能运算[^2]。 #### 关键注意事项 当考虑不同硬件平台之间的移植性兼容性时,需要注意的是并非所有的 GPU 型号都能无缝支持相同的框架或库版本。例如,虽然英伟达、AMD 晟腾都提供各自的 GPU 解决方案用于 DeepSeek R1, 但是由于架构差异以及软件栈的不同,某些情况下可能需要额外的工作才能确保跨平台的一致体验。特别是涉及到复杂的模型结构如 Transformer 类型的时候,可能会遇到更多挑战因为它们依赖高度优化过的操作符集合[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值