【笔记】CUDA加速

概念

 

CUDA —— 由NVIDIA推出的通用并行计算架构  

           —— 该架构使GPU能够解决复杂的计算问题

           —— 包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎

           —— 开发人员现在可以使用C语言来为CUDA架构编写程序,将来还会支持其它语言,包括FORTRAN以及C++

           —— CUDA解码技术直接调用GPU中的流处理器进行解码运算,而之前一直是调用GPU中相应的专用视频解码模块

 

NVIDIA显卡驱动版本,CUDA版本,cudnn版本之间关系及如何选择

https://blog.csdn.net/iamqianrenzhan/article/details/89343601

 

为什么要用CUDA?


       在科学计算领域所要用到的计算往往不是我们熟知的普通矩阵,而是千维甚至万维的矩阵,而普通的CPU串行计算往往不能满足与科学计算所要求的性能。最好的例子就是深度学习,可以说深度学习起源于感知机但正真发展在于计算能力的提高,也就是显卡计算的兴起。深度学习的计算都是基于矩阵的计算,而普通一个识别手写数字的神经网络都有上千个隐含节点,故CUDA性能优化是一门重要的技术。

 

为什么显卡可以加速?


       首先,显卡可以加速最大的原因是其含有上千个CUDA核心,而CPU的核心往往都在各位数,这就决定了显卡可以高度并行的对一些高维度矩阵进行计算。CPU的I/O需要数百上千个周期,串行的计算大部分时间都消耗在I/O上,而显卡则不然,NVIDIA显卡的架构是类似于SIMD架构的SIMT架构,T指的是Threads,也就是单指令多线程架构,上一个线程在进行运算操作时下一个线程就开始I/O操作,类似于指令流水线的形式,当Threads数量足够多时,就可以屏蔽I/O所带来的大量开销,所以本身架构决定了CPU与显卡计算方式的区别。
       CPU就好比是一个身强体壮的大汉一下可以挑100公斤粮食,显卡好比是只能挑起10公斤粮食的小矮人,但有20个。现在有2000公斤粮食,I/O相当于需要1分钟时间把粮食装进桶才能挑走(每次只能一个人装桶),运算时间相当于挑一次到目的地需要20分钟。CPU每趟需要21分钟,共20趟,总共需要420分钟。显卡第一趟也需要21分钟,且只能挑10公斤粮食,但第一趟在刚装完桶时,第二个小人就开始装桶了,在第一个小人送完时最后一个小人也装完了桶,接着第一个小人又可以装桶了,所以从共需要2000/10=200个轮回,但每个轮回只需要1分钟,加上最后的小人需要20分钟送完,总计200×1+20=220分钟,比CPU快近一倍的时间。当运算需求越大时,GPU的优势越明显。

 

CUDA高性能并行计算入门:     https://blog.csdn.net/cyhbrilliant/article/details/79434090 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值