CUDA的编程模型

在这里插入图片描述
CUDA 编程模型提供了 GPU 架构的抽象,作为应用程序与其在 GPU 硬件上的可能实现之间的桥梁。这篇文章概述了 CUDA 编程模型的主要概念,概述了它们如何在 C/C++ 等通用编程语言中公开。

先介绍一下CUDA编程模型中广泛使用的两个关键字:host和device。

主机是系统中可用的 CPU。与 CPU 相关联的系统内存称为主机内存。GPU 称为设备,GPU 内存也称为设备内存。

要执行任何 CUDA 程序,有三个主要步骤:

将输入数据从主机内存复制到设备内存,也称为主机到设备传输。
加载 GPU 程序并执行,在芯片上缓存数据以提高性能。
将结果从设备内存复制到主机内存,也称为设备到主机传输。

CUDA 内核和线程层次结构

图 1 显示 CUDA 内核是一个在 GPU 上执行的函数。应用程序的并行部分由K 个不同的 CUDA 线程并行执行K次,而不是像常规 C/C++ 函数那样只执行一次。
在这里插入图片描述

图 1. 内核是一个在 GPU 上执行的函数。

每个 CUDA 内核都以__global__声明说明符开头。程序员通过使用内置变量为每个线程提供唯一的全局 ID。

在这里插入图片描述

图 2. CUDA 内核被细分为多个块。

一组线程称为一个 CUDA 块。CUDA 块被分组到一个网格中。内核作为线程块网格执行࿰
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值