美文网首页
cuda编程背景

cuda编程背景

作者: Pitfalls | 来源:发表于2017-11-17 13:49 被阅读57次

CUDA是NVIDIA于2006年11月推出的,用于发挥NVIDIA GPU通用计算能力的编程环境,目前支持CUDA C和OpenCL(Open Computing Language)语言,计算效率高,常可加速十几倍到几十倍。相比OpenCL和Brook+,CUDAC更易于使用。另外NVIDIA对CUDA的大力支持是其他厂商所不能比拟的。

CUDA认为系统上可以用于计算的硬件包含两个部分:一个是CPU(称为主机),一个是GPU(称为设备),CPU控制/指挥GPU工作,GPU只是CPU的协处理器。目前CUDA只支持NVIDIA的GPU,而CPU由主机端编程环境负责。

CUDA是一种架构,也是一种语言。作为一种架构,它包括硬件的体系结构(G80、GT200、Fermi、Kepler)、硬件的CUDA计算能力及CUDA程序是如何映射到GPU上执行;作为一种语言,CUDA提供了能够利用GPU计算能力的方方面面的功能。CUDA的架构包括其编程模型、存储器模型和执行模型。CUDA C语言主要说明了如何定义计算内核(kernel)。CUDA架构在硬件结构、编程方式与CPU体系有极大不同,关于CUDA的具体细节读者可参考CUDA相关的书籍。

CUDA以C/C++语法为基础而设计,因此对熟悉C系列语言的程序员来说,CUDA的语法比较容易掌握。另外CUDA只对ANSI C进行了最小的扩展,以实现其关键特性:线程按照两个层次进行组织、共享存储器(shared memory)和栅栏(barrier)同步。

目前CUDA提供了两种API以满足不同人群的需要:运行时API和驱动API。运行时API基于驱动API构建,应用也可以使用驱动API。驱动API通过展示低层的概念提供了额外的控制。使用运行时API时,初始化、上下文和模块管理都是隐式的,因此代码更简明。一般一个应用只需要使用运行时API或者驱动API中的一种,但是可以同时混合使用这两种。笔者建议优先使用运行时API。

6.2.5 OpenCL

OpenCL(Open Computing Language,开放计算语言),先由Apple设计,后来交由Khronos Group维护,是异构平台并行编程的开放的标准,也是一个编程框架。Khronos Group是一个非盈利性技术组织,维护着多个开放的工业标准,并且得到了业界的广泛支持。OpenCL的设计借鉴了CUDA的成功经验,并尽可能地支持多核CPU、GPU或其他加速器。OpenCL不但支持数据并行,还支持任务并行。同时OpenCL内建了多GPU并行的支持。这使得O

相关文章

  • cuda编程背景

    CUDA是NVIDIA于2006年11月推出的,用于发挥NVIDIA GPU通用计算能力的编程环境,目前支持CUD...

  • 【CUDA】学习记录(2)-编程模型

    CUDA编程结构 CUDA显存管理 分配显存 传输数据 Example: 返回类型 CUDA内存模型 线程 核函数...

  • CUDA编程入门(一)

    1.认识CUDA编程 2006年,NVIDIA公司发布了CUDA(Compute Unified Device A...

  • cuda编程

    https://zhuanlan.zhihu.com/p/34587739 https://hellozhaozh...

  • 2019-03-07 CPU和GPU的CMakeLists的

    文件结构如下: 将cuda编程的文件和头文件都放在cuda文件夹中,使条目清晰一些。在cuda的CMakeList...

  • 2022-01-21 cuda+cudnn环境安装

    背景 使用paddle,需要使用CUDA环境,CUDA安装过后需要下载对应的cuDNN Windows 显卡驱动 ...

  • CUDA编程基础——并行矩阵乘法

    CUDA编程首先呢是分配thread以及block 然后是两个基本的函数://打印设备信息 //初始化cuda /...

  • Ubuntu16.04进入不了桌面

    有一种作死叫做智商不在线,还手贱 ——依米兒 最近在学习cuda编程,于是想给实验室台式机配置一个cuda编程环...

  • CUDA编程记录

    在VS中关闭红色波浪线方法如下:打开路径:TOOLS -> Options -> Text Editor -> C...

  • cuda矩阵编程

    一、定义矩阵结构体 二、矩阵赋值 三、Device上执行矩阵计算 四、申明变量分配空间,数据传输 五、主函数 总结...

网友评论

      本文标题:cuda编程背景

      本文链接:https://www.haomeiwen.com/subject/udhjvxtx.html