GPU并行计算与CUDA编程

1、并行计算编程

结构图

在这里插入图片描述
左图:编程的模型。右图是硬件的模型。

CUDA编程的优点与后果

在这里插入图片描述

在这里插入图片描述
每一个线程块运算的时间不同。需要加以控制。需要考虑当一个线程计算完,调用另一个线程未计算完的情况。

CUDA编程模型的原则

在这里插入图片描述

内存模型

在这里插入图片描述
CPU调用GPU,将主存上的数据复制到GPU显存,再进行读取运算。

同步性synchronisation和屏蔽barrier

在这里插入图片描述
barrier的作用起到阻隔的作用,只有当所有线程都到达时,释放所有线程。

CUDA编程模型

在这里插入图片描述
对于线程块(Thread Block)来说,需要设置同步机制,防止线程之间的不等待导致出错。需要开放者设计运行逻辑
对于KernelA、KernelB,只有执行完毕KernelA才能执行KernelB,这是系统层面的控制。

2、GPU硬件模式

线程块

在这里插入图片描述
一组线程块用于解决一个kernal核(函数)

GPU

在这里插入图片描述
GPU的主要工作把线程块分配到SM流处理器。

在这里插入图片描述
GPU实际上是处理他们之间的关系。

总结: GPU把kernel(也就是函数)的线程块分配到SM上进行处理,SM用于处理线程。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CUDA编程是一种用于GPU并行计算编程模型,它由NVIDIA推出并应用于其显卡产品系列。通过CUDA编程,开发者可以利用GPU并行计算能力来加速各种计算任务。下面是一些关于CUDA编程GPU并行计算的重要概念: 1. GPU:图形处理器(Graphics Processing Unit)是一种专门用于处理图形和并行计算的硬件设备。与传统的中央处理器(CPU)相比,GPU具有更多的核心和更高的内存带宽,适合并行计算任务。 2. CUDA:Compute Unified Device Architecture(CUDA)是一种并行计算平台和编程模型,用于利用GPU进行通用目的的并行计算CUDA提供了一套API和工具,使开发者能够直接在GPU上编写并运行并行计算代码。 3. 核函数(Kernel Function):在CUDA编程中,开发者可以定义一个称为核函数的特殊函数。核函数在GPU上并行执行,并且每个线程都会独立地执行该函数。通过合理设计核函数,开发者可以利用GPU并行计算能力来加速各种计算任务。 4. 线程、块和网格:在CUDA编程中,GPU上的并行计算是以线程为基本单位进行的。线程被组织成块(block),而块又可以组织成网格(grid)。开发者可以通过调整块和网格的大小来优化并行计算的性能。 5. 内存管理:CUDA提供了多种类型的内存,开发者可以根据需要选择合适的内存类型。其中,全局内存(Global Memory)是GPU上所有线程都可以访问的共享内存,而共享内存(Shared Memory)是块内线程共享的高速缓存。合理地使用不同类型的内存可以提高并行计算的效率。 通过CUDA编程,开发者可以将适合并行计算的任务分配给GPU来加速处理。这种方式在科学计算、深度学习、图像处理等领域得到广泛应用,能够显著提高计算性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值