随想录(cuda编程)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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编程)相关推荐
- CUDA刷新器:CUDA编程模型
CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是 ...
- GPU — CUDA 编程模型
目录 文章目录 目录 GPGPU CUDA 编程模型 CUDA 的架构 CUDA 的工作原理 Grid.Block.Thread Warp GPGPU GPU 起初是用来处理图像的,但是后来人们发现其 ...
- 【CUDA编程】Warp Divergence分析
Warp CUDA编程中,warp是调度和运行的基本单元,目前,每个warp包含32个threads.软件逻辑上,程序员的所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的threa ...
- 深入浅出CUDA编程
标签: cuda编程threadfloatconflictexpress 2010-12-10 13:29 44960人阅读 评论(7) 收藏 举报 CUDA 是 NVIDIA 的 GPGPU 模型, ...
- CUDA编程指南阅读笔记
随着多核CPU和众核GPU的到来,并行编程已经得到了业界越来越多的重视,CPU-GPU异构程序能够极大提高现有计算机系统的运算性能,对于科学计算等运算密集型程序有着非常重要的意义.这一系列文章是根据& ...
- CUDA 编程上手指南:CUDA C 编程及 GPU 基本知识
作者丨科技猛兽 编辑丨极市平台 本文原创首发于极市平台,转载请获得授权并标明出处. 推荐大家关注极市平台公众号,每天都会更新最新的计算机视觉论文解读.综述盘点.调参攻略.面试经验等干货~ 目录 1 C ...
- CUDA 编程实例:计算点云法线
程序参考文章:http://blog.csdn.net/gamesdev/article/details/17535755 程序优化2 简介:CUDA ,MPI,Hadoop都是并行运算的工具.CU ...
- cuda编程_CUDA刷新器:CUDA编程模型
CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是 ...
- 【转载】cuda编程入门
目录 1.什么是CUDA 2.为什么要用到CUDA 3.CUDA环境搭建 4.第一个CUDA程序 5. CUDA编程 5.1. 基本概念 5.2. 线程层次结构 5.3. 存储器层次结构 5.4. 运 ...
- CUDA编程之快速入门-----GPU加速原理和编程实现
转载:https://www.cnblogs.com/skyfsm/p/9673960.html CUDA(Compute Unified Device Architecture)的中文全称为计算统一 ...
最新文章
- 10篇Nature专题报导人类微生物组计划2(iHMP)成果及展望
- 工作一周了,紧张 + 累
- Linux中vi编辑器的使用详解
- hdu3374最小表示法+KMP
- [react] 怎么使用Context开发组件?
- 《大话存储__网络存储系原理精解与最佳实践》电子书下载
- Django-用户认证组件
- 护理在计算机的应用研究,计算机虚拟和模拟技术在护理实践教学中应用的研究...
- Openwrt 软件安装源
- 回来了,回来了,感触很深!
- 一个开源vue网站博客,nuxt开源网站,前后端分离项目
- 干货分享好用的绘图工具
- Ubuntu20.04安装搜狗拼音
- Tensorflow - 训练中出现 Nan 值
- 安装Phoenix时,执行./splline.py报错File “./sqlline.py“, line 25, in <module> import phoenix_utils File
- eclipse报错:The project description file (.project) for ‘common‘ is missing.
- 网页搜索指定网站内容site
- 双色球的篮球购买保本的买法计算!
- iOS应用安全读书笔记之重要的属性文件
- uva10006 Carmichael Numbers(卡迈克尔数+素数打表)
热门文章
- CodeVs 1017 乘积最大(DP)
- PAC自动代理文件格式,教你如何写PAC文件
- 顶级域名和二级域名共享cookie及相互删除cookie
- 打开SharePoint 2013 web application显示iis 欢迎页面
- windows2003开机自动登陆桌面
- css - 给图片添加蒙版
- BigDecimal加减乘除
- 递归、os.walk、内置函数、lambda、hashlib模块、md5加密、python安装第三方模块、操作mysql数据库...
- oracle习题-emp表查询练习
- 64位双系统Ubuntu 14.04 LTS + Caffe + CUDA 7.5 + Opencv 3.0 安装配置实战