为什么AI计算一定要用GPU?( 二 )


第三,是并行性
专用内核和内存的结合使GPU能够比CPU更大程度地利用数据并行性 。对于像图形、渲染这样的任务,相同的着色器程序可以在许多顶点或像素上并行运行 。

为什么AI计算一定要用GPU?

文章插图
现代GPU包含数千个核心 , 而高端CPU最多只有不到100个核心 。通过更多的核,GPU可以以更高的算术强度在更宽的并行范围内处理数据 。对于并行工作负载,GPU核心可以实现比CPU高100倍或更高的吞吐量 。
相比之下 , 阿姆达尔定律意味着CPU对一个算法所能获得的并行加速是有限的 。即使有100个内部核心,由于串行部分和通信,实际速度也限制在10倍或更低 。由于其大规模并行架构,GPU可以实现几乎完美的并行加速 。
第四,是即时(JIT)编译方面
GPU的另一个优点是即时(JIT)编译 , 它减少了调度并行工作负载的开销 。GPU驱动程序和运行时具有JIT编译功能,可以在执行之前将高级着色器代码转换为优化的设备指令 。
为什么AI计算一定要用GPU?

文章插图
这为程序员提供了灵活性,同时避免了CPU所需的传统离线编译步骤 。JIT还支持基于运行时信息的优化 , 综合效果将GPU开销降低到几乎为零 。
相比之下,CPU必须坚持预编译的机器码,不能根据运行时行为自适应地重新编译,因此CPU的调度开销更高,灵活性也更差 。
第五 , 在编程模型方面
与CPU相比,GPU还提供了一个更加出色的并行编程模型CUDA , 开发人员可以更快速编写并行代码,而不必担心低级别的线程、同步和通信等问题 。
为什么AI计算一定要用GPU?

文章插图
CUDA和OpenCL提供C/ C++编程语言,其中代码专注于跨抽象线程的并行计算,凌乱的协调细节在幕后被无形地处理 。
相反,CPU并行性要求使用OpenMP等库直接处理线程 。在线程管理、锁和避免竞争条件方面 , 存在明显的额外复杂性 。这使得从高层考虑并行性变得更加困难 。
第六,二者响应方式不同
CPU基本上是实时响应,对单任务的速度要求很高,所以就要用很多层缓存的办法来保证单任务的速度 。
GPU往往采用的是批处理的机制,即:任务先排好队,挨个处理 。
为什么AI计算一定要用GPU?

文章插图
第七,二者的应用方向不同
CPU所擅长的像操作系统这一类应用,需要快速响应实时信息,需要针对延迟优化,所以晶体管数量和能耗都需要用在分支预测、乱序执行、低延迟缓存等控制部分 。
GPU适合对于具有极高的可预测性和大量相似的运算以及高延迟、高吞吐的架构运算 。目前广泛应用于三大应用市?。河蜗贰⑿槟庀质岛腿斯ぶ悄?。
为什么AI计算一定要用GPU?

文章插图
另外 , GPU还可以应用于自动驾驶、医疗影像分析、金融风控等领域 。不过,由于不同应用场景对GPU性能的要求不同,因此在选择GPU时需要考虑其计算能力、功耗和应用领域等因素 。需要根据任务类型选择最合适的GPU,并进行优化以发挥其性能优势 。
▉ GPU的下一步是什么?
由于内核数量和运行速度的提高,GPU的数字处理能力正在稳步提高 。但这些改进主要是由台湾台积电(TSMC)等公司在芯片制造方面的改进所推动的 。
目前,单个晶体管(任何计算机芯片的基本组成部分)的尺寸正在减小,这使得在相同数量的物理空间中可以放置更多的晶体管 。但这并不代表传统GPU对于人工智能相关的计算任务是最佳的 。
正如GPU最初设计是为图形提供专门的处理来加速计算机一样,各种加速器也被设计用来加速机器学习任务 。由AMD和NVIDIA等公司正在为传统的GPU制造各种加速器来提供其对人工智能等场景的计算需求,例如NVIDIA CUDA以及AMD的ROCm都能够为开发者提供了一个全面的环境,用于创建、优化和部署 GPU 加速应用,确保在各种平台上实现高性能和可扩展性 。
除此之外,例如谷歌的张量处理单元和Tenstorrent的Tensix Cores芯片 , 都是从头开始设计,被用于加速深度神经网络 。
通常,数据中心GPU和其他AI加速器通常比传统GPU附加卡配备更多内存,这对于训练大型AI模型至关重要 。人工智能模型越大,GPU的能力就要越强 , 准确度越高 。
为进一步加快训练速度,处理更大AI模型(例如ChatGPT),研发者可将许多数据中心GPU汇集到一起形成超级计算机 。而这需要更复杂软件方可正确利用可用的数字处理能力 。另一种方法则是创建一个非常大规模的加速器,例如芯片初创企业Cerebras生产的“晶圆级处理器”(wafer-scale processor) 。


推荐阅读