前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AMD MLP:基于OpenCL的深度学习工具

AMD MLP:基于OpenCL的深度学习工具

作者头像
GPUS Lady
发布2018-03-30 13:14:49
1.7K0
发布2018-03-30 13:14:49
举报
文章被收录于专栏:GPUS开发者

AMD-MLP 深度学习技术

AMD-MLP是AMD中国异构计算部门开发的私有软件,其开发人员都是GPU计算和应用方面的专家,在使用异构计算技术提高软件性能方面有丰富的理解和实现经验,他们本着简单、实效、方便用户、注重性能的产品实现原则,为AMD-MLP带来了如下特点:

1) 完全的C++实现

全部的代码用C++类进行组织。用C++类的公共接口作为API,开发者用户无论是利用AMD-MLP进行数据学习,建立数据分类器;还是使用已产生的数据分类器开发识别型应用,编程都非常简单。

2) 基于开放标准实现

AMD- MLP 用OpenCL作为使用GPU进行通用计算的编程工具,来实现深度学习过程中的重要计算操作。由于OpenCL是开放标准的异构编程工具,其被AMD、Intel及Nvidia等多个厂家所实现,因此AMD-MLP 能在不同厂家的设备上运行,软件的移植性很好。clBlas是基于OpenCL实现的矩阵运算操作库,AMD-MLP中执行矩阵运算的地方直接用clBlas的接口实现,简化了编程。由于clBlas是实现开放标准的开源软件,其同样保证了AMD-MLP的可移植性。

3) 模块化,易于扩展,用户只需要开发自己的数据接口C++类就可使用MLP学习自己的数据

用戶在用AMD-MLP开发自己的分类器、识别器或预测器时,通常都会有和自己的应用领域相关的数据,甚至是自己的企业特定的数据源,由于这些数据的文件格式不一样,AMD-MLP不可能为所有用户都开发好数据使用接口,但AMD-MLP采用了高度模块化的设计,AMD-MLP通过实现一个DNNDataProvider对象提供了一个相对统一的数据访问接口和数据在内存中的格式,基于这个统一的接口,用户只需要做少量的开发工作(开发一个DNNDataProvider派生类) 识别其数据在文件中的格式并将其加载到内存即可,用户不需要关心数据在学习过程中如何被组织,传输和使用。AMD-MLP已经为手写数字识别数据源MNIST实现了一个数据接口,可作为用户实现自己数据源接口的参考。AMD-MLP的模块性还表现在其用分开的类实现了深度学习过程参数的配置的、神经网落状态SnapShot的功能,理解和使用都非常方便。

4) 支持多种计算设备

大规模的深度网络学习过程通常需要功能强大的独立显卡设备,但小型的神经网络及小型数据集的学习完全可以在集成显卡或CPU设备上进行,如作者本人就经常在AMD的A10 APU上进行MNIST数据集的学习。另外,使用学习好的分类器或预测器进行数据分类或函数数值预测时如果其对单个请求返回结果的实时性要求不高,分类或预测的神经网络计算过程完全可以用集成GPU或CPU设备来计算。为了满足这多种情况的需要,AMD-MLP 支持dGPU、iGPU、CPU三种设备,用户在使用时可灵活根据需要进行选择。

5) 支持灵活的网络结构和学习参数配置

用户使用AMD-MLP 进行神经网络学习的配置过程非常简单,只需要将网络结构和学习过程的控制参数写在一个文本文件中,每次学习时按需要进行修改即可。

6) 算法的灵活度

AMD-MLP对神经网络算法的支持比较灵活,允许用户按自己的需要进行选择,如在神经网络隐含层的激活(Activation)函数上,AMD MLP目前已经支持ReLu、TanH、Sigmoid和Softsign四种,允许用户通过配置文件进行选择,以满足不同数据学习的需要。另外AMD-MLP也允许用户通过配置文件对学习率参数进行动调整,并控制学习率调整的时机和速度。

7) 通过Checkpointing 支持对大规模数据的不间断学习

大规模的数据集的学习通常需要花很长的时间(几天,几周甚至几月),在这个过程中,如果计算机系统发生任何意外,学习过程就会从头开始。AMD-MLP 实现了一个高效率的异步CheckPointing机制,来周期性(如每30分钟)地对学习的中间结果进行Snapshot,保证当学习过程因计算机系统的故障而中断时,系统恢复后学习过程能从最近的Snapshot状态继续进行避免了大量的时间浪费。

8) 用多GPU来提高对大规模数据的训练速度

神经网络结构和数据集的规模越大,解决的数据问题越复杂,所需的学习时间就越长。过长的学习时间周期,不仅影响创建一个分类或预测结果的时间,还不利于神经网络学习过程中经常需要的参数调优工作。因此几乎大多数高效的神经网络学习软件除充分利用业界最先进的GPU设备外,还采用了各种方法来加速神经网络的学习过程。AMD-MLP实现了用多个GPU通过数据划分进行并行深度神经网络学习的训练过程,极大提高了利用神经网络技术能进行学习的数据的类型和规模。AMD中国异构计算部将在另外一篇文章中专门介绍AMD-MLP多GPU学习的实现方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AMD-MLP 深度学习技术
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档