OpenCL 2.0 中的 GPU-Quicksort: 嵌套并行性和工作组扫描函数
发表于 2015-10-19 13:39:01

简介

本教程展示了如何使用 OpenCL™ 2.0 的两个强大特性: enqueue_kernel 函数,支持您排列设备中的 kernel;work_group_scan_exclusive_add 和 work_group_scan_inclusive_add,两个添加至 OpenCL 2.0 的工作组函数,可方便扫描并减少对工作组工作项的操作。 本教程通过在 OpenCL 中实施我们自己的 GPU-Quicksort 来展示了这些特性,据我们所知,这是该算法在 OpenCL 中的首次实施。 本教程展示了一种重要的尺寸 1 NDRange 的排队 kernel 的设计模式,以执行之前为 CPU 保留的管理和调度操作。

在本教程中,您将了解如何使用面向 OpenCL 的英特尔® 工具。 面向 OpenCL™ 应用的英特尔® SDK 是专为英特尔® 架构上的 OpenCL 应用而提供的一个开发环境。 除 SDK 外,英特尔® VTune™ Amplifier XE 也能帮助分析和优化 CPU 和 GPU 上英特尔平台上的应用,并且还支持 OpenCL。 如欲了解面向 OpenCL 的英特尔工具的更多信息,请访问 http://intel.com/software/opencl

在此感谢 Deepti Joshi、Allen Hux、Aaron Kunze、Dillon Sharlet、Adam Lake、Michal Mrozek、Ben Ashbaugh、Ayal Zaks、Yuri Kulakov、Joseph Wells、Lynn Putnam、Jerry Baugh、Jerry Makare 和 Chris Davis 在编写、审核和出版这篇文章、附带代码和编辑视频方面为我提供的帮助。 同时感谢我的妻子 Ellen 和孩子 Michael 和 Celine 对我的坚定支持与理解。

Quicksort 简史

Quicksort 是 C.A.R. (“Tony”) Hoare 在 1960 年尚在莫斯科国立大学就读时发明的一套算法。 Tony Hoare 是概率论专业研究生,指导教授为 A.N. Kolmogorov。 在皇家海军服役期间,Hoare 学习了俄语(他的叔叔是皇家海军上校)。 在研究语言机器翻译的问题时,Hoare 曾尝试按升序来排列听到的每个俄语句子中的单词。 Quicksort 算法的基本理念是围绕主元要排序的序列(主元可通过不同的方式从序列中选择),所有小于主元的元素放到数组的左侧,所有大于主元的元素放到数组的右侧,所有等于主元的元素放到数组中间。 数组被分割后,序列的左侧和右侧将再次应用 Quicksort 算法。

点击查看全文:https://software.intel.com/zh-cn/articles/gpu-quicksort-in-opencl-20-using-nested-parallelism-and-work-group-scan-functions/?utm_source=CSDN.com&utm_medium=Text%20Link&utm_campaign=GameDev_PRC_Q215_CSDN

CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
微博关注
【免责声明:CSDN本栏目发布信息,目的在于传播更多信息,丰富网络文化,稿件仅代表作者个人观点,与CSDN无关。其原创性以及文中陈述文字和文字内容未经本网证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网不做任何保证或者承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件有任何怀疑或质疑,请立即与CSDN联系,我们将迅速给您回应并做处理。】