![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA编程专栏
文章平均质量分 88
Programming Massively Parallel Processors 4th 英文版学习笔记,边学边记,温故知新。如有侵权请联系删除。
黑不溜秋的
GPU全栈博主-程序哥。
展开
-
CUDA编程06 - 性能优化指南
并行程序的执行速度在很大程度上取决于程序的资源需求与硬件的资源限制。在几乎所有并行编程模型中,管控并行代码与硬件资源约束之间的相互影响对于实现高性能非常重要的。这是一种实用的技能,需要对硬件体系结构有深刻理解,并需要在为高性能设计的并行编程模型下不断练习。到目前为止,我们已经了解了GPU架构的各个方面及其对性能的影响。在前面的CUDA编程04 - GPU计算架构和线程调度。原创 2024-08-12 01:01:56 · 901 阅读 · 0 评论 -
CUDA编程05 - GPU内存架构和数据局部性
到目前为止,我们已经学会了如何编写 CUDA 核函数,以及如何设置和分配大量线程来执行核函数。我们还了解了当前 GPU 硬件的计算架构,以及线程在硬件上调度执行过程。在本章中,我们将重点关注 GPU 的片上(on-chip)内存架构,并研究如何组织和存放数据,以便这些数据能够被大量线程高效的访问。到目前为止,我们所学习的 CUDA 核函数可能只达到底层硬件性能的一小部分。之所以性能不佳,是因为通常使用片外(off-chip)内存,即全局内存。原创 2024-08-07 21:07:29 · 572 阅读 · 0 评论 -
CUDA编程04 - GPU计算架构和线程调度
在前面的CUDA编程01- 并行编程介绍中,我们了解到CPU的设计目的是最小化指令执行的延迟,而GPU的设计目的是最大化执行指令的吞吐量。在前面CUDA编程02 - 数据并行介绍和CUDA编程03 - 多维数据并行中,我们学习了使用CUDA编程接口创建和调用核函数来启动和执行线程的核心特性。在接下来的三篇文章中,我们将讨论现代GPU的架构,包括计算架构和内存架构,并探讨基于架构理解之上的性能优化技术。本章将介绍GPU计算架构的几个方面,这些方面对于CUDA C程序员理解其核函数的性能和行为至关重要。原创 2024-08-01 22:19:41 · 1420 阅读 · 1 评论 -
CUDA编程03 - 多维数据并行
本文将更全面地讨论线程的组织方式,并学习如何使用线程和线程块来处理多维数据。本文将使用多个示例,包括将彩色图像转换为灰度图像、模糊图像以及矩阵乘法。这些示例旨在让读者熟悉数据并行的编程方法,以便在接下来的文章中讨论GPU架构、内存结构和性能优化。原创 2024-07-28 17:07:09 · 595 阅读 · 0 评论 -
CUDA编程02 - 数据并行介绍
数据并行是指在数据集的不同部分上执行计算工作,这些计算工作彼此相互独立且可以并行执行。许多应用程序都具有丰富的数据并行性,使其能够改造成可并行执行的程序。因此,对于程序员来说,熟悉数据并行的概念以及使用并行编程语言来编写数据并行的代码是非常重要的。在本文中,我们将使用CUDA C语言构造开发一个简单的数据并行程序。原创 2024-07-23 08:26:38 · 817 阅读 · 0 评论 -
CUDA编程01- 并行编程介绍
自计算机诞生以来,许多高端应用程序对执行速度和资源的需求超出了计算机所能提供的能力范围。早期的应用依赖于处理器速度、存储速度、存储容量的提升来增强应用程序的能力,例如,天气预报的及时性、工程结构分析的准确性、计算机生成图形的逼真度、每秒处理的机票预订数量,以及每秒处理的资金转账数量。最近,深度学习等新应用对执行速度和资源的要求甚至超过了最好的计算能力。这些应用需求在过去的五十年里推动了计算设备能力的快速发展,并将在可预见的未来继续如此。原创 2024-07-17 00:57:19 · 2073 阅读 · 0 评论 -
CUDA编程00 - 配置CUDA开发环境
第一步:在一台装有Nvidia显卡和驱动的机器上,用nvidia-smi命令查看显卡所支持cuda版本。安装时按提示下一步即可,安装完成用 nvcc -V 命令检查是否成功。第二步: 到Nvidia官网下载CUDA Toolkit并安装,第三步:编写HelloWorld。原创 2024-07-17 01:30:32 · 580 阅读 · 0 评论