【GPGPU编程模型与架构原理】第二章 2.1 计算模型
创始人
2024-02-02 08:38:33
0

  本章介绍以CUDA和OpenCL 并行编程中的一些核心架构概念来展示GPGPU的计算、编程和存储模型。本章还介绍虚拟指令集和机器指令集,逐步揭开GPGPU体系结构的面纱。

2.1 计算模型

计算模型是编程框架的核心,计算模型需要根据计算核心的硬件架构提取计算的共性工作方式。

作为首个GPGPU编程模型,CUDA 定义以主从方式结合SIMT 硬件多线程的计算方式。本节以典型的矩阵乘法为例介绍GPGPU所采用的计算模型。

2.1.1 数据并行和线程

在图形和其他应用中,大量数据具有良好的并行特性。这种数据的并行性使得处理器在计算过程中安全的对数据以一定的结构化方式同时进行操作。

典型例子就是矩阵乘法运算:结果矩阵中的每个元素的计算可以并行的进行。(每个元素都需要进行相同次数的点积运算)
在这里插入图片描述

基于矩阵乘法这一数据并行性,可以设计多个计算单元同时执行矩阵中的点积运算。在GPGPU中,承担并行计算中每个计算任务的计算单元成为线程。每个线程会在一次计算任务过程中,执行相同的指令。

1	从输入矩阵A和B中读取一部分向量a, b
2	for (i = 0; i < N; i++)
3		c += a[i] + b[i];
4	将c写回结果矩阵C的对应位置中

每个线程从从矩阵A 和矩阵B中选取对应的行或列构成向量a和向量b,然后执行向量点积运算,最终将输出结果c保存到矩阵C中。

CUDA和OpenCL的编程模型基于GPGPU架构特点,对SIMT计算模型进行了合理的封装。

  • CUDA引入了线程网格(thread grid)、线程块(thread block)、线程(thread);
  • OpenCL 引入了N维网络(NDRange)、工作组(work-group)、工作项(work-item)等概念,

可以将计算任务灵活的映射到GPGPU层次化的硬件执行单元实现高效的并行,提高了处理器的执行效率。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...