什么是 NPU?NPU 与 GPU 与 CPU 的区别

2024-06-04 16:12
文章标签 区别 gpu cpu npu

本文主要是介绍什么是 NPU?NPU 与 GPU 与 CPU 的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NPU 是什么?为什么它对在设备上激活生成式人工智能的过程至关重要?

NPU专为人工智能设计,并与其他处理器配合工作,加快生成式人工智能体验。

这是人工智能(AI)生成式革命的开端。显而易见,为了满足各个垂直领域对生成式 AI 用例不断增长的需求和运营要求,需要一种专门用于人工智能的新计算架构。随后开始使用神经网络处理器(NPU),该处理器从一开始就旨在生成智能机器。

此外,它利用了各种处理器的异构混合,例如中央处理单元(CPU)和图形处理单元(GPU)。为了实现新的和改进的生成人工智能体验,异构计算增强了应用程序性能、热效率和电池寿命。这是通过将适当的处理器与神经处理单元(NPU)结合来实现的。

GPU 和 NPU 的融合

为了满足生成人工智能的各种标准和计算需求,有必要拥有各种处理器。利用每个处理器的能力,比如以人工智能为中心的定制神经处理单元(NPU),与中央处理单元(CPU)和图形处理单元(GPU)一起工作,每个处理器在不同的工作领域都表现出色,这是通过使用处理多样性的异构计算架构实现的。

例如,中央处理器(CPU)负责顺序控制和即时性,图形处理器(GPU)负责流式并行数据,神经处理器(NPU)负责基本人工智能任务,包括标量、向量和张量运算。

计算是异构的,可以提高应用程序性能、设备热效率和电池寿命,从而增强终端用户与生成人工智能的体验。

NPU 是什么?

神经处理单元(NPU)是从头开始设计的,旨在加快人工智能推断速度,同时使用最少的功率。其架构随着新的 AI 算法、模型和用例的引入而发展。人工智能大部分工作涉及计算由标量、向量和张量数学组成的神经网络层,然后是非线性激活函数。更好的 NPU 设计是与 AI 行业发展方向密切对齐,并做出适当的设计决策来管理与 AI 相关的工作负载。

高通通过提供异构计算和网络处理单元的领先解决方案,将智能计算带到各个领域。高通 Hexagon 神经处理单元(NPU)旨在在使用最少功耗的同时提供持续高性能的人工智能推断。NPU 通过系统方法、定制设计和快速创新区别于行业其他产品。他们能够快速调整和扩展设计,以克服瓶颈并最大化性能。这得益于定制设计神经处理单元(NPU)和调整指令集架构(ISA)。

在最佳异构计算架构中最重要的处理器之一是高通人工智能引擎,即 Hexagon NPU。该架构还包括高通 Adreno GPU、高通 Kryo 或高通 Oryon CPU、高通感应中心和内存子系统。在设备上,这些处理器被设计为相互协作,以快速有效地运行人工智能应用程序。

作为证据,它在人工智能基准测试和实际生成式人工智能应用中的表现在市场上名列前茅。你可以通过阅读白皮书了解更多关于自然语言处理(NPU)、它的其他异构处理器以及她在骁龙 8 Gen 3 和骁龙 X Elite 上领先行业的人工智能性能。见Qualcomm-美国高通公司官方网站

这能为开发人员提供加速使用生成式人工智能的应用程序的能力,主要重点是简化开发和部署流程,覆盖全球数十亿由高通和骁龙平台驱动的设备。这使其能够赋予开发人员权力。开发人员可以利用高通人工智能堆栈在硬件上构建、优化和部署他们的人工智能应用程序。这使他们只需编写一次代码,然后利用芯片组解决方案在各种产品和市场上分发。

这篇关于什么是 NPU?NPU 与 GPU 与 CPU 的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030496

相关文章

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化