CNN在应用中,为什么GPU可以有加速效果
2017-08-09 11:08
627 查看
CNN在应用中,一般采用GPU加速,请解释为什么GPU可以有加速效果,主要加速算法的哪一个部分?
这里默认gpu加速是指NVIDIA的cuda加速。CPU是中央处理单元,gpu是图形处理单元,gpu由上千个流处理器(core)作为运算器。执行采用单指令多线程(SIMT)模式。相比于单核CPU(向量机)流水线式的串行操作,虽然gpu单个core计算能力很弱,但是通过大量线程进行同时计算,在数据量很大是会活动较为可观的加速效果。
具体到cnn,利用gpu加速主要是在conv(卷积)过程上。conv过程同理可以像以上的向量加法一样通过cuda实现并行化。具体的方法很多,不过最好的还是利用fft(快速傅里叶变换)进行快速卷积。NVIDIA提供了cufft库实现fft,复数乘法则可以使用cublas库里的对应的level3的cublasCgemm函数。
GPU加速的基本准则就是“人多力量大”。CNN说到底主要问题就是计算量大,但是却可以比较有效的拆分成并行问题。随便拿一个层的filter来举例子,假设某一层有n个filter,每一个需要对上一层输入过来的map进行卷积操作。那么,这个卷积操作并不需要按照线性的流程去做,每个滤波器互相之间并不影响,可以大家同时做,然后大家生成了n张新的谱之后再继续接下来的操作。既然可以并行,那么同一时间处理单元越多,理论上速度优势就会越大。所以,处理问题就变得很简单粗暴,就像NV那样,暴力增加显卡单元数(当然,显卡的架构、内部数据的传输速率、算法的优化等等也都很重要)。
GPU主要是针对图形显示及渲染等技术的出众,而其中的根本是因为处理矩阵算法能力的强大,刚好CNN中涉及大量的卷积,也就是矩阵乘法等,所以在这方面具有优势。
机器学习的算法一定得经过gpu加速吗?
不一定。只有需要大量浮点数计算,例如矩阵乘法,才需要GPU加速。
用CNN对图像进行分类就是一个需要大量浮点数计算的典型案例,通常需要GPU加速
这里默认gpu加速是指NVIDIA的cuda加速。CPU是中央处理单元,gpu是图形处理单元,gpu由上千个流处理器(core)作为运算器。执行采用单指令多线程(SIMT)模式。相比于单核CPU(向量机)流水线式的串行操作,虽然gpu单个core计算能力很弱,但是通过大量线程进行同时计算,在数据量很大是会活动较为可观的加速效果。
具体到cnn,利用gpu加速主要是在conv(卷积)过程上。conv过程同理可以像以上的向量加法一样通过cuda实现并行化。具体的方法很多,不过最好的还是利用fft(快速傅里叶变换)进行快速卷积。NVIDIA提供了cufft库实现fft,复数乘法则可以使用cublas库里的对应的level3的cublasCgemm函数。
GPU加速的基本准则就是“人多力量大”。CNN说到底主要问题就是计算量大,但是却可以比较有效的拆分成并行问题。随便拿一个层的filter来举例子,假设某一层有n个filter,每一个需要对上一层输入过来的map进行卷积操作。那么,这个卷积操作并不需要按照线性的流程去做,每个滤波器互相之间并不影响,可以大家同时做,然后大家生成了n张新的谱之后再继续接下来的操作。既然可以并行,那么同一时间处理单元越多,理论上速度优势就会越大。所以,处理问题就变得很简单粗暴,就像NV那样,暴力增加显卡单元数(当然,显卡的架构、内部数据的传输速率、算法的优化等等也都很重要)。
GPU主要是针对图形显示及渲染等技术的出众,而其中的根本是因为处理矩阵算法能力的强大,刚好CNN中涉及大量的卷积,也就是矩阵乘法等,所以在这方面具有优势。
机器学习的算法一定得经过gpu加速吗?
不一定。只有需要大量浮点数计算,例如矩阵乘法,才需要GPU加速。
用CNN对图像进行分类就是一个需要大量浮点数计算的典型案例,通常需要GPU加速
相关文章推荐
- 在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)
- 右侧可以展开的在线客服效果----应用在都联网
- GPU对CNN计算的加速原理到底是怎样的?
- 为什么没有一个我满意的便利贴,顺便推荐一个还可以应用
- 为什么CDN对移动客户端加速“没有”效果
- 为什么CDN对移动客户端加速“没有”效果
- faster rcnn在ubuntu环境下使用GPU模式并用cuDNN v5加速
- CNNdroid:在Android上利用GPU加速执行CNN(卷积神经网络)
- NorthWind数据库中笛卡儿积的一个应用效果[可以作年度统计用]
- 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速
- GPU/APU加速库、算法及应用
- css3 动画应用 animations 和transtions transform在加上JavaScript 可以实现硬件加速动画。
- 成佩涛—为什么CDN对移动客户端加速“没有”效果
- 为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
- 在GPU核函数中,为什么数值型变量可以和数组型变量相互赋值, CPU中不可以
- CUDA应用:GPU加速的离线渲染技术
- 几个可以用来实现热门APP应用PATH中menu效果的几个方法
- iOS开发之上传应用至APP store - 加急审核, 本人亲测苹果加速审核一年不止两次,只要理由充分,是可以多次的 。不过尽量避免
- 为什么可以这么快! awk 与python的应用