
NVIDIA
文章平均质量分 95
图波列夫
这个作者很懒,什么都没留下…
展开
-
cuBLAS 3.1.5. Narrow Precision Data Types Usage
cuBLAS我们这里所说的最初是作为8位浮点数据类型(FP8)随 Ada 和 Hopper GPU(计算能力8.9及以上)引入的,旨在进一步加速矩阵乘法。:除非另有说明,FP8 指的是和两种数据类型。随着 Blackwell GPU(计算能力10.0及以上)的推出,cuBLAS 增加了对4位浮点数据类型 (FP4)的支持。E2和 M1分别表示2位指数和1位尾数。更多详细信息,请参阅。为了保持精度,窄精度数据在计算前需要进行缩放或反量化,并在计算后可能需要进行量化。翻译 2025-03-27 19:12:23 · 51 阅读 · 0 评论 -
CUDA C++ Programming Guide 7.26. Asynchronous Barrier
NVIDIA C++ 标准库引入了 std::barrier 的 GPU 实现。除了std::barrier的实现之外,该库还提供了扩展功能,允许用户指定屏障对象的作用范围。屏障 API 的作用范围在 Thread Scopes 中有详细说明。 计算能力为8.0或更高的设备为屏障操作提供了硬件加速,并将其与memcpy_async 功能集成。 在计算能力低于8.0但不低于7.0的设备上,这些屏障可以使用但没有硬件加速。翻译 2024-09-11 09:30:16 · 528 阅读 · 0 评论 -
CUTLASS 中的 47_ampere_gemm_universal_streamk 示例
前一篇文章介绍了 Stream-K: Work-centric Parallel Decomposition for Dense Matrix-Matrix Multiplication on the GPU 论文,下面对其代码实现进行分析。cutlass 的 examples/47_ampere_gemm_universal_streamk 展示了 GEMM Stream-K 算法在 Ampere 架构上的使用。对比了普通 Gemm 以及 Split-K 算法和 Stream-K 的性能原创 2024-08-21 19:36:09 · 1537 阅读 · 0 评论 -
Stream-K: Work-centric Parallel Decomposition for Dense Matrix-Matrix Multiplication on the GPU
在 NVIDIA GTC22 秋季会议上,CUTLASS: Python API, Enhancements, and NVIDIA Hopper 介绍了 CUTLASS~2.11 中引入的 Stream-K 分解:在这里插入图片描述几个月后公开的 Stream-K: Work-centric Parallel Decomposition for Dense Matrix-Matrix Multiplication on the GPU 论文对其进行了更详细的介绍。CUTLASS 的 GEMM 实现由三大原创 2024-05-31 18:18:45 · 2256 阅读 · 0 评论 -
CUTLASS 1.3.3中的 Volta884_h884gemm
CUTLASS 是 CUDA C++ 模板抽象的集合,用于在 CUDA 内的所有级别和规模上实现高性能矩阵-矩阵乘法 (GEMM) 和相关计算。它采用了类似于 cuBLAS 和 cuDNN 中实现的分层分解和数据移动策略。CUTLASS 最新版本为3.3,相比1.3.3变动较大。然而重温一下1.3.3仍然是有意义的。因为它更易于理解: 与 PROGRAMMING TENSOR CORES: NATIVE VOLTA TENSOR CORES WITH CUTLASS 中介绍的内容相匹配;原创 2023-11-22 19:45:13 · 539 阅读 · 0 评论 -
Programming Tensor Cores: NATIVE VOLTA TENSOR CORES WITH CUTLASS
PROGRAMMING TENSOR CORES: NATIVE VOLTA TENSOR CORES WITH CUTLASS 源自于 GTC Silicon Valley-2019: cuTENSOR: High-performance Tensor Operations in CUDA,介绍了 CUTLASS 1.3 中基于 Volta Tensor Core 实现高效矩阵乘法计算的策略。主要内容为以下三点: CUDA 10.1中mma.sync指令介绍; Global Memory原创 2023-11-22 17:18:50 · 750 阅读 · 0 评论 -
Modeling Deep Learning Accelerator Enabled GPUs
Modeling Deep Learning Accelerator Enabled GPUs 发表在 ISPASS 2019 上。文章研究了 NVIDIA 的 Volta 和 Turing 架构中张量核的设计,并提出了 Volta 中张量核的架构模型。基于实现该模型,并且支持 CUTLASS 运行。发现其性能与硬件非常吻合,与 Titan V GPU 相比,获得了99.6%的 IPC 相关性。文中还展示了 Turing 架构中张量核的操作数矩阵元素到线程的映射,并发现它们与 Volta 张量核的行为不同。原创 2023-10-23 17:54:42 · 1182 阅读 · 0 评论 -
CUTLASS: Efficient GEMM in CUDA
CUTLASS 实现了 CUTLASS: Fast Linear Algebra in CUDA C++ 和 CUTLASS GTC2018 talk 中描述的分层分块结构。基本的三重嵌套循环计算矩阵乘法可以应用分块和拼贴,以匹配硬件、内存局部性和并行编程模型中的并发性。CUTLASS 中 GEMM 映射到 NVIDIA GPU 的结构如以下嵌套循环所示。翻译 2023-08-10 19:39:18 · 2349 阅读 · 0 评论 -
cuDNN 的初始设计
cuDNN V1.0在2014年的发布,并集成到 Caffe、Paddle 等深度学习框架中。论文介绍了 NVIDIA 对于该库的设计和实现。近十年间,NVIDIA 迭代推出了8代架构,cuDNN 也更新到 8.9。硬件上引入了 Tensor Core,软件方面 cuDNN V8 中的 Graph API 相比之前变化较大。然而,作为深度学习领域影响广泛的软件基础设施,一窥 cuDNN 的初始设计仍是有意义的。cuDNN 类似于 cuBLAS,提供了深度学习原语的高效实现。原创 2023-04-22 20:07:02 · 1297 阅读 · 0 评论 -
Roofline Model Toolkit: A Practical Tool for Architectural and Program Analysis
Roofline Model Toolkit: A Practical Tool for Architectural and Program Analysis 描述了 Roofline Toolkit 的原型架构表征引擎。该引擎由一组使用消息传递接口(Message Passing Interface,MPI )以及用于表示线程级并行性的 OpenMP 实现的便携式设备化微基准组成,可量化多核、众核和加速系统的带宽和计算特性。这些微观测试侧重于在编译器和运行时环境以及线程级并行、指令级并行和显式 SIMD原创 2021-12-25 15:58:46 · 1193 阅读 · 0 评论 -
Roofline-on-NVIDIA-GPUs代码分析
Roofline 代码现状:CS Roofline Toolkit 为 Roofline Model Toolkit: A Practical Tool for Architectural and Program Analysis 的实现,uo-cdux/ert-mirror 为 github 上的一个镜像;cyanguwa/nersc-roofline 为 Hierarchical Roofline Analysis: How to Collect Data using Performance To原创 2021-12-04 10:28:22 · 2518 阅读 · 0 评论 -
Hierarchical Roofline Performance Analysis for Deep Learning Applications
Roofline 模型是劳伦斯伯克利国家实验室在2008年提出的一个性能模型,后续很多工作亦出自该实验室。考虑到分层 Roofline 这一概念已在先前的Hierarchical Roofline analysis for GPUs: Accelerating performance optimization for the NERSC-9 Perlmutter system 和 Hierarchical Roofline Analysis: How to Collect Data using Perfo原创 2021-11-28 21:37:31 · 1297 阅读 · 0 评论