GPU基础知识
参考资料
GPU软件抽象与硬件映射的理解(Grid、Block、Warp、Thread与SM、SP)https://blog.csdn.net/TANGWENTAI/article/details/126818834
GPU中的SM和warp的关系 https://blog.csdn.net/feng__shuai/article/details/108401793
Nvidia GPU架构 - Cuda Core,SM,SP等等傻傻分不清? https://blog.csdn.net/asasasaababab/article/details/80447254
AI推理加速原理解析与工程实践分享 https://mp.weixin.qq.com/s/KwmF6l40MHOo6T-3cFjDKg
NVIDIA GeForce GTX 1080 白皮书 http://international.download.nvidia.com/geforce-com/international/pdfs/GeForce_GTX_1080_Whitepaper_FINAL.pdf
(2010年) NVIDIA’s Next Generation CUDATM Compute Architecture: FermiT 白皮书 https://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf
Nvidia CUDA Cores Explained: How are they different? https://www.techcenturion.com/nvidia-cuda-cores/
请问英伟达GPU的tensor core和cuda core是什么区别? https://www.zhihu.com/question/451127498/answer/2383293285
NVIDIA Tensor 核心 前所未見的高效能運算與人工智慧加速效能 https://www.nvidia.com/zh-tw/data-center/tensor-cores/
名词解释
GPCs : Graphics Processing Clusters
SM : Streaming Multiprocessor
SMP : SM Processing Block
SP: Streaming Processor, SMP里边的绿色的就是CUDA Core,CUDA core也叫Streaming Processor(SP)
2008年的Tesla架构到2020年的Ampere架构
从 Tesla 架构开始的图形卡中有 CUDA 内核。 属于 Tesla、Fermi、Kepler、Maxwell、Pascal、Volta、Turing 和 Ampere 的所有 Nvidia GPU 都具有 CUDA 内核。 但对于 Tensor 核心或 Ray-Tracing 核心则不能这样说。
-
第一代 Fermi GPU 具有多达 512 个 CUDA 内核,每个内核组成 16 个流式多处理器,每个处理器有 32 个内核。 GPU 支持的最大内存为 6GB GDDR5 内存。 这是一个方框图,显示了费米 CUDA 核心的结构。 每个 CUDA 核心都有一个浮点单元和一个整数单元。
-
使用 Kepler 架构,CUDA 核心数增加了两倍。 Kepler 架构支持多达 1536 个 CUDA 内核。 它基于 28nm 制造技术。
-
2017年的Volta架构,完全以深度学习为核心。SM在FP64 Cuda Cores和FP32 Cuda Core基础上增加了INT32 Cuda Core,意味着可以执行INT32的操作。更重要的是,引入了张量核Tensor Core模块,用于执行融合乘法加法。其中两个44 FP16矩阵相乘,然后将结果添加到44 FP16或FP32矩阵中,最终输出新的4*4 FP16或FP32矩阵。在Volta架构中,一个SM由8个FP64 Cuda Cores,16个INT32 Cuda Core,16个FP32 Cuda Core,和128个Tensor Core组成,一共有4个SM,算力相比于Pascal架构快了5倍。
-
在Volta基础上,2018年英伟达发布Turing架构,对Tensor Core进行了升级,增加了对INT8、INT4、Binary(INT1)的计算能力,性能依次翻倍。此外,在架构配备了RT Core(专用光线追踪处理器),能够高速对光线和声音进行渲染。
-
2020年发布Ampere 架构,对Tensor Core又进行了升级,增加了TF32和BF16两种数据格式的支持,也增加了对稀疏矩阵计算的支持。