宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

文章图片

宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

文章图片

宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

文章图片

宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

文章图片

宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?

一、前言
这两年人工智能(AI)风靡全球科技界 , 虽然还不完全成熟 , 但是它已经开始深刻地融入、改变人类的日常工作生活 。
提起人工智能 , 可能有很多朋友有这样一种困惑:为什么现在主导人工智能计算的是显卡(GPU) , 是英伟达 , 而不是大家所熟悉的处理器(CPU) , 英特尔或者AMD?
这是一个非常“有趣”的问题 , 下面小编将用浅显的语言来解答 , 简而言之 , 产生这种困惑的主要原因是部分朋友的认知存在着两个偏见和误解 。
这两个偏见和误解分别是:对CPU的计算性能认识不全面和对GPU(显卡)的认识过于肤浅、陈旧 , 下面小编将逐一解释 。

二、CPU的计算性能的局限性
一提起处理器(主要指消费级) , 很多朋友首先就会联想到跑分 , 提起跑分马上就会联想到Core i9-14900KS和Ryzen 9 9950X等等型号 。 这两款处理器的跑分目前是最高的 , 性能也是最高的 , 很多朋友在潜意识里会认为它们在所有的计算领域性能都是最高的 。
这种认知是非常片面、错误的 , 因为同样是“计算” , 具体的计算类型也分很多种 , 比如说最常见的加减乘除 , 平方、立方和开方等等 。
普通消费级处理器的设计目标主要是为了满足通用计算的需求 , 擅长处理复杂的逻辑控制和串行任务 , 高效地执行各种不同类型的指令 , 包括算术运算、逻辑判断、数据存取等 , 其中主要是整型计算 。

而人工智能类计算 , 主要是进行模型的训练和推理 , 主要涉及矩阵运算和张量运算 , 主要考验的是处理器的浮点运算性能 , 而这些正是CPU的短板 , GPU的优势 。 而GPU则不同 , 其多计算单元是专为处理图像和视频等高密度浮点运算而设计的 , CPU虽然也能执行浮点运算 , 但其浮点运算性能远不如GPU 。
简而言之 , 同样是“计算” , 对于不同的应用场景 , 所要求、考验的具体的计算类型是不同的 , 各有侧重 , 人工智能计算领域的计算任务类型和CPU所擅长的计算类型是不同的 , 差异很大 , 大家必须首先客观、正确地理解这一点 。

三、对显卡认识过于“肤浅”
看到这个小标题 , 可能有些朋友非常不服气 , 认为自己是老玩家 , 是资深的游戏和显卡爱好者 , 对显卡楞为了如指掌 , 根本不存在“认识过于肤浅”的情况 。
不过 , 小编的话虽然有点难听 , 但基本上是事实 。 很多朋友一提到显卡 , 首先就会想到游戏 , 画质、光线追踪、平均帧速和帧时间 , 视频编解码和图形渲染等等 , “显卡”顾名思义 , 那就是负责和“显示”有关的任务(计算) 。

对此 , 小编要郑重指出、强调的是:这种认知现在是非常片面、落后的 , 已经严重过时了 , 还停留在AMD的认知档次上 。 在显卡诞生和之后的很长一段时间里 , 这种认知是正确的 , 但自从英伟达在2006年推出了CUDA架构后 , 这种认知就已经不再适用 。
CUDA是一个集编程模型、编译器、API、库和工具于一体的并行计算架构 , 它解锁了GPU的通用计算潜能 , 使开发者能够高效利用GPU的并行处理能力解决复杂计算问题 。 在这种背景下 , 原来隶属于图形计算领域的这部分传统的显卡任务 , 已经被划归为CUDA架构和解决方案下的一个子领域和子任务 。
【宗熙先生:为什么人工智能类计算主要依赖显卡,而非处理器?】
所以 , 大家就不要再埋怨RTX 40系列显卡性能提升不高了 。 因为图形性能(计算)只是RTX 40系列显卡整体性能提升的一部分 , 还有很多性能是在传统的游戏应用场景下所发挥、表现不出来的 , 比如在关闭DLSS的情况下 。
换句话也就是说 , 显卡发展到今天 , 再用“显卡”这个名字来称呼它 , 严格来说是不严谨的、不客观和不科学的 , 甚至有严重的误导性 。 现在它(GPU)已经发展成为一种通用的计算处理器 , 原来负责游戏性能、视频编解码和图形渲染等任务 , 只是其现在整体功能的一部分 。

谈到这里 , 小编顺便说一个题外话:AMD现在终于后知后觉 , 认识到自己以前所采用的打法的弊端和英伟达CUDA统一架构的优势 。 近期也决定将其负责商业计算的领域CDNA架构和负责消费级显卡的RDNA架构合并、统一为UDNA架构 , 不得不说 , AMD在认知、决策方面落后太多了 。
四、CUDA架构和采用该架构显卡的优势
1、浮点计算性能高
GPU的计算单元是专为处理图像和视频等高密度浮点运算而设计的 , 这种设计使得GPU在执行浮点运算时具有极高的效率 , 远超CPU 。
2、核心数量多
GPU通常拥有数百个甚至数千个小型处理核心 , 这些核心能够同时执行大量的并行计算任务 。 相比之下 , CPU大多数只有几个到几十个核心 , 因此在处理大规模并行计算时可能会遇到性能瓶颈 , GPU在这方面的优势巨大 。

3、并行计算性能强
CUDA的核心原理是将复杂的计算任务分解为多个简单的子任务 , 并在GPU的多个核心上并行执行这些子任务 。 GPU内部包含多个流处理器(SM) , 每个SM包含多个CUDA核心 , 这些核心能够同时处理多个线程 。
采用CUDA方案 , 在深度学习的训练过程中 , 开发者可以将计算任务划分为多个小的子任务 , 然后分配到GPU的多个核心上并行执行让 GPU 的不同核心同时处理这些小份数据的计算 , 从而大大提高训练速度 。
4、内存带宽高
GPU的内存带宽通常比CPU高得多 , 这使得GPU在处理大规模数据时能够更快地访问和传输数据 。 在深度学习模型的训练中 , 大量的数据需要被频繁地读取和写入内存 , 因此 , 高内存带宽对于提高训练效率至关重要 。
五、小编总结

综上所述 , 人工智能计算主要依赖GPU而非CPU的原因主要在于GPU在并行计算能力、浮点运算速度、内存带宽等方面具有显著优势 , 这些优势使得GPU在处理大规模数据和复杂计算任务时能够提供更高的计算效率和性能 。
由于英伟达推出CUDA架构较早 , 而且深耕多年 , 目前已经得到了业界的普遍支持 , 客观来说 , 这种优势是英特尔和AMD等其他竞争对手短期内很难撼动、超越的 , 但是未来也仍然存在诸多变数 。

    推荐阅读