HPC沿Nvidia CUDA-GPU架构走。 从零到如今。
有人将机器学习定义为数学(算法),工程学(高性能计算)和人类能力(经验)之间的完美融合。 因此,这些领域中的任何进展都将有助于机器学习的发展。 今天是HPC的转折点,特别是我们在谈论GPU的进步。
Nvidia刚刚宣布了基于Ampere架构的Geforce RTX 30系列(RTX3090,RTX3080,RTX3070)。 Ampere是我们最喜欢的GPU品牌的最新架构,但是到目前为止已经发布了几代具有CUDA功能的GPU。 在以下各段中,我将描述从今天开始到今天的CUDA架构的全球概述,让我们一起推动一条有趣的路,从费米到安培。 但是,在不进一步了解细节之前,强烈建议您访问以前关于CUDA执行模型的文章,如果您不熟悉GPU计算的话。
遵循Nvidia GPU的自然发展时间表,该公司于2001年首次生产了能够进行可编程着色的芯片GeForce 3,该芯片被Playstation 2和Xbox所使用。 在GeForce 3(代号NV20)之前,还有其他一些产品:NV1(1995),NV3(1997),NV4(1998),NV5(1999),GeForce I(1999年末)和GeForce II(2000)。 但是,GeForce 3可能是第一个流行的Nvidia GPU。
指出Nvidia世界中目标类别和体系结构之间的差异很有趣,这可能会使读者感到困惑。 传统上,Nvidia为每种目标客户类别设计不同类型的产品,并命名为四个不同的产品:GeForce,Quadro,Tesla和(最近)Jetson。 尽管内部使用的底层体系结构对于这四个产品都是相同的。 用Nvidia话来说,它们四个具有相同的计算能力。 GeForce系列产品主要针对台式机和游戏玩家。 Quadro被认为是创建视频内容的工作站和开发人员的工具; 而Tesla是为超级计算机和HPC设计的。 最后,Jetson系列包含芯片中的嵌入式GPU。
正如我们在上面看到的那样,Nvidia在90年代初就开始了冒险,其GPU专注于grapichs,但是我们一直等到2007年才使用第一个CUDA架构:Tesla(是的,您是对的,他们使用相同的架构名称 稍后是一条产品线,这就是为什么我说这可能会造成混淆)。 Tesla是一个非常简单的体系结构,因此我决定直接从Fermi开始,它引入了Error-Correcting Code内存,确实改善了上下文切换,内存层次结构和双精度。
费米架构
每个Fermi流多处理器(SMI)均有32个CUDA内核(流处理器),16个加载/存储单元(LD / ST单元)组成,每个时钟可处理16个线程的内存操作,并具有4个特殊功能单元(SFU)以执行超越数学 指令,内存层次结构和翘曲调度程序。
该板有6个64位内存分区和3