计算机科学››2019,第46卷››问题(2): 306-314.数字对象标识:10.11896/j.issn.1002-137X.2019.02.047

• 交叉与前沿 • 上一篇   下一篇

面向通用分组计算平台的归约算法的性能优化研究

张逸然1,陈龙2,安向哲2,颜深根  

  1. 北京信息科技大学 北京1000491
    中国石油集团东方地球物理勘探有限责任公司 河北 涿州0727512
    深圳市商汤科技有限公司 广东 深圳518000
  • 收稿日期:2018-09-12 出版日期:2019-02-25 发布日期:2019-02-25
  • 作者简介:张逸然(1999-),男,主要研究方向为高性能计算、众核编程与优化方法;陈 龙(1973-),男,硕士,主要研究方向为高性能计算、人工智能在勘探行业的应用;安向哲(1974-),硕士,主要研究方向为云计算;颜深根(1985-),男,博士,主要研究方向为通用分组编程与优化、自适应性能调优、大规模分布式深度学习等。

面向GPU计算平台的约简算法性能优化研究

张义然1,陈龙2、安祥哲2、阎申根  

  1. 北京信息科技大学,中国北京1000491
    BGP INC.,中国石油天然气集团公司,河北涿州0727512
    SenseTime,中国广东深圳518000
  • 收到:2018-09-12 在线:2019-02-25 出版:2019-02-25

摘要:归约算法在科学计算和图像处理等领域有着十分广泛的应用,是并行计算的基本算法之一,因此对归约算法进行加速具有重要意义。为了充分挖掘异构计算平台下通用分组的计算能力以对归约算法进行加速,文中提出基于线程内归约、工作组内容和工作组个层面的归约优化方法,并打破以往相关工作将优化重心集中在工作组内归约上的传统思维,通过论证指出线程内归约才是归约算法的瓶颈所在。实验结果表明,在不同的数据规模下,所提归约算法与经过精心优化的OpenCV CPU、AMD W8000和NVIDIA特斯拉K20M平台上分别达到了3.91~15.93和2.97~20.24的加速比;相比于OpenCV CUDA OpenCL,NVIDIA特斯拉K20M平台上分别达到了2.25~5.97和1.25~1.75的加速比;相比于OpenCL、AMD W8000、1.24~5.15的加速比。文中工作不仅实现了归约算法在通用分组计算平台上的高性能,而且实现了在不同通用分组计算平台间的性能可移植。

关键词: GPU、, OpenCL、, 归约算法, 线程内归约

摘要:约简算法在科学计算和图像处理中有着广泛的应用,是并行计算的基本算法之一。因此,加速约简算法具有重要意义。为了充分利用GPU在异构处理平台下进行通用计算的能力,本文提出了一种包括内线程约简、内工作组约简和工作组间约简的多级约简优化算法。与传统的侧重于内部工作组约简的约简算法优化方法不同,本文证明了内部线程约简是约简算法的真正瓶颈。实验结果表明,在AMD W8000和NVIDIA Tesla K20M中,与精心优化的OpenCV库CPU版本相比,在不同大小的数据集下,该算法的性能分别提高了3.91~15.93倍和2.97~20.24倍。在NVIDIA Tesla K20M中,与OpenCV库的CUDA版本和OpenCL版本相比,该算法的速度分别提高了2.25~5.97倍和1.25~1.75倍。与AMD W8000中OpenCV库的OpenCL版本相比,该算法的速度提高了1.24~5.15倍。该工作不仅在GPU平台上实现了约简算法的高性能,而且实现了不同GPU计算平台之间性能的可移植性。

关键词: GPU、, 内螺纹减少, OpenCL、, 约简算法

中图分类号: 

  • TP391型
[1] 哈里斯M.优化CUDA中的并行约简[OL]。http://developer.download.nvidia.com/assets/cuda/files/reduction.pdf。
[2] CATANZARO B.Opencl优化案例研究:简单简化[OL]。https://developer.amd.com/article/opencl-optimization-case-study-simple-reducations。
[3] 颜世光,尹传志,郭平L.基于OpenCL的约简算法优化[J]。软件杂志,2011,22(S2):163-171。
[4] OpenCV Library开源项目[OL]。http://opencv。组织。
[5] BRADSKI G,KAEHLER A.学习OpenCV:使用OpenCV库进行计算机视觉[M]。O'Reilly Media,Inc.,2008年。
[6] RAWAT P S,RASTELLO F,SUKUMARAN-RAJAM A,等。第23届ACM SIGPLAN并行编程原理与实践研讨会(PPoPP'18)GPU上模板的注册优化[C]‖进程。美国纽约州纽约市,2018年。
[7] CECKA C.基于GPU的低通信FMM加速FFT[C]‖高性能计算、网络、存储和分析国际会议论文集(SC'17)。ACM,美国纽约州纽约市,2017年。
[8] 张晓霞,谭国明,薛世斌,等.理解GPU微体系结构以实现裸机性能调节[C]‖第22届ACM SIGPLAN并行编程原理与实践研讨会论文集(PPoPP'17)。2017年,美国纽约州纽约市。
[9] 李斌,孙杰,ANNAVARAM M,等.弹性缓存:用于高效精细和粗粒度缓存线管理的GPU缓存体系结构[C]‖2017 IEEE国际并行与分布式处理研讨会(IPDPS)论文集。佛罗里达州奥兰多,2017年。
[10] KIRK D B,WEN-MEI W H。大规模并行处理器编程:实践方法[M]。纽恩斯,2012年。
[11] 吴爱华,刘永清.基于GPU的通用计算[J]。计算机辅助设计与计算机图形学杂志论文集,2004,16(5):601-612。
[12] 欧文斯·J·D,休斯顿·M,卢贝克·D等.GPU计算[J]。IEEE会议记录,2008,96(5):879-899。
[13] OWENS J D,LUEBKE D,GOVINDARAJU N,等.图形硬件通用计算综述[J]。计算机制图论坛:欧洲计算机制图协会杂志,2007,26(1):80-113。
[14] 计算统一设备架构编程指南[OL]。http://www.nvidia.com/object/cuda_home.html。
[15] Nvidia cuda C.编程指南[OL]。https://docs.nvidia.com/cuda/cuda-c-programming-guide。
[16] NVIDIA cuda C.最佳实践指南[OL]。https://docs。nvidia.com/cuda/cuda-c-best-practices-guide。
[17] opencl 1.2规范[M]。Khronos OpenCL工作组,2012年。
[18] STONE J E,GOHARA D,SHI G.OpenCL:异构计算系统的并行编程标准[J]。科学与工程计算,2010,12(1-3):66-73。
[19] GASTER B,HOWES L,KAELI D R,等.基于OpenCL的异构计算:修订的OpenCL 1[M]。纽恩斯,2012年。
[20] 邹H,王海清,黄毅.GPU加速彩虹表对MD5散列密码的分析[J]。重庆工业大学学报(自然科学版),2013,27(7):61-66
邹航,王华秋,黄勇.基于通用分组加速的彩虹表分析MD5(密歇根州)[J]。重庆理工大学学报(自然科学),2013,27(7):61-66.
[1] 宗迪迪, 谢益武.
基于法线迭代的模型中轴生成方法
基于法向迭代的模型中轴生成方法
计算机科学, 2022年,49(6A):764-770。https://doi.org/10.11896/jsjkx.210400050
[2] 汪晋, 刘江.
基于GPU DILU预测技术
基于GPU的并行DILU预处理技术
计算机科学, 2022, 49(6): 108-118.https://doi.org/10.11896/jsjkx.210300259
[3] 李繁, 严星, 张晓宇.
基于通用分组的特征脸算法优化研究
基于GPU的特征脸算法优化
计算机科学, 2021, 48(4): 197-204.https://doi.org/10.11896/jsjkx.200600033
[4] 齐延荣, 周夏冰, 李斌, 周清雷.
基于现场可编程门阵列CNN图像识别加速与优化
基于FPGA的CNN图像识别加速与优化
计算机科学, 2021, 48(4): 205-212.https://doi.org/10.11896/jsjkx.200600089
[5] 胡蓉, 阳王东, 王昊天, 罗辉章, 李肯立.
基于政府采购部
基于GPU加速的并行WMD算法
计算机科学, 2021, 48(12): 24-28.https://doi.org/10.11896/jsjkx.210600213
[6] 刘世芳, 赵永华, 于天禹, 黄荣锋.
广义稠密对称特征问题标准化算法在通用分组集群上的有效实现
GPU机群上广义密集对称特征问题标准化算法的高效实现
计算机科学, 2020, 47(4): 6-12.https://doi.org/10.11896/jsjkx.191000009
[7] 左宪禹, 张哲, 苏岳瀚, 刘扬, 葛强, 田军锋.
基于通用分组多流并发并行模型的NDVI名称
基于GPU多流并行模型的NDVI提取算法
计算机科学, 2020, 47(4): 25-29.https://doi.org/10.11896/jsjkx.190500029
[8] 康林瑶, 唐兵, 夏艳敏, 张黎.
基于通用分组加速和非负矩阵分解的并行协同过滤推荐算法
基于GPU加速非负矩阵分解的并行协同过滤推荐算法
计算机科学, 2019, 46(8): 106-110.https://doi.org/10.11896/j.issn.1002-137X.2019.08.017
[9] 苏庆华, 付景超, 谷焓, 张姗姗, 李奕飞, 江方舟, 白翰林, 赵地.
前列腺癌辅助诊断GPU安装
前列腺癌辅助诊断的并行算法设计
计算机科学, 2019年,46(11A):524-527。
[10] 卢献华, 王洪俊.
基于大数据计算框架的分布式新闻聚类系统设计
基于大数据计算框架的分布式新闻聚类系统设计
计算机科学, 2019年,46(11A):220-223。
[11] 邓定胜.
一种基于可编程通用分组的实时烟雾模拟算法研究
基于可编程GPU的实时烟雾模拟算法研究
计算机科学, 2019年,46(11A):604-608。
[12] 刘玉成, 理查德·丁, 张颖超.
一种BPNN(BPNN)识别算法的医学检测泛实时性问题研究
基于BPNNs识别算法的医学检测泛时间问题研究
计算机科学, 2018, 45(6): 301-307.https://doi.org/10.11896/j.issn.1002-137X.2018.06.053
[13] 廖星,袁景凌,陈旻骋.
一种自适应权重的并行巴黎证券交易所
具有自适应权重的并行粒子群优化集装箱装箱算法
计算机科学, 2018, 45(3): 231-234.https://doi.org/10.11896/j.issn.1002-137X.2018.03.036
[14] 武昱, 闫光辉, 王雅斐, 马青青, 刘宇轩.
结合GPU技术
结合GPU技术的并行CP张量分解算法
计算机科学, 2018, 45(11): 298-303.https://doi.org/10.11896/j.issn.1002-137X.2018.11.048
[15] 张帅, 徐顺, 刘倩, 金钟.
基于通用分组的分子动力学模拟单元格Verlet算法实现及其并行性能分析
基于GPU的分子动力学仿真Cell Verlet算法及其并行性能分析
计算机科学, 2018, 45(10): 291-294.https://doi.org/10.11896/j.issn.1002-137X.2018.10.054
已查看
全文


摘要

引用

  共享   
  讨论   
找不到建议阅读的文章!