CUDA核心和张量核心的区别是什么? 解释一下) - 所有的区别
Table of contents
CUDA和Tensor核心是由一家名为Nvidia的公司开发的产品。 那么,什么是CUDA核心和Tensor核心呢? CUDA代表计算统一设备架构。 CUDA核心存在于你的GPU、智能手机,甚至你的汽车中,正如Nvidia的开发者所说。
CUDA内核是一个并行计算平台和应用编程接口(API),使软件能够利用特定类型的图形处理单元(GPU)进行通用处理。
而张量核心也是由Nvidia开发的,也用于GPU中。 张量核心实现了混合精度计算,动态适应计算,以提高吞吐量,同时保持精度。
简单地说,这些内核是你电脑中的GPU的重要组成部分,用于进行某些计算。 CUDA内核用于将两个数字相乘并与另一个数字相加。
而张量核心也是如此,但有4×4矩阵。 这些计算基本上是为你更快地渲染图形。
什么是CUDA?
计算统一设备架构简称CUDA,由Nvidia开发,于2007年6月23日发布,是一个并行计算平台和应用编程接口(API)。
这使软件能够使用特定类型的图形处理单元(GPU)进行通用处理,这种方法被称为GPU上的通用计算(GPU)。
CUDA是一个软件层,为执行计算内核提供对GPU虚拟指令集和并行计算元素的直接访问。 CUDA的开发是为了与包括C、C++和Fortran在内的不同编程语言协同工作。
如果我们将其与先前的API(如Direct3D或OpenGL)区分开来,那么使用不同的编程语言的能力使并行编程的专家更容易利用GPU资源,这需要你在图形编程方面有更高的技能基础。
带有CUDA的GPU也支持编程框架,如OpenMP、OpenACC、OpenCL,还有HIP,可以将这类代码编译为CUDA。 CUDA的第一个名字是计算统一设备架构的缩写。 然而,Nvidia后来放弃了这个常用的缩写。
一个强大的Nvidia图形卡GTX 1080 Ti
关于CUDA的更多信息
作为一个专门的计算机处理器,图形处理单元(GPU)满足了实时、计算密集型3D图形工作负载的需要。
大约在2012年,GPU不断发展,已经成为高度并行的多核系统,能够对大块数据进行有效处理。
当并行处理巨大的数据块时,这种设计优于通用中央处理器(CPU)的算法,例如::
- 加密哈希函数
- 机器学习
- 分子动力学模拟
- 物理学引擎
- 排序算法
现在和未来的CUDA架构的用途
- 加速3D图形的渲染
- 加速视频文件格式的相互转换
- 加速的加密、解密和压缩
- 生物信息学,例如,NGS DNA测序 BarraCUDA
- 分布式计算,如预测蛋白质的原始构象
- 医学分析模拟,例如,基于CT和MRI扫描图像的虚拟现实
- 物理模拟,特别是在流体动力学方面
- 机器学习问题中的神经网络训练
- 人脸识别
- 分布式计算项目,如[email protected]和其他使用BOINC的项目
- 分子动力学
- 挖掘加密货币
- 来自运动的结构(SfM)软件
什么是张量核心?
被称为张量核心的专门核心可以进行混合精度训练。 这些专门核心的最初一代是通过融合的乘加算法来实现的。 这使得将两个4×4的FP16矩阵乘加到一个4×4的FP16或FP32矩阵成为可能。
最终的结果将是FP32,只有轻微的精度损失,混合精度计算被指定为如此,即使输入矩阵可能是低精度的FP16。
在实践中,这大大加快了计算的速度,而对模型的最终效果影响不大。 这种能力被后来的微架构扩大到更不精确的计算机数字表示。
第一代是以V100开始的Volta微架构推出的,每过一代都有更多的计算机数字精度格式可用于新的GPU微架构的计算。
我们将在接下来的章节中谈及张量核心的容量和功能是如何随着每一代微架构的发展而变化和改进的。
一个由泰坦五世制作的图形渲染的图像
See_also: 来苏尔与松香水与法布罗索与阿贾克斯液体清洁剂(探索家庭清洁用品)--所有区别张量核心如何工作?
第一代:
Volta GPU微架构包含在第一代张量核心中。 这些核心使得混合精度和FP16数字格式的训练成为可能。
顶级V100的640个核心比上一代Pascal GPU的性能速度最多可提高5倍。
第二代:
随着图灵GPU的引入,第二代张量核心也被引入,Int8、Int4和Int1被添加到支持的张量核心精度列表中,之前这些精度仅限于FP16。
See_also: 这个和那个的区别 VS 这个和那个的区别 - 所有的区别由于采用了混合精度训练程序,与Pascal GPU相比,GPU的性能吞吐量增加了32倍。
第三代:
安培GPU中的架构通过增加对FP64、TF32和bfloat16精度的支持,扩展了Volta和Turing微架构的早期进展。
深度学习的训练和推理活动通过这些额外的精度格式得到了更大的加速。 例如,TF32格式的功能与FP32类似,同时也保证了在不改变任何代码的情况下有高达20倍的速度提升。
然后,只需几行代码,自动混合精度的实现将使训练速度再提高2倍。
第三代NVLink实现了极快的多GPU互动,第三代Ray Tracing核心,以及稀疏矩阵数学的专业性是Ampere微架构的其他方面。 .
第四代:
未来计划发布基于Hopper微架构的第四代Tensor Cores。 下一代H100中的第四代Tensor Cores。
预计将于2022年3月发布,它将能够处理FP8精度格式,据英伟达称,它将使巨大的语言模型的速度 "比上一代提高30倍,令人吃惊"。
RTX显卡用于渲染图形的速度非常快,因为它包含张量核心。
CUDA核心和张量核心之间的区别
Tensor核心目前仅限于Titan V和Tesla V100。 这两个GPU上的5120个CUDA核心的最大容量为每个GPU时钟(例如,在fp32中:x += y * z)进行一次单精度乘积运算(例如,Tesla V100的PCIe频率为1.38Gz)。
每个张量核心对4×4的小矩阵进行操作。 每一个GPU时钟,每个张量核心可以完成一个矩阵乘积操作。
它将两个4×4的FP16矩阵相乘,再加上累积器中产生的4×4的FP32矩阵(那也是一个FP32的4×4矩阵)。
因为输入矩阵是fp16,而乘法结果和累加器是fp32,所以该算法被称为混合精度算法。
正确的说法可能只是 "4×4矩阵核心",但英伟达营销团队选择使用 "张量核心"。
张量核心的完整解释,简而言之
GPU卡 | CUDA内核 | VRAM |
---|---|---|
GeForce GTX 1660 Ti | 1536 | 6GB |
GeForce GTX 1660超级版 | 1408 | 6GB |
GeForce GTX 1660 | 1408 | 6GB |
GeForce GTX 1650超级版 | 1408 | 4GB |
GeForce GTX 1650 | 1024和896 | 4GB |
GeForce GTX 1060 3GB | 1280 | 4GB |
GeForce GTX 1650 | 1280 | 3GB |
GeForce GTX 1060 6GB | 768 | 6GB |
GeForce GTX 1050 Ti (3GB) | 768 | 4GB |
GeForce GTX 1050 (2GB) | 640 | 3GB |
GeForce GTX 960 | 1024 | 2GB |
GeForce GTX 950 | 786 | 2GB |
GeForce GTX 780 Ti | 2880 | 2GB |
GeForce GTX 780 | 2304 | 3GB |
GeForce GTX 750 Ti | 640 | 2 GB |
GeForce GTX 750 | 512 | 1GB或2GB |
包含CUDA内核的GPU
总结
- CUDA和Tensor核心是产品,都是由一家名为Nvidia的公司开发的。 CUDA代表计算统一设备架构。 这些CUDA核心存在于你的GPU、智能手机,甚至是你的汽车中。
- 而张量核心也是由Nvidia开发的,也用于GPU中。 被称为 "张量核心 "的专门核心可以进行混合精度训练。 第一代张量核心使得混合精度和FP16数字格式的训练成为可能。
- Int8、Int4和Int1被添加到支持Tensor Core精度的列表中。
- 由于混合精度的训练程序,GPU的性能提高了32倍。 未来计划发布基于Hopper微架构的第四代Tensor Cores。