设为首页
收藏本站
开启辅助访问
切换到宽版
充值积分
登录
立即注册
论坛
BBS
工程师导航
电子学堂
服务器下载
视频教程汇总
软件汇总
老吴B站
封装搜索
论坛小店
任务升级
在线电子书
搜索
搜索
每日签到
视频汇总
PCB展
原理图
PCB培训
安装包
维修图纸
个人中心
科技新闻
新手上路
每日签到
PCB论坛
单片机
充值升级
积分转换
论坛小店
FPGA论坛
封装汇总
链接6
封装搜索
链接2
链接3
链接4
链接5
链接6
本版
用户
0.13um CMOS逻辑工艺流程
OFC2025 | 台积电的低损耗高均匀性氮化硅光
TSMC | 互补场效应晶体管(CFET)在推进逻
ROM与RAM的异同.。。。。。。
ChatGPT发展历程、原理、技术架构详解和产
24小时热门
(抢先版)Cadence Allegro17.4羊皮卷
PCB线路板手工焊接步骤及技术要领
PCB线路板表面贴装焊接的不良原因及防止对
PCB线路板表面贴装焊接的不良原因及防止对
时域网络分析仪如何检测电缆故障?
1路触摸检测芯片VK36W1D SOT23-6-1对1直接
WIN11 卸载新版记事本恢复到经典记事本的工
一文看懂芯片的封装工艺(传统封装篇)
22nm 后栅FinFET工艺流程(1)
7天热门
Allegro超强最全模仿PADS快捷键实现Z切换层
2025劳动节快速入门特训班开始报名了。
PADS和ALLEGRO 零基础-6层板课堂录像申请免费学
国产化医疗级心电ECG采集处理模块
出资料还是ODB++好用,最好用的版本,不允许错过
MM转换Mils会出现什么问题?
Altium Designer19 pcb几个问题
充电板PCB原理图+USBLC6-2SC6+STM32F103ZET6
800W逆变-EM78156原理图PCB共享
逆天PCB论坛
»
论坛
›
综合论坛
›
逆天资讯
›
深度学习卷积在GPU上如何优化?
返回列表
发新帖
[海外情报]
深度学习卷积在GPU上如何优化?
[复制链接]
788
|
0
|
2016-8-20 13:47:33
|
显示全部楼层
|
阅读模式
通知:本站禁止用系统自带的Edge浏览器下载资料。否则下载失败浪费积分。
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
[table=100%,#AB9364][/table]
提到人工智能领域,现在最热的词之一就是深度学习DeepLearning(下文简称DL)。近年来,深度学习成为了学术界乃至整个工业领域视觉计算方面的绝对主流。除了传统的计算机几何处理、专业渲染、医疗、生命科学、能源、金融服务、汽车、制造业以及娱乐业纷纷着力深度学习应用和技术优化,避免在企业竞争中失利。在群雄逐鹿的技术比拼中,GPU扮演着至关重要的角色,与其相关的技术优化也是研发人员关注的焦点之一。[blockquote]
“深度学习技术已经可以用于解决实际的问题,而不是停留在Demo演示阶段”
[/blockquote]如微软的语音翻译、Google的猫识别,再到最近很火的人脸识别,还有自动驾驶等等,这些都是深度学习的典型应用。Alibaba、Baidu、Facebook、Google、IBM等大公司都在DL方面有很大的投入。这里必须强调一句,目前很多主流的DL框架和算法基本上都是华人主导开发的,DL的复兴,离不开华人研究者。[blockquote]
“在进行深度学习训练之前,你需要考虑的两件事”
[/blockquote]
一个是软件框架
。例如Caffe,Tensorflow,Mxnet等等。
另一个就是硬件。
硬件方面,目前有多种异构形式,cpu,fpga,dsp等等,但是最主流的还是GPU,真正能在DL当中快速形成战斗力的也是CUDA硬件(NVIDIA GPU)+CUDA的DL学习软件(cuDNN),这也是NVIDIA多年研发与培育的结果。[blockquote]
工欲善其事,必先利其器
[/blockquote]现在主流的DL开发训练平台一般都用NVIDIA的显卡,比如NVIDIATITAN系列就是非常好的工具。为了加快训练速度,一般选择在配备多个GPU的高性能计算机或集群上面进行训练,训练好的网络也很容易移植到采用NVIDIA Tegra处理器的嵌入式平台上面,如NVIDIA Jetson TX1,它们拥有相同的架构,所以移植起来会非常方便。 Jetson TX1基于NVIDIA TegraX1处理器打造,它采用和超级计算机完全相同的Maxwell架构256核心GPU,可提供高达1T-Flops的计算性能并完整支持CUDA(Compute Unified DeviceArchitecture)技术,配合预装的开发工具,非常适合基于深度学习的智慧型嵌入式设备的打造。前不久就有用户通过配备Tegra处理器的Jetson平台,检测自家花园是否有小猫闯入。[blockquote]
重头戏:卷积神经网络CNN算法优化
[/blockquote]检测小猫闯入花园的视频红遍网络,这一应用就用到了卷积神经网络(Convolutional NeuralNetwork,简称CNN)的分类,在台式机或者集群上学习,然后porting(移植)到Tegra上,CNN算法起了关键作用。而CNN最关键的部分就是卷积层。在图像识别,图像分类领域来讲大多数问题之所以CNN能起作用,关键就是卷积。它从两个方面演变而来,一个是声音处理的延时网络,一个是图像处理的特征点提取算法。对后者而言,卷积就是对图像做滤波,简单说,就是做一些特征值提取。常见的有sobel做边缘提取,还有hog,高斯滤波等等,这些都是二维卷积。[blockquote]
卷积形状优化
[/blockquote]虽然现在大家做卷积都是方块的,但其实这只是定义,你完全可以不遵循这个标准,可以用其他的形状来代替卷积,去更好的适应你的运算方式,尤其是卷积核心比较大的时候,这也是对卷积做出优化的一种方式。一般来说,目前比较流行的CNN网络,卷积部分会占用70%以上的计算时间,优化卷积部分就是很有必要的。你需要从算法角度、并行化角度,以及GPU硬件特性等诸多方面做出考量。 GPU本身是一种可编程的并行计算架构,它有很多很好的算法,同时NVIDIA也提供了相应的工具,帮你去进行优化。[blockquote]
卷积优化的基本思路
[/blockquote]
1. 计算并行
2. 数据并行
3. 并行的粒度
4. 空间换时间
5. IO和计算叠加
6. 更多的利用高效的缓存空间
7. 针对硬件的并行特性,更高效率的利用网络并发型
[blockquote]
用内存来换时间
[/blockquote]如果深度学习DL中每一层的卷积都是针对同一张图片,那么所有的卷积核可以一起对这张图片进行卷积运算,然后再分别存储到不同的位置,这就可以增加内存的使用率,一次加载图片,产生多次的数据,而不需要多次访问图片,这就是用内存来换时间。[blockquote]
乘法优化
[/blockquote]卷积是对一个小区域做的乘法,然后再做加法,这在并行计算领域是非常成熟的。
登录/注册后可看大图
9.jpg640x853 40.9 KB以上图为例,左边是一张图片,右边是卷积核。我们可以把卷积核心展开成一条行,然后多个卷积核就可以排列成多行,再把图像也用类似的方法展开,就可以把一个卷积问题转换成乘法问题。这样就是一行乘以一列,就是一个结果了。这样虽然多做了一些展开的操作,但是对于计算来讲,速度会提升很多。[blockquote]
GPU优化的几个思路
[/blockquote]
1. 了解IO访问的情况以及IO的性能;
2. 多线程的并行计算特性;
3.IO和并行计算间的计算时间重叠。
对于NVIDIA的GPU来讲,内存访问是有一些特性的,连续合并访问可以很好地利用硬件的带宽。你可以看到,NVIDIA最新架构的GPU,其核心数目可能并没有明显增加,架构似乎也没有太大变化,但在几个计算流处理器中间增加缓存,就提高了很大的性能,为IO访问这块儿带来了很大优化。
登录/注册后可看大图
上面是一张比较经典的内存和线程模型,shared memory和registers是访问速度最快的内存,内存的访问跟计算比起来,太慢了,所以尽量把多的数据都放到高速的缓存里面。[blockquote]
矩阵优化的几个思路
[/blockquote]
1. 从计算角度出发
2. 从结果出发
登录/注册后可看大图
11.jpg640x853 40.6 KB以上面这张图为例,当我们从C矩阵的结果出发,每一个C需要A的一行和B的一列来进行计算,利用GPU的特性,我们可以把零时的结果存储在registers面,那我们就可以划分64x2个线程,来作为计算线程。
登录/注册后可看大图
在C的影印部分,可以有64×2这么多个线程在一次访问,就可以存储64×2个数据。你可以让64×2个线程每一个线程都存储16个或者32个数据,那么,我们就可以用64×2个线程存储64×2×16(32)个数据。这么多个数据都可以一次存储在最快的内存里面,多次读写的时候,速度就可以很快。同时,我们在考虑对A和B矩阵的访问,可以把B矩阵的相应的数据,大量的放到shared memory里面,这样就提高了sharedmemory的公用性。这样,整个A×B再根据这些线程可以在读取globalmemory(A矩阵)的时候,可以合并访问,可以按照每一排32、32的读取,可以加快合并访问=C。这样就把整个矩阵优化的思路整理出来了。以上就是针对深度学习卷积在GPU、乃至Jetson TX1平台上的一些优化思路。
本文转载自英伟达NVIDIA企业解决方案公众号。
赵开勇,香港浸会大学计算机系异构计算实验室PhDCandidate,长期从事高性能计算领域研究,在CPU、GPU异构计算方面有多年的研究经验。赵开勇先生组织参与多个科研单位和高性能用户的高性能项目研发,曾担任浪潮GPU高性能计算顾问,曾多次担任NVidia中国CUDA比赛评委。他还曾经组织出版《GPU高性能运算之CUDA》,翻译《大规模并行处理器编程实战》第二版。国内最早推广GPU高性能计算的研究者之一。
《《《 点击这里展开全文 》》》
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
终身成就奖
谢谢您为社区发展做出的不可磨灭的贡献!!
zhangren_ham
222
主题
34
回帖
359
积分
二级逆天
二级逆天, 积分 359, 距离下一级还需 9641 积分
二级逆天, 积分 359, 距离下一级还需 9641 积分
积分
359
加好友
发消息
回复楼主
返回列表
逆天资讯
51单片机 | STM32 | AVR
FPGA | CPLD | DSP
ARM论坛
数 | 模电子
拆机 | DIY | 维修
程序开发
手机平板论坛
Layoutguide指南 | Checklist
维修图纸固件程序
DataSheet | 规格书 | 数据手册
综合论坛
图文推荐
2025劳动节快速入门特训班开始报名了。
前天 16:03
DeepSeek-R1各版本模型推理显存需求测算
前天 01:43
50RMB求H610主板的PCB资料,AD或99格式的
前天 03:11
充电板PCB原理图+USBLC6-2SC6+STM32F103ZET6
前天 15:17
800W逆变-EM78156原理图PCB共享
前天 14:22
热门排行
1
PADS9.5完整版+破解文件+安装教程 免费下载(2021年更新)
2
PADS 9.5 破解版 破解文件下载,注册文件下载,和谐
3
逆天PCB论坛-服务器大量共享资料
4
PADS 9.5 全中文版本出来了,PADS9.5 完整版免费下载
5
新手必学的原理图
6
pads9.5实战攻略与高速pcb设计.pdf 高清扫描版[完整
7
论坛会员人数20万,发一波福利,500个名额,每人80金币
8
史上最强精品PADS视屏,电子,PDF各种格式教程大全
9
回帖奖励-每人100金币-先到先得-200个名额
10
PADS9.5 视频教程百度网盘高速下载,在线看[精讲]-重新补充