【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

很早就知道gpu可以被用来进行加速处理,但是不知道基本原理是什么。昨天看了一下别人的示范代码,突然之间明白了很多。为了防止自己忘记这些知识点,特地做如下纪录。

1、显卡编程

gpu主要是指显卡上的处理器部分。显卡和cpu之间主要通过pci或者pcie连接,所以必然要求生成的可执行文件一部分在host运行、一部分在gpu运行。

2、cuda文件格式

一般以cu作为后缀。

3、cuda的构成

cuda和基本的c语言文件没有差别,只是需要注意的是,那些标记为__global的函数才是真正在gpu上运行的代码。

4、cuda和mpi关系

mpi主要是intel利用cpu并发执行的lib,cuda则是利用gpu运行的库。

5、cuda怎么编译

建议用nvidia提供的nvcc进行编译。

6、asic、fpga、cpu、gpu加速

机器学习要求我们必须穷尽各种加速方法。asic侧重于controller加速、表现在编解码、加密方面。fpga可用于特定的算法处理,虽然效果最好,但是成本最高。cpu加速最简单,但是成本不好控制、编写有难度。gpu是次优于cpu的方法,它可以降低cpu的负担,又可以承担一定的计算任务。

7、cuda 与linux

随着tensorflow的流行,cuda也被用于深度学习。一般cuda和ubuntu配合比较多,建议大家多多学习。

8、示例代码,参考链接

https://blog.csdn.net/gamesdev/article/details/17232829

9、nvidia教程

https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html

基本代码形式如下所示,特别是这个__global__关键字非常重要,它代表是在GPU上面执行的代码

// Kernel definition
__global__ void VecAdd(float* A, float* B, float* C)
{int i = threadIdx.x;C[i] = A[i] + B[i];
}int main()
{...// Kernel invocation with N threadsVecAdd<<<1, N>>>(A, B, C);...
}

ps:

cuda主要用来进行算法加速优化使用,常用于图像,当然使用到矩阵、傅里叶变换的地方都可以使用,这是使用比较多的一个场景。

另外一个关于cuda的教程,可以参考这个https://www.cnblogs.com/1024incn/tag/CUDA/。

如果想知道cuda的历史和来龙去脉,那么这个链接不错,https://blog.csdn.net/fu6543210/article/details/90020330。

随想录(cuda编程)相关推荐

  1. CUDA刷新器:CUDA编程模型

    CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是 ...

  2. GPU — CUDA 编程模型

    目录 文章目录 目录 GPGPU CUDA 编程模型 CUDA 的架构 CUDA 的工作原理 Grid.Block.Thread Warp GPGPU GPU 起初是用来处理图像的,但是后来人们发现其 ...

  3. 【CUDA编程】Warp Divergence分析

    Warp CUDA编程中,warp是调度和运行的基本单元,目前,每个warp包含32个threads.软件逻辑上,程序员的所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的threa ...

  4. 深入浅出CUDA编程

    标签: cuda编程threadfloatconflictexpress 2010-12-10 13:29 44960人阅读 评论(7) 收藏 举报 CUDA 是 NVIDIA 的 GPGPU 模型, ...

  5. CUDA编程指南阅读笔记

    随着多核CPU和众核GPU的到来,并行编程已经得到了业界越来越多的重视,CPU-GPU异构程序能够极大提高现有计算机系统的运算性能,对于科学计算等运算密集型程序有着非常重要的意义.这一系列文章是根据& ...

  6. CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识

    作者丨科技猛兽 编辑丨极市平台 本文原创首发于极市平台,转载请获得授权并标明出处. 推荐大家关注极市平台公众号,每天都会更新最新的计算机视觉论文解读.综述盘点.调参攻略.面试经验等干货~ 目录 1 C ...

  7. CUDA 编程实例:计算点云法线

    程序参考文章:http://blog.csdn.net/gamesdev/article/details/17535755  程序优化2 简介:CUDA ,MPI,Hadoop都是并行运算的工具.CU ...

  8. cuda编程_CUDA刷新器:CUDA编程模型

    CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是 ...

  9. 【转载】cuda编程入门

    目录 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. 运 ...

  10. CUDA编程之快速入门-----GPU加速原理和编程实现

    转载:https://www.cnblogs.com/skyfsm/p/9673960.html CUDA(Compute Unified Device Architecture)的中文全称为计算统一 ...

最新文章

  1. 10篇Nature专题报导人类微生物组计划2(iHMP)成果及展望
  2. 工作一周了,紧张 + 累
  3. Linux中vi编辑器的使用详解
  4. hdu3374最小表示法+KMP
  5. [react] 怎么使用Context开发组件?
  6. 《大话存储__网络存储系原理精解与最佳实践》电子书下载
  7. Django-用户认证组件
  8. 护理在计算机的应用研究,计算机虚拟和模拟技术在护理实践教学中应用的研究...
  9. Openwrt 软件安装源
  10. 回来了,回来了,感触很深!
  11. 一个开源vue网站博客,nuxt开源网站,前后端分离项目
  12. 干货分享好用的绘图工具
  13. Ubuntu20.04安装搜狗拼音
  14. Tensorflow - 训练中出现 Nan 值
  15. 安装Phoenix时,执行./splline.py报错File “./sqlline.py“, line 25, in <module> import phoenix_utils File
  16. eclipse报错:The project description file (.project) for ‘common‘ is missing.
  17. 网页搜索指定网站内容site
  18. 双色球的篮球购买保本的买法计算!
  19. iOS应用安全读书笔记之重要的属性文件
  20. uva10006 Carmichael Numbers(卡迈克尔数+素数打表)

热门文章

  1. CodeVs 1017 乘积最大(DP)
  2. PAC自动代理文件格式,教你如何写PAC文件
  3. 顶级域名和二级域名共享cookie及相互删除cookie
  4. 打开SharePoint 2013 web application显示iis 欢迎页面
  5. windows2003开机自动登陆桌面
  6. css - 给图片添加蒙版
  7. BigDecimal加减乘除
  8. 递归、os.walk、内置函数、lambda、hashlib模块、md5加密、python安装第三方模块、操作mysql数据库...
  9. oracle习题-emp表查询练习
  10. 64位双系统Ubuntu 14.04 LTS + Caffe + CUDA 7.5 + Opencv 3.0 安装配置实战