《多核与GPU编程:工具、方法及实践》----第1章 概 述 1.1 多核计算机时代

简介: 本章目标: 了解计算机(计算机体系架构)设计的发展趋势以及该趋势如何影响软件开发。 学习基于Flynn分类的计算机分类方法。 学习评估多核/并行程序性能即加速比和效率的必备工具。 学习测量和报告程序性能的正确实验方法。

本节书摘来自华章出版社《多核与GPU编程:工具、方法及实践》一书中的第1章,第1.1节, 作 者 Multicore and GPU Programming: An Integrated Approach[阿联酋]杰拉西莫斯·巴拉斯(Gerassimos Barlas) 著,张云泉 贾海鹏 李士刚 袁良 等译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章

概  述

本章目标:
了解计算机(计算机体系架构)设计的发展趋势以及该趋势如何影响软件开发。

学习基于Flynn分类的计算机分类方法。

学习评估多核/并行程序性能即加速比和效率的必备工具。

学习测量和报告程序性能的正确实验方法。

学习Amdahl和Gustafson-Barsis定律,并使用这两个定律预测并行程序性能。

1.1 多核计算机时代

在过去的40年中,数字计算机已经成为技术和科学发展的基石。遵循20世纪70年代摩尔(Gordon E. Moore)发现的摩尔定律,计算机的信息处理速度(性能)呈指数提高,这使得我们可以处理更加复杂的问题。

令人惊讶的是,即使在今天,摩尔定律也描述了行业的发展趋势。然而,在大众科学中有一个被忽视的问题需要澄清一下:摩尔定律描述的是晶体管数量呈指数级增长,而不是运行性能。图1-1描述了摩尔定律。

这是一个非常容易犯的错误,因为晶体管数目的增加伴随着运行频率(时钟频率)的提高。但是,时钟频率的增加会导致产热的增加。为此,芯片设计者不断降低电子电路的操作电压(目前的运行电压为1.29V)。然而,这并不足以解决这个问题。因此,时钟频率的发展不可避免地陷入停滞。在过去10年中,主流时钟频率维持在2~4GHz之间。


d1438902b9232eca8ecb7b5538160bb7c17a685c

所以,获取更高计算能力的唯一途径就是在芯片内部集成更多的计算逻辑和计算核心。随着AMD于2015年推出第一款双核芯片(AMD 64 X2),更多的多核芯片也被不断推出。这其中不仅包括拥有大量计算核心的同构芯片(如 64核Tilera,TILE64),而且包括异构芯片,如Cell BE,它采用Power架构,并用于Sony Playstation 3。

这些芯片是多路(multisocket)平台(即,20世纪90年代中后期出现的搭载多个CPU的计算机)的自然演化。然而,GPGPU(通用计算图形处理单元)的出现是一个意外。GPGPU是指利用GPU (Graphical Processing Unit,图形处理器)进行通用计算。虽然单个GPU核与同时代的CPU核相比性能很差,但是GPU采用了大规模并行架构,拥有通过高带宽、高性能RAM相连的成百上千个计算核心。因此,同CPU相比,GPU的性能以数量级提升。

在能源日益紧张的今天,GPGPU还有一个额外优势:它提供了卓越的GFlop/W的性能。换句话说,可以使用同样的能源进行更多的计算。这在服务器和云基础设施领域是非常重要的。在这些领域中,CPU在其运行寿命中消耗的能源费用要比其购买价格高得多。

GPGPU技术被认为是颠覆性的,在很多层面上确实是这样:它为使用现代单核甚至多核CPU技术仍然无法解决的问题提供了解决方案。但是,GPGPU需要新的软件设计、开发工具和技术。据预测,在不久的将来,需要数百万个线程来开发下一代高性能计算硬件的性能。

然而,所有这些多核芯片带来的性能提升都不是免费的:需要对按部就班执行的传统算法进行重新设计。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
人工智能 弹性计算 PyTorch
【Hello AI】神行工具包(DeepGPU)-GPU计算服务增强工具集合
神行工具包(DeepGPU)是阿里云专门为GPU云服务器搭配的GPU计算服务增强工具集合,旨在帮助开发者在GPU云服务器上更快速地构建企业级服务能力
129879 3
|
6月前
|
存储 并行计算 调度
迈向可编程观测:在GPU Kernel中构建类eBPF风格的性能探针
本文旨在梳理作者学习路径,带领读者共同探索 GPU Kernel 性能分析从宏观到微观的技术演进。
969 24
迈向可编程观测:在GPU Kernel中构建类eBPF风格的性能探针
|
5月前
|
人工智能 并行计算 PyTorch
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
以Lama Cleaner的AI去水印工具理解人工智能中经常会用到GPU来计算的CUDA是什么? 优雅草-卓伊凡
504 4
|
人工智能 Linux iOS开发
exo:22.1K Star!一个能让任何人利用日常设备构建AI集群的强大工具,组成一个虚拟GPU在多台设备上并行运行模型
exo 是一款由 exo labs 维护的开源项目,能够让你利用家中的日常设备(如 iPhone、iPad、Android、Mac 和 Linux)构建强大的 AI 集群,支持多种大模型和分布式推理。
3195 101
|
人工智能 文字识别 异构计算
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
NVIDIA-Ingest 是英伟达开源的智能文档提取工具,支持 PDF、Word、PPT 等多种格式,提供并行处理和 GPU 加速,适用于企业内容管理和生成式应用。
681 18
NVIDIA-Ingest:英伟达开源智能文档提取及结构化工具,支持 GPU 加速和并行处理
|
存储 并行计算 算法
CUDA统一内存:简化GPU编程的内存管理
在GPU编程中,内存管理是关键挑战之一。NVIDIA CUDA 6.0引入了统一内存,简化了CPU与GPU之间的数据传输。统一内存允许在单个地址空间内分配可被两者访问的内存,自动迁移数据,从而简化内存管理、提高性能并增强代码可扩展性。本文将详细介绍统一内存的工作原理、优势及其使用方法,帮助开发者更高效地开发CUDA应用程序。
|
存储 人工智能 缓存
探索AIGC未来:CPU源码优化、多GPU编程与中国算力瓶颈与发展
近年来,AIGC的技术取得了长足的进步,其中最为重要的技术之一是基于源代码的CPU调优,可以有效地提高人工智能模型的训练速度和效率,从而加快了人工智能的应用进程。同时,多GPU编程技术也在不断发展,大大提高人工智能模型的计算能力,更好地满足实际应用的需求。 本文将分析AIGC的最新进展,深入探讨以上话题,以及中国算力产业的瓶颈和趋势。
|
缓存 并行计算 算法
上帝视角看GPU(5):图形流水线里的不可编程单元
上帝视角看GPU(5):图形流水线里的不可编程单元
798 0
|
并行计算 API C++
GPU 硬件与 CUDA 程序开发工具
GPU 硬件与 CUDA 程序开发工具
479 0
|
并行计算 API 开发工具
【GPU】GPU 硬件与 CUDA 程序开发工具
【GPU】GPU 硬件与 CUDA 程序开发工具
495 0

热门文章

最新文章