对APU/GPU异构开发大赛的一点解释

转自:AMD开发者关系经理、2012异构开发大赛评委 谢海波博士

近期一些开发者在论坛中反映对AMD异构开发( APU/GPU应用)大赛的内容、赛制等有不明白的地方,我们借此机会解释一下,希望能够帮助大家更好地理解大赛,以便在初赛阶段就能提交高质量的作品,为后期的比赛打下更好的基础。

1.       大赛目的

大赛的目的,一是吸引对GPGPU已有概念或感兴趣的开发者投身到OpenCL编程里来。随着各大主要计算平台的先后采用,OpenCL作为第一个面向异构系统通用目的并行编程的开放、免费标准正逐渐成为异构并行计算领域里领先的应用编程接口(API)。AMD为OpenCL编程提供了完整的解决方案。二是希望在计算机视觉、多媒体、科学计算等领域的开发者和产品公司能关注GPU所带来的加速和性能提升。

同时,我们希望能够帮助更多以C++和Java编程的主流程序员了解如何设计并行算法,了解GPGPU和利用GPU进行能够做什么,这将有助于异构计算的推广和普及。

 

2.       如何看待大赛命题

此次的大赛命题还是非常开放的。因为大赛的目的是吸引更多的同学投入到异构环境编程,或更通俗的说是CPU+GPU编程,所以大家可以选择任何你喜欢的语言,任何你熟悉的领域去设计命题。甚至你可以不要写GPU代码,而是充分利用已存在的经过GPU加速的函数库,去完成你的作品。

当然如何选择命题可能会对评委产生不同的影响。大赛命题主要是三个方面:开源项目的GPU加速;经典算法的GPU实现;基于第三方类库(要求是GPU加速的第三方类库)的新颖应用。

1.      如果大家如果积极主动参与开源社区建设,对众多开源项目中的一些项目进行GPU加速,那就功德无量,评委会对此加分。

2.      经典算法,我们着重看算法在业界的地位和使用价值。比如FFT算法,大量用于图像处理、语音处理等商业软件中;比如稀疏矩阵的分解,可能是求解高阶常微分方程或偏微分方程的典型方法,大量用于科学计算,比如电力系统、气象系统等行业;再比如K-means算法,能有效提高大数据分析的能力。这些算法要求实用性好,不能自己闭门造车搞个并行度很好的算法,却是为了数据并行而并行,没有任何实用价值,这种做法恐怕不会获得评委的青睐。评委一旦发现同学采用了经典算法,也会着重从算法并行设计、优化技巧等方面进行考量。

3.      采用第三方库进行开发,尽管不需要自己去实现GPU代码,但你最起码得展现出自己对GPGPU的理解,评委也需要仔细考虑命题的实用性和新颖性。

另外,为了鼓励Java/Aparapi和C++ AMP编程,评委将会特别关注这些作品。如果命题好,即便性能实现上存在一些问题,在初赛阶段仍有胜出的机会哦。

3.       大赛各个阶段需要提交的内容

大赛分为3个阶段:初赛,复赛和决赛。每个阶段对参赛者要求不同。

初赛只需要让参赛者通过一份文档告诉我们,你想做个什么东西,这个东西好不好玩,有没有商业价值或学术价值;如果想把这个东西完成,你大概考虑怎么做并行化,性能大概是个什么样子等等,只需要告诉我们就行,如果有CPU代码最好,没有也无所谓。目的是让同学把理论和实践结合起来,不要闭门造车。如果是一些算法的优化,可以结合你应用的领域,在文档中说明应用的例子。

复赛才开始要求编码,包括CPU代码和GPU移植。这个阶段AMD会给比赛选手提供设备,并指导如何进行编写和优化。需要完成论文和代码的一部分优化工作,提交给评委就评估大家可能的工作结果。这个阶段就需要提交代码了,包括ppt和设计文档。

复赛完成,基本上大家的设计工作就完成,进入决赛重点优化阶段。请始终保持清醒的头脑,得出自己的GPU代码优化方法,并按照这个方法一步步完成最终的结果提交。最终需要提交ppt、代码、可执行文件等等。

4.       结语:

不要把异构计算和异构大赛考虑得那么神秘。懂异构的,利用大赛资源学习和提高,通过分享帮助他人;不懂异构的,欢迎进入异构时代,来感受下技术发展对你程序设计带来的利弊,并分享到社区。我们后续有相关的博客征文活动。

大家对大赛有任何疑问,请在这里跟帖,我们会尽快回复。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值