较真:认真解读“NVIDA CUDA显卡计算能力表”

博主在硬件设备方面还是个小白,近日想要知道深度学习应当选用哪些显卡,其性能如何?且网络上能搜到的GPU天梯图似乎都停留在以装机选配为目的的个人级别上,于是在本站试图搜索相关文章或者排行,看到有不少博主搬运了NVIDA发布的一系列表格,比如:

GPU运算能力对比(详细)icon-default.png?t=M666https://blog.csdn.net/edward_zcl/article/details/100099353?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-100099353-blog-119384400.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-100099353-blog-119384400.pc_relevant_default&utm_relevant_index=2nullicon-default.png?t=M666https://blog.csdn.net/chigusakawada/article/details/80198970

这一系列文章的博主几乎都是搬运了相关表格,部分博主也加入了一些自己的评价或感受,但这一系列博客看下来给人一种理所应当的感觉:“文章中衡量GPU所使用的计算能力(Compute Capability)指标越大越好,相关GPU指标之间有合理、可靠的排名意义”

以下是表格部分摘录:

GPU Compute Capability
Tesla K80 3.7
Tesla K40 3.5
NVIDIA A100 8.0
NVIDIA A40 8.6
NVIDIA A30 8.0
NVIDIA TITAN X 6.1
GeForce GTX 1080 Ti 6.1
GeForce GTX 750 5.0
GeForce GTX 560 Ti 2.1

隐隐约约感觉有点不对劲,比如,虽然Tesla K40确实不是很强的卡,但是这个表格里面它的能力比GTX750差了那么大一截吗?

感谢相关博主在搬运表格时几乎都能够标出表格来源,于是我顺藤摸瓜找到了NVIDIA发布的原始数据网址:https://developer.nvidia.com/cuda-gpus

点进去一看,数据倒是没有在搬运的时候发生错误,不过网页上特地提示用户去看Compute Capability的定义

较真:认真解读“NVIDA CUDA显卡计算能力表”_第1张图片

 点开之后发现,Compute Capability的定义和想象中还真有些区别,它不是直接用某些计算速度等量化指标来决定数值的,而是以类似于版本号的机制来决定的;

 感兴趣的朋友可以亲自去这里看看https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#compute-capability

较真:认真解读“NVIDA CUDA显卡计算能力表”_第2张图片

The compute capability of a device is represented by a version number, also sometimes called its "SM version". This version number identifies the features supported by the GPU hardware and is used by applications at runtime to determine which hardware features and/or instructions are available on the present GPU.

设备的计算能力由版本号表示,有时也被称为“SM版本”。这个版本号标识了GPU硬件支持的特性,并被应用程序在运行时用来确定当前GPU上哪些硬件特性和/或指令可用。

The compute capability comprises a major revision number X and a minor revision number Y and is denoted by X.Y.

计算能力包括一个大版本号X和一个小版本号Y,用X.Y表示

Devices with the same major revision number are of the same core architecture. The major revision number is 8 for devices based on the NVIDIA Ampere GPU architecture, 7 for devices based on the Volta architecture, 6 for devices based on the Pascal architecture, 5 for devices based on the Maxwell architecture, 3 for devices based on the Kepler architecture, 2 for devices based on the Fermi architecture, and 1 for devices based on the Tesla architecture.

具有相同主版本号的设备具有相同的核心架构。主要版本号为 :

8 用于基于NVIDIA Ampere GPU架构的设备

7 用于基于Volta架构的设备

6 用于基于 Pascal架构的设备

5 用于基于Maxwell架构的设备

3 用于基于Kepler架构的设备架构

2 个用于基于Fermi架构的设备

1 个用于基于 Tesla的设备建筑学。

The minor revision number corresponds to an incremental improvement to the core architecture, possibly including new features.

次要修订号对应于对核心架构的增量改进,可能包括新功能。

Turing is the architecture for devices of compute capability 7.5, and is an incremental update based on the Volta architecture.

ps:博主对GPU了解不多,上标中的主版本序号1-8对应的核心架构的实际性能水平也是大致与数字大小呈正关系吗?请各位大神赐教 

原来,这个所谓的“计算能力”是基于技术面的分析,一般可以认为,随着技术和架构的进步,对计算能力有一定的帮助,而且同系列的新卡一般都因为采用新技术而比旧卡好,但这并不绝对;

另一个问题在于,同样的核心架构、同样的增量改进号,对应到这里的GPU的“计算能力”指标是相同的,但很显然在这张表上相同指标的某些GPU之间的性能差距还是有较明显的差别,比如:

GPU Compute Capability
Quadro P500 6.1
Tesla P4 6.1

较真:认真解读“NVIDA CUDA显卡计算能力表”_第3张图片

总结:

 NIVIDA显卡计算能力表被多位博主转载,并且缺乏对表格指标定义的相关说明,容易让读者产生误解;经过搜索与整理资料,得到结论:该表一定程度上反映了显卡的运算速度,但并不是绝对按照数值大小区分性能的依据——大的架构版本差异之间的显卡对比明显,同一架构内的显卡比对意义不大;GPU的实际性能除了其采用的技术架构外,其芯片工艺等级、运算单元数量、“挤牙膏”的进度等其它因素有时候也会对其造成显著影响,故大家应当正确认识“NIVIDA显卡计算能力表”,不要把表中的数值当成性能的绝对指标。

你可能感兴趣的:(科技,深度学习,其他)