CUDA编程(一):GPU计算与CUDA编程简介

这篇具有很好参考价值的文章主要介绍了CUDA编程(一):GPU计算与CUDA编程简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

GPU计算

NVIDIA公司发布的CUDA是建立在GPU上的一个通用并行计算平台和编程模型,CUDA编程可以利用GPU的并行计算引擎来更加高效地解决比较复杂的计算难题。GPU的并行计算最成功的一个应用就是深度学习领域。

GPU通常不作为一个独立运行的计算平台,而需要与CPU协同工作,它可以看成是CPU的协处理器,因此GPU的并行计算实际上是指基于CPU和GPU的异构计算架构,GPU和CPU之间通过PCIe总线连接在一起来协同工作。CPU的运算核心较少,但其可以实现复杂的逻辑运算,因此其适合控制密集型任务,而且CPU上的线程是重量级的。GPU的运算核心较多,其特别适合数据并行的计算密集型任务,其线程是轻量级的。基于CPU和GPU的异构计算平台可以优势互补,CPU负责处理逻辑复杂的串行计算程序,GPU主要处理数据密集型的并行计算程序,从而发挥最大的功效。

GPU硬件资源

在硬件上,GPU的资源包括SP和SM。

  • SP:最基本的处理单元,streaming processor,也称为CUDA core。具体的指令和任务都是在SP上处理的。GPU进行并行计算,也就是很多个SP同时进行运算。我们所说的几百核心的GPU值指的都是SP的数量;
  • SM:多个SP加上其他的一些资源组成一个streaming multiprocessor。也叫GPU大核,其他资源如:warp scheduler,register,shared memory等。SM可以看做GPU的心脏(对比CPU核心),register和shared memory是SM的稀缺资源。CUDA将这些资源分配给所有驻留在SM中的threads。因此,这些有限的资源就使每个SM中active warps有非常严格的限制,也就限制了并行能力。

每个SM包含的SP数量依据GPU架构而不同,Fermi架构GF100是32个,GF10X架构是48个,Kepler架构是192个,Maxwell架构是128个,Turing架构是64个。

GPU软件资源

从软件上看,即GPU的线程模型,可以分为Grid、Block、Thread和Warp。

  • Thread:一个CUDA的并行程序会被以许多个threads来执行。
  • Block:若干个threads组成一个block,同一个block中的threads可以同步,也可以通过shared memory通信。
  • Grid:若干个blocks可以组成Grid。
  • Warp:GPU执行程序时的调度单位,同一个warp里的线程执行相同的指令,即SIMT。
    cuda编程,CUDA,人工智能,CUDA,NVIDIA

GPU存储资源

每一个Thread都有自己的local memoryresigters,每一个Block有shared memory,这个Block中的所有Thread都可以访问,Grid之间会有Global memoryCache,所有的Grid都可以访问。

CUDA编程

CUDA提供了多种编程语言支持,如C/C++、Python、Fortran等。
CUDA编程工具:

  • 编译器:nvcc
  • 调试器:nvcc-gdb
  • 性能分析:nsight、nvprof。

CUDA编程模型是一个异构模型,它假设系统是由一个主机和一个设备组成的,而且各自拥有独立的内存,CPU所在位置称为主机端(host),而GPU所在位置称为设备端(device)。一个CUDA程序即包含host程序,也包含device程序,CUDA程序在运行时可以分配和释放设备上的内存,并且在主机内存和设备内存之间进行传输,在设备上运行核函数。

典型的CUDA编程包括以下五个流程:文章来源地址https://www.toymoban.com/news/detail-603098.html

  1. 分配GPU内存,并进行数据的初始化;
  2. 从CPU内存中拷贝数据到GPU内存中;
  3. 调用CUDA的核函数来完成指定的计算;
  4. 将数据从GPU内存中拷贝回CPU内存中;
  5. 释放GPU内存。

到了这里,关于CUDA编程(一):GPU计算与CUDA编程简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CUDA编程:矩阵乘运算从CPU到GPU

    本文内容涉及到CUDA矩阵1D运算、2D运算、共享内存、CUBLAS的使用。 文中的全部code: https://github.com/CalvinXKY/BasicCUDA/tree/master/matrix_multiply V100上的测试对比: 运行内容“./matMul wA=1024 hA=256 wB=128 hB=1024” 矩阵 C = A x B的数学运算,是线性代数里面最基本的内容, 计算的基本公式如下

    2024年04月08日
    浏览(55)
  • CUDA编程之GPU图像数据结构的设计

    参考OpenCV中Mat和GpuMat的设计,对当前Image类设计了GPU版本,即GPUImage。 设计图像头。 其中指针指向的是GPU上的地址。引用计数用来实现浅拷贝以及显存的自动释放管理。不像OpenCV和Nppi,分通道和深度的做法。GPUImage的nChannel可以理解为通道*深度。 GPUImage用来管理CudaMalloc申请的

    2024年02月11日
    浏览(37)
  • GPU编程 CUDA C++ 线性代数求解器 cuSolver库

    cuSolver库较cuBLAS库更为高级,其能处理矩阵求逆,矩阵对角化,矩阵分解,特征值计算等问题。cuSolver库的实现是基于cuBLAS库和cuSPARSE库这两个基本库。cuSolver库的功能类似于Fortran中的LAPACK库:是Linear Algebra PACKage的简称。 以下以一个厄米矩阵的本征值(特征值)问题,代码示

    2024年02月05日
    浏览(50)
  • Nvidia GPU 最新计算能力表(CUDA Compute Capability)

    对于深度学习,官方指出在GPU算力高于5.0时,可以用来跑神经网络 GPU Compute Capability Jetson AGX Xavier 7.2 Jetson Nano 5.3 Jetson TX2 6.2 Jetson TX1 5.3 Tegra X1 5.3 GPU Compute Capability GeForce RTX 3090 8.6 GeForce RTX 3080 8.6 GeForce RTX 3070 8.6 NVIDIA TITAN RTX 7.5 Geforce RTX 2080 Ti 7.5 Geforce RTX 2080 7.5 Geforce RTX 2070

    2024年02月05日
    浏览(39)
  • AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略

    AI之Tool:GitHub Copilot(一款人工智能编程小助手—猜你想写的代码)的简介、安装、使用方法之详细攻略 目录 Copilot人工智能工具的简介 1、GitHub Copilot的安全性和质量 Copilot人工智能工具的安装 Copilot人工智能工具的使用方法 1、在 Visual Studio 中开始使用 GitHub Copilot 第一步,要使

    2024年02月16日
    浏览(76)
  • VS CUDA OpenCV编程 遇到gpu端核函数 应输入表达式的报错解决办法

    最近在做开发时,用到了cuda和opencv结合的使用方法。其中,cuda能够提供的公式就那么多,所以打算自己写一个核函数来实现自己想要实现的算法。结果遇到了核函数调用的时候报错,提示应输入表达式。 经过在网上查找,大家的解决办法基本上都说在cu文件中出现没事,可

    2024年02月08日
    浏览(54)
  • AI:人工智能领域AI工具产品集合分门别类(文本类、图片类、编程类、办公类、视频类、音频类、多模态类)的简介、使用方法(持续更新)之详细攻略

    AI:大模型领域最新算法SOTA核心技术要点总结(一直持续更新)、大模型实战与理论经验总结(训练优化+代码实战+前沿技术探讨+最新案例应用)、带你精细解读多篇优秀的大模型论文、AI领域各种工具产品集合(文本/图片/编程/办公/视频/音频/多模态类)的简介之详细攻略 导读 :由

    2023年04月17日
    浏览(88)
  • 【人工智能概论】 使用kaggle提供的GPU训练神经网络

    注册账号的时候可能会遇到无法进行人际验证的问题,因此可能需要科学上网一下。具体步骤略。 kaggle的GPU资源需要绑定手机号才能使用 点击右上角的头像。 点击Account 找到手机验证界面Phone Verification,会看到下图,根据1处的提示知,这种情况下手机是收不到验证码的,因

    2024年02月04日
    浏览(54)
  • 人工智能简介

    人工智能简介 人工智能是新一轮科技革命和产业变革的重要驱动力量,其发挥作用的广度和深度堪比历次工业革命。蒸汽革命成就了英国,电气和信息化革命成就了美国。如今人工智能的历史机遇正在全面展开,也将成就新的引领者。 下图显示了一部典型iPhone手机上安装的

    2023年04月11日
    浏览(36)
  • AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能

    AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能系统 目录 人工智能竞赛【精选实战作品】之《基于计算机视觉、自

    2024年02月06日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包