首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
【目的】TensorFlow是人工智能领域最具代表性的深度学习框架。国产加速设备需要一个支持OpenCL的TensorFlow才能发挥其加速性能,为此需要将TensorFlow框架下的CUDA代码向OpenCL转换。如何验证OpenCL核函数的正确性,是研发任务面对的重要问题。【方法】基于TensorFlow动态链接库自定义算子和raw_ops测试接口,本文提出了一套OpenCL核函数的测试解决方案,包括自定义算子的源码设计规范、测试代码规范、代码审核方法和测试流程。【结果】本文实现了对135个OpenCL核函数代码的审核与测试,在各种数据类型及多种数据规模下进行了测试对比,完成了OpenCL核函数正确性的验证,及其与CUDA核函数的性能比较。【结论】本文为TensorFlow下OpenCL核函数的测试提供了可靠而有效的解决方案。  相似文献   

2.
【目的】目前,TensorFlow 这一主流机器学习框架与CUDA异构编程环境的组合在学术界与工业界得到大量使用,使用CUDA实现的TensorFlow算子是加速计算的关键。然而,TensorFlow对于OpenCL 这一开放通用的异构编程标准的不支持严重限制了TensorFlow的通用性,并导致OpenCL硬件设备的算力无法充分发挥。【方法】针对此问题,本文深入探索TensorFlow的底层实现,在对TensorFlow代码结构深入分析的基础上实现了OpenCL算子,并且在2.2.0版本的TensorFlow框架实现了OpenCL算子的集成。【结果】基于上述实现,TensorFlow能够借助OpenCL算子在支持OpenCL 1.2的硬件设备上运行。同时,本文提出的优化方法也大幅提升了OpenCL算子的计算效率。【结论】通过实验表明,本文提出的方法能够有效地解决TensorFlow无法应用在OpenCL硬件设备上的问题。  相似文献   

3.
【目的】深度学习模型以较强的建模性能和优秀的多场景适应能力被广泛应用于各类典型人工智能领域。目前通常采用异构并行计算技术满足深度学习模型的算力需求,然而目前深度学习框架普遍使用CUDA或ROCm等编程模型,仅能支持特定厂商设备;对于通用异构计算设备,需要通过OpenCL编程标准实现支持,因此我们着力于实现TensorFlow框架的OpenCL版本。【方法】本文对TensorFlow框架中主要基于Eigen库提供的接口实现的Element-Wise算子进行代码分析,拆解对应结构体和类的封装方式,并基于OpenCL的编程标准对Element-Wise算子进行实现和封装,确保了代码的规范性和可扩展性。【结果】本文以CUDA算子为基准,对OpenCL的Element-Wise算子进行测试和对比,实验结果分别从正确性和计算效率两方面验证了本文OpenCL版本算子实现的可行性。【结论】作为实现OpenCL版本的TensorFlow框架这一工作的重要组成部分,本文成功实现了TensorFlow框架中Element-Wise算子的OpenCL版本,并经过实验验证了本文实现的算子的计算准确性和计算效率。  相似文献   

4.
深度学习模型的构建、训练以及推理离不开TensorFlow等机器学习框架中深度学习算子的支撑,对于卷积、池化等深度学习中被高频调用或计算量较大的算子,机器学习框架一般通过调用深度神经网络(DNN)库来提升计算效能。现有DNN库主要由英伟达、AMD等少数国外厂商开发并根据自有硬件设备特点进行优化,但其封闭性导致其他厂商生产的通用加速器难以在深度学习领域发挥作用。为解决现有DNN库无法支持国产加速器的问题,使得深度学习模型能够调用国产加速器进行运算,研究跨平台的通用DNN库,通过对开源MIOpen的结构特点和调用方式进行分析,提出修改和重构该库的方法,并实现一种基于OpenCL的DNN(OclDNN)库。考虑到TensorFlow较高的流行度及其对DNN库调用的特殊性与复杂性,研究通用DNN库在TensorFlow中的集成方法,通过StreamExecutor中的OpenCL平台实现对OclDNN的调用。实验结果表明,OclDNN在英伟达、华为等不同厂商的计算设备上运算结果正确可靠,在相同实验环境下,深度学习算子使用OclDNN时的加速性能比传统CPU并行算法提升了5~60倍。  相似文献   

5.
【目的】在深度学习框架中,为了实现大规模深度学习计算,异构的OpenCL计算模型通过充分利用不同厂商生产的不同类型硬件设备和计算资源成为提升学习效率的重要途径。因此将深度学习框架例如MXNet等迁移至OpenCL计算模型上以提高其对大规模深度学习的适配性。在对MXNet深度学习框架的迁移过程中,深度学习计算中较为普遍的多维线性数据处理相关操作的迁移则是本文需要讨论的主要问题。【方法】通过系统地比较CUDA计算模型和OpenCL计算模型的运行机制,将已兼容CUDA计算模型的MXNet深度学习框架中对多维线性数据处理的逻辑基于OpenCL计算模型进行适配性重构。【结果】通过基于OpenCL计算模型进行适配性重构的MXNet深度学习计算框架中的有关多维线性数据处理的计算操作能够通过已有的框架测试。【结论】基于OpenCL计算模型进行适配性重构方案能够很好地解决MXNet深度学习框架迁移至OpenCL计算模型时较为普遍的多维线性数据处理相关操作的迁移问题。  相似文献   

6.
詹云  赵新灿  谭同德 《计算机工程与设计》2012,33(11):4191-4195,4293
针对异构处理器在传统通用计算中利用率低的问题,提出基于开放计算语言OpenCL(open computing language)的新的通用计算技术,它提供了统一的编程模型。介绍了OpenCL的特点、架构及实现原理等,并提出OpenCL性能优化策略。将OpenCL与计算统一设备架构CUDA(compute unified device architecture)及其它通用计算技术进行对比。对比结果表明,OpenCL能够充分发挥异构处理平台上各种处理器的性能潜力,充分合理地分配任务,为进行大规模并行计算提供了新的强有力的工具。  相似文献   

7.
互联网和物联网技术的飞速发展开启了“大数据”时代。目前,硬件的高速发展催生了许多异构芯片,它们越来越多地出现在大规模数据中心里,支持不同的应用程序,在提升性能的同时降低整体功耗。文章重点介绍了基于 MapReduce编程模型的 Hadoop+框架的设计与实现,它允许用户在单个任务中调用 CUDA/OpenCL的并行实现,并能通过异构任务模型帮助用户。在我们的实验平台上,五种常见机器学习算法使用 Hadoop+框架相对于 Hadoop能达到1.4×~16.1×的加速比,在 Hadoop+框架中使用异构任务模型指导其资源分配策略,对单个应用负载上最高达到36.0%的性能提升;对多应用的混合负载,最多能减少36.9%,平均17.6%的应用执行时间。  相似文献   

8.
物联网与移动互联网的快速发展对高性能计算的需求愈发强烈,异构芯片往往比通用处理器有更好的计算能力,面对不同厂商的各种异构加速器,OpenCL作为业界标准统一了各种异构芯片的开发方式.FPGA在很多领域因其高性能、低功耗的特点成为异构芯片的佼佼者,但是目前对基于Xilinx FPGA的SoC尚无OpenCL的支持.本文以OpenCL规范为基础,为Xilinx Zynq SoC提供了OpenCL编程所需的依赖环境,实验结果表明,该环境为此类SoC开发省去了至少7个与硬件相关的开发步骤,使其易用性与开发效率有很大改善.  相似文献   

9.
Lammps是用于分子动力学模拟及其相关问题的一款开源软件,可利用其了解固体、液体性质,应用广泛。支持使用CUDA及OpenCL进行GPU加速。因OpenCL具有跨平台特性,将其作为研究重点。总结了OpenCL内核编程中需要注意的设计原则并阐述了一种改进的阿姆达尔定律用于衡量异构平台理论加速性能。测试了Lammps短程力计算在Y485P平台下的性能参数。通过对短程力计算中的关键部分如邻接表的建立及短程力计算部分的内核代码进行优化,使其取得了更好的加速效果。  相似文献   

10.
《微电脑世界》2012,(12):18
2012年11月意法半导体全资子公司、全球领先的高性能计算(HPC)编译器供应商Portland Group宣布,定于12月初发布的PGI 2013版PGI Accelerator编译器支持英伟达NVIDIA Tesla K20系列GPU加速器以及CUDA5并行计算平台及编程模型。科学家和工程师采用PGI编译器及编程工具开发和运行高性能计算应用软件,在天气预报、地理信息处理、空气动力学仿真、结  相似文献   

11.
基于异构GPU集群的主流编程方法是MPI与CUDA的混合编程或者其简单变形。因为对底层的集群架构不透明,程序员对GPU集群采用MPI与CUDA编写应用程序时需要人为考虑硬件计算资源,复杂度高、可移植性差。为此,基于数据流模型设计和实现面向节点异构GPU集群体系结构的新型编程框架分布式并行编程框架(DISPAR)。 DISPAR框架包含2个子系统:(1)代码转换系统StreamCC,是DISPAR源代码到MPI+CUDA代码的自动转换器。(2)任务分配系统StreamMAP,具有自动发现异构计算资源和任务自动映射功能的运行时系统。实验结果表明,该框架有效简化了GPU集群应用程序的编写,可高效地利用异构GPU集群的计算资源,且程序不依赖于硬件平台,可移植性较好。  相似文献   

12.
物联网的发展与普及促使计算机异构架构迅速发展,开放运算语言(open computing language,OpenCL)作为首个跨平台异构并行计算框架,具有标准化、可移植性等优点,但因不同平台下软硬件的复杂性和多样性,使OpenCL在性能上的移植性存在一定的缺陷.现有的方法通过深度学习构建优化模型来提高程序运行效率,但所构建的预测模型仅考虑代码的顺序依赖关系,忽略了语法语义信息,导致代码优化效果不明显.为解决上述问题,提出了一种基于多关系图神经网络的OpenCL程序自动优化启发式方法.该方法首先把OpenCL代码转换成多关系代码图,能够提取代码的深度结构与语法语义特征;然后利用改进后的图神经网络模型,将构建的代码图编码为高维的特征向量;最后使用决策网络完成任务预测.为验证方法的有效性,分别在异构设备映射和线程粗化因子预测2个任务上进行实验评估.结果表明,在异构设备映射任务中,最优设备预测准确率能够达到88.7%,相较于现有最先进的方法,加速比可提高7.6%;在线程粗化任务中,加速比相较于现有最优的方法可提高5.2%.  相似文献   

13.
一种面向异构众核处理器的并行编译框架   总被引:1,自引:0,他引:1  
异构众核处理器是面向高性能计算领域处理器发展的重要趋势,但其更为复杂的体系结构使得编程难的问题更加突出.针对这一问题,基于开源编译器Open64,提出了一种面向异构众核处理器的并行编译框架,将程序自动转换为异构并行程序.该框架主要包括4个模块:任务划分模块用来识别适合进行加速计算的程序段,实现了嵌套循环的多维并行识别方法;数据布局模块完成数据在主存和SPM之间的布局,实现了数组边界分析和指针范围分析;传输优化模块实现了数据传输合并、传输外提、打包传输、数组转置等多种数据传输优化方法;收益评估模块在构建代价模型的基础上实现了一种动静结合的收益评估方法.并且,基于SW26010处理器,对该编译框架进行了实现,测试结果表明,该编译框架能够实现一些程序以面向异构众核结构的并行变换,且获得较好的加速效果.  相似文献   

14.
GPGPU加速器是当前提高图像处理算法性能的主流加速平台,但是,在GPGPU平台上,同一个程序充分利用硬件体系结构特征和软件特征的优化版本与简单实现版本在性能上会有数量级的差异。GPGPU加速器具有多维多层的大量执行线程和层次化存储体系结构,后者的不同层次具有不同的容量、带宽、延迟和访问权限。同时,图像处理应用程序具有复杂的计算操作、边界处理规则和数据访问特性。因此,任务的并发执行模式、线程的组织方式和并发任务到设备的映射不仅影响到程序的并发度、调度、通信和同步等特性,而且也会影响到访存的带宽、延迟等。因此,GPGPU平台上的程序优化是一个困难、复杂且效率较低的过程。本文提出基于语言扩展的领域编程模型:ParaC。ParaC编程环境利用高层语言扩展描述的程序语义信息,自动分析获取应用程序的操作信息、并发任务间的数据重用信息和访存信息等程序特征,同时结合硬件平台特征,利用基于领域先验知识驱动的编译优化模型自动生成GPGPU平台上的优化代码,最后,利用源源变换编译器生成标准OpenCL程序。本文在测试用例上的实验结果表明,ParaC在GPGPU平台上自动生成的优化版本相对于手工优化版本的加速比最高达到3.22倍,但代码行数只是后者的1.2%到39.68%。  相似文献   

15.
韦博文  李涛  李广宇  汪致恒  何沐  师悦龄  刘路遥  张瑞 《计算机科学》2016,43(Z11):167-169, 196
针对海量遥感数据应用中日益显著的处理效率低下和计算瓶颈问题,基于通用计算机图形处理单元的编程开发使用OpenCL并行处理技术对遥感数据处理及其过程进行加速,旨在为遥感影像大数据处理提供一条更为高效的途径。在不同显卡平台上对影像畸变纠正实施并行处理,结果表明,OpenCL技术在提高影像畸变纠正的速度方面作用显著,可取得29.1倍的最高加速效果;与CUDA并行处理技术的交叉验证进一步凸显了OpenCL技术在异构平台上实施并行处理时所具有的通用性的优势。  相似文献   

16.
一种面向异构计算的结构化并行编程框架   总被引:1,自引:0,他引:1  
随着人工智能时代的到来,异构计算在深度学习、科学计算等领域发挥着越来越重要的作用。目前异构计算系统在应用上的瓶颈之一在于缺少高效的软件开发框架,已有的OpenCL、CUDA等支持GPU、DSP及FPGA的编程框架基于C/C++语言和传统的并行编程方法,导致软件开发效率较低,软件推理和调试困难,难以灵活处理计算设备之间的协作和调度。提出一种面向异构计算平台的基于脚本语言的结构化并行编程框架,提供结构化的并行编程接口,支持计算任务到异构计算设备的映射,便于并行程序的推理和验证。设计并实现了基于遗传算法的结构化调度算法,充分利用异构计算系统的计算能力,提高了异构计算系统的软件开发效率。实验结果表明,提出的编程框架在CPU+GPU平台上实现了相对于单处理器1.5到2.5倍的加速比。  相似文献   

17.
现代GPU一般都提供特定硬件(如纹理部件、光栅化部件及各种片上缓存)以加速二维图像的处理和显示过程,相应的编程模型(CUDA、OpenCL)都定义了特定程序设计接口(CUDA的纹理内存,OpenCL的图像对象)以便图像应用能利用相关硬件支持。以典型图像模糊化处理算法在AMD平台GPU的优化为例,探讨了OpenCL的图像对象在图像算法优化上的适用范围,尤其是分析了其相对于更通用的基于全局内存加片上局部存储进行性能优化的方法的优劣。实验结果表明,图像对象只有在图像为四通道且计算过程中需要缓存的数据量较小时才能带来较好的性能改善,其余情况采用全局内存加局部存储都能获得较好性能。优化后的算法性能相对于精心实现的CPU版加速比为200~1000;相对于NVIDIA NPP库相应函数的性能加速比为1.3~5。  相似文献   

18.
《微型机与应用》2017,(10):58-60
TensorFlow是谷歌的第二代开源的人工智能学习系统,是用来实现神经网络的内置框架学习软件库。目前,TensorFlow机器学习已经成为了一个研究热点。由基本的机器学习算法入手,简析机器学习算法与TensorFlow框架,并通过在Linux系统下搭建环境,仿真手写字符识别的TensorFlow模型,实现手写字符的识别,从而实现TensorFlow机器学习框架的学习与应用。  相似文献   

19.
《微型机与应用》2018,(4):74-78
TensorFlow是谷歌开源的机器学习及深度学习框架,具有高度的灵活性,可以运行在多种平台上,如CPU、GPU以及移动设备,支持当前流行的深度学习模型。卷积神经网络具有多个处理层,能对图像的特征进行逐层抽象,相比于传统的图像识别方法具有良好的效果,对输入图像的旋转、扭曲、变形具有良好的鲁棒性,并且不用对图像进行预处理,简化了图像识别的步骤。在TensorFlow平台上,搭建了一个卷积神经网络模型,利用MNIST数据集对模型进行训练及测试,最终测试能达到99%的识别率。  相似文献   

20.
吴伟  卿鹏  漆锋滨 《计算机科学》2012,39(3):124-127
CUDA是NVIDIA公司推出的GPU编程模型,它为高效利用GPU计算能力提供了强大的支持。但CUDA线程无法直接访问I/O设备、网卡等外围设备,在CUDA线程与外围设备的交互功能方面,目前CUDA的支持十分有限,仅支持非实时的屏幕打印(printf)。因此提出了一种交互型库函数框架FILiC,它通过设备和主机之间的巧妙交互,高效实现了CUDA线程实时的较完整I/O等函数;并且该框架具有很好的可扩展性,CUDA程序员或者编译器开发者可基于该框架按需求开发新的CUDA线程交互功能。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号