免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 19637 | 回复: 28
打印 上一主题 下一主题

OpenCL异构计算--并行计算的大势所趋?(获奖名单已公布-2012-7-5) [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-22 16:09 |只看该作者 |倒序浏览

获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-3757208-1-1.html

OpenCL全称Open Computing Language,是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

目前并行计算日趋流行,在某些计算密集型的应用领域,并行计算已成主流,针对GPU-CPU异构系统的计算加速应用已经成为最流行的技术。

并行计算中的算法和传统的计算算法有很大的不同,特别是在内存空间、优化技术、图形互操作、性能扩展方面,都有所不同。

本期话题:
1、异构计算是否会是大势所趋?
2、基于OpenCL的异构计算是否将会是主流,为什么?

活动时间:
2012年5月22日-6月12日

话题要求:
1、 要言之有物,不能低于20个字
2、 本次话题主要关注OpenCL和异构计算,其他问题可能不做重点

奖项设置:
最佳交流奖:1名,奖励ChinaUnix背包一个。
积极交流奖:4名,奖励《OpenCL异构计算》图书一本
参与奖:所有有效参与的用户奖励ChinaUnix社区积分20分

图书简介:

中文书名:OpenCL异构计算
原书名:Heterogeneous Computing with OpenCL


            
            
作者:Benedict R. Gaster Lee Howes David R. Kaeli Perhaad Mistry Dana Schaa
            译者:张云泉 张先轶 龙国平 姚继锋
            定价:76.00元
            出版日期:2012年6月
            出版社:清华大学出版社
            分类:并行计算/计算机体系结构
编辑推荐
来自OpenCL社区的CPU,GPU和APU并行编程权威指南。
专家点评
并行计算现在已经成为主流。针对CPU-GPU系统加速应用的最新流行技术,本书提供了非常出色的参考。
  ——David A. Bader,乔治亚技术学院
内容简介
《OpenCL异构计算》讲解了OpenCL和如何为复杂的异构系统(多核处理器、GPU和APU)进行并行编程。OpenCL是为支持多平台设计的,受行业广泛支持,有助于帮助读者为异构环境编写高性能应用程序。
本书由并行计算和OpenCL社区中的领头人所撰写,可帮助读者体验OpenCL从而了解大量基础的并行算法。书中探索了内存空间、优化技术、图形的互操作、性能扩展,调试和性能剖析等。
本书读者对象为软件工程师、程序员、硬件工程师、高年级本科生/研究生,可供并行编程课程使用,包含有详细的案例,附有额外的网上练习和其他支持材料。

主要译者介绍
张云泉,中国科学院软件研究所并行软件与计算科学实验室执行主任,中科院计算机科学国家重点实验室研究员,博士生导师。
1995年北京理工大学计算机科学与技术系计算机应用专业,获工学学士学位;2000年中国科学院软件研究所计算机软件与理论专业硕博连读,获工学博士学位。主要研究方向为大型并行数值软件、并行程序设计和性能评价、并行计算和并行编程模型,等。
已在国内外学术刊物上发表论文一百余篇,出版译著一本,论著章节三章,申请专利两项,软件著作权三项。
获得中科院软件所首批杰出青年人才专项计划支持。曾获国家科技进步奖二等奖一项,获中科院科技进步二等奖一项,获2000年度中科院院长奖学金优秀奖。连读七年(2004—2010)获中国软件行业协会全国先进个人。
兼任中国计算机学会YOCSEF学术委员会主席(2010.5-2011.5),中国软件行业协会常务理事/数学软件分会秘书长,中国计算机学会理事/高性能计算专业委员会秘书长,国家863“高性能计算机评测中心”技术委员会委员,CCF《计算机学会通讯》、《计算机科学》和中国科学院《科研信息化技术及应用》编委。中国高性能计算机TOP100排行榜的主要组织者和发布者。2008年到2011年HPC China程序委员会共同副主席。IEEE IWPAPS08和IWPAPS09程序委员会共同主席,IEEE ICPADS2008、PAAP09、FCST09、FutureTech 2010、 ACM ICS 2010、IEEE IPDPS2012、IEEE CCGrid 2012、FutureTech 2012程序委员会委员。IEEE CSE 2010 程序委员会共同主席。ISC 2012 Steering Committee 成员;SC 2012 程序委员会委员。中国软件行业协会常务理事, 中国计算机学会理事。

论坛徽章:
0
5 [报告]
发表于 2012-05-24 01:57 |只看该作者
1、异构计算是否会是大势所趋?

会。
如同当初8086和8087合体一样,CPU和加速计算部件的融合计算会是未来的主流。
随着处理器核数越来越多,同构的核难以真正满足程序计算需求,更可能的是将成百上千个核分成适合不同计算类型的若干类,
比如数据库操作、浮点计算、整数计算等等,现在GPU只是其中一种。


2、基于OpenCL的异构计算是否将会是主流,为什么?

这个现在还难说,OpenCL开发程序还太复杂,在不同设备上的性能可移植性也比较差,如果要成为主流,还需要
做很多的工作。现在还有其他一些竞争对手,如微软的C++ AMP。在编程的方便性上,根据微软的一贯表现,应该会强于OpenCL,
但它的劣势在于Intel\AMD等硬件厂商的支持力度有限,而且性能欠佳。

OpenCL要一统异构计算的天下,这个现在有点难。但成为主流之一应该还是木有问题的。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
6 [报告]
发表于 2012-05-25 12:44 |只看该作者
本帖最后由 T-Bagwell 于 2012-05-25 12:45 编辑

1、异构计算是否会是大势所趋?
这个感觉像是大势所趋,尤其是在消费电子行业里面,低功耗,高性能的话,异构其实是必要的。
尤其是带有娱乐功能相关的消费电子,太需要了,就目前来看,似乎消费电子引导者这种变革
2、基于OpenCL的异构计算是否将会是主流,为什么?
主流的话也不好说,有的时候感觉x86下面就像是异构一样,只不过我们常说的就是CPU,但是在主板上还有很多其他很关键的芯片,只不过没有被集成到CPU上而已
就目前的势头来说,不好说,这个真不好说

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
7 [报告]
发表于 2012-05-26 20:58 |只看该作者
并行的,大数据,实时密集的数据处理和计算的统一模型未来肯定是趋势,所以不管以什么名字出现,它都是个趋势,这个名字现在是opencl而已。不光在高性能计算领域,我估计家用、商用、移动等领域都需要这样的能力,比如现在app上有的一些面部识别应用等,有了这样的处理能力会激发更多的应用产生。包括一些arm厂商已经开始提供对opencl的支持。我相信移动终端的实时数据处理是未来的一大亮点,这点上opencl本来就为了这些而提出。
opencl和各种U的关系,如同当年的数据库一样。大部分人拿来承载数据存储的功能,随着业务、存储能力和计算能力的提升,不是自然而然就需要海量了吗?各种U对应各种数据库引擎,opencl是sql编程接口,opencl就如同sql所做的事情一样。不管是异构还是同构,就像需要海量一样,现在需要大家一起并行啦。

论坛徽章:
0
9 [报告]
发表于 2012-05-27 20:28 |只看该作者
1. 处理器(CPU)的发展
    最早的CPU,是由计算器(ALU),控制器(CU)组成的,
    这么做的好处是,需要较高的计算任务,就多加ALU,不需要就少加。
   然而,因为成本的原因,后来ALU和CU就集成在一起。

   在较长的一段时间里,提高运算速度,主要靠提升主频。
   然而,主频的提升,是有限制的,而且近年来,主频也达到了瓶颈。
  
   另一种办法就是多核,多核其实可以看成共享内存的多台机器,因为控制的复杂性,
 多核也有一个极限,差不多32个核.  而且多核属于资源浪费,因为仅仅需要
 数值计算,只需要较多的ALU,并不需要同时增加CU.

 比如现在计算一个任务,需要时间代价为x,
 当变成2个核时,需要的代价会是 x/ (2 + a), 其中a是2个核同时共作,需要的额外的协同开销.
 如果变为3个核,需要的代价将会是x/(2 + 3a),3a,是因为3个核两两交互,
 如果变为N个核,需要的代价将会是x/(N + (1+2+...+N)a),因为N个核两两交互,
 上面的函数,随着N的增加,加速度会变小,最终甚至减速.可以看出,多核集成在一个主板上是有一定限制的.

2. GPU的特点
 GPU是由多组单元构成,每一组可以看成一个CU和多个ALU,而多个ALU之间,除了共享存储,并不会有控制上的交互.
 这样一来,我们就可以通过增加ALU,达到接近线性增加的加速比.

3. 并行编程的未来.
 谈及并行语言的未来,我是相当不看好OpenCL的,CUDA应该还能发展一段时间,但肯定这两种语言,都会很快消亡.
 GPU给我们带来的并行,大异于我们平常所见的MPI或是多线程程序,GPU带来的,其实是一种类似SIMD的并行
 方式,我们可以称之为"平行运算", 而不是并行运算.

 比如向量 a, x, y
    matlab可以这样写: y = a .* x +y;
    对应的C,即:
    for(int i = 0; i < size; ++i) {
         y[i] = a[i] * x[i] + y[i];
    }
   这类运算,执行完全相同的函数,相同的流程,操作同样的数据,仅仅是数据的偏移量不同。


   在今天,己经有了无数的编程语言了,而真正瓶颈在于计算,而不是IO的程序,才是需要并行计算加速的。
   这类程序,多数是用matlab, fortran, idl, dsp, 实现的,还有一部分是c, 更少的是 c++。

   CUDA和OpenCL都是基于C89,加一些C++扩展的语法,并非是所称的C99,更不是C++。
   然而CUDA的编译器nvcc,里面带一个source-to-source compiler,可以把C++转化为C,这样看起来CUDA可以写成C++语法。
   
   CUDA的程序可以在不同的显卡上计算,是因为CUDA的程序里面包含了ptx伪码,执行程序时,会再次编译一次成为cubin。

   OpenCL的程序,需要完整的保留那个OpenCL文件,即那个自称C99的C89扩展,执行程序时,也一样被再次编译。
   因为OpenCL的程序需要同时可以在多核,GPU,甚至集群上实现,所以不能出现ptx这样的伪汇编,只好用C写出来。

    所以,从某种意义上说,
    CUDA面向C++, OpenCL面向C, 但他们解决的问题都是平行计算。
   
    平行计算,不应该局限在C语言上,更不应该像CUDA一样偷懒用前端翻译机扩充到C++上。
    应该实现在一个中间语言层上,比如LLVM IR。

    编译器厂商,可以通过增加语言扩展(比如MS的AMP,Intel的Cilk Plus),或是直接在脚本语言上实现(比如matlab),
   把这种并行方式,输出到一种真正的平台无关,语言无关的中间语言上。

   而处理器厂商,需要实现中间语言到机器指令的编译器后端。

   也就是说未来应该是这样的:
    编译器厂商:  实现平行计算的前端     ----->
    标准委员会:  制定平台无关,语言无关,的中间语言 ---->
    处理器厂商:  实现中间语言到机器指令的翻译

    这样,异构平行计算,才能真正走出一小部分人的圈子,走到每一种编程语言里, 让全世界受益。


(加一句,哪位仁兄对clang/llvm有兴趣,想实现出c++扩展的,可以交流下)

  

论坛徽章:
0
12 [报告]
发表于 2012-05-28 13:53 |只看该作者
1、异构计算是否会是大势所趋?
答:会。
就像楼主说的,在那么多领域有所需求。但我认为其他领域有可能是突破口,比如可编程PLD,医疗,天文.
其中需要大量的并行计算.在硬件领域,目前的支持除了比较活跃的AMD(貌似很多资料是从AMD放出来的), 英伟达.
但是,单纯从OpenCL软件的角度讲,并不能满足工业界,教育,医疗.所以一定要结合硬件才有意义.据我所知.FPGA厂商
ALtera已经在可编程和opencl 的结合研究.

2、基于OpenCL的异构计算是否将会是主流,为什么?
答:看情况. 除非是站在行业高度,有高屋建瓴的角度才有可能给出确定答案吧.否则这种回答可能永远都只是"事后诸葛亮".

可以确定的说, 异构计算 和 并行计算 的道路是一定要走的.但是opencl是否会是主流不仅仅要看语言的本身,
组织的支持,
大有力的推广,
即使作出优化满足客户需求
,吸取同类语言长处,
是否有合适的平台便于初学者学习,

这些都是是否成为主流的因素.当然了,如果有一天真的确定了主导,有了话语权,舆论在"误导"一下后来者,那就是主流了,因为那时候已经是主流了.

论坛徽章:
0
18 [报告]
发表于 2012-06-01 18:28 |只看该作者
本帖最后由 soulsai 于 2012-06-02 01:24 编辑

      简单的说,异构计算是指在异构系统上进行的计算,利用异构系统包含的计算部件在计算能力、指令系统、功耗、体积或面积等上存在的差异,在算法、编程与系统等方面进行设计与权衡,使计算任务的并行特点与机器的计算能力相匹配,以充分利用各种计算资源的计算能力,达到优化性能等各种目的。例如AMD发布的AMD Fusion系列APU,在一个芯片内集成了CPU与GPU核心,宣称支持“异构计算”,号称“百核加速”,即可以利用APU内置的数百个GPU处理核心和若干个CPU核心进行协同加速计算,从而提升性能,而事实上由于两种计算部件核心的指令集不同,在芯片硬件上直接进行集成会存在总线竞争、计算任务调度、访存冲突等制约性能提升的关键技术问题,对于绝大多数一般应用来说,实际性能效果不尽如人意,个人认为AMD可能会考虑进一步整合两种计算框架,以统一的指令架构来达到高效优化的目的,或者针对某类应用在硬件逻辑上进行重新设计,达到面向专业领域的优化。
      对于本次讨论的两个问题,谈一点自己的看法,个人知识水平有限,希望大牛和大虾拍砖指教。

1、异构计算是否会是大势所趋?
       这个问题谈的是未来计算发展方向的问题,我个人比较倾向于中科院专家等人在《中国至2050年信息科技发展路线图》中作出的论断:21世纪上半叶将构建“惠及全民、以用户为中心、无处不在的信息网络体系(Universal, User-oriented, Ubiquitous Information Networks Systems, U-INS)”。这种信息化发展的趋势应该是符合未来国际主流的信息科学发展方向,在此认识基础上,未来信息网络体系将成为研究的重点突破方向,在信息网络社会中,连接入网络的信息设备将以千亿、万亿计,信息设备之间的通信需要可靠的服务保证。由于市场因素,这些设备的制造商与研究机构必然多样化,设备硬件与软件的异构性势必成为高效、可靠、安全、低功耗网络体系构建的基础研究课题,也势必会引起越来越多的研究机构与公司投入成本进行市场竞争,而异构计算在算法、编程模型、系统设计等方面将展开重点研究,但是这一切都应该依赖于应用的需求、技术的发展与社会的发展速度,因此,个人认为有极大的可能性,异构计算势必成为未来几十年信息科技研究的一个重要方向,个人认为是一种趋势。

2、基于OpenCL的异构计算是否将会是主流,为什么?
      根据OpenCL规范,OpenCL是一种通用并行程序设计标准,用于CPU、GPU和其他处理器,以使得软件开发者能够可移植的与高效的获得这些异构处理平台的计算能力。它通过一种低层次的、高性能的、可移植的抽象来支持大范围的应用,其框架包括一种编程语言、API软件库和一个运行时系统,用以协调跨异构处理器的并行计算。
      对于OpenCL能否成为异构计算的主流,个人认为,这主要取决于两大因素:
  • 一是工业界各厂商的支持力度。因为任何IT理念或产品的成功绝对离不开工业界厂商的支持,典型例子如云计算,在网格计算被学术界与政府炒得火热的时候,商业界没有给予大力关注,结果没到几年学术研究就相对减少,而目前云计算被各大厂商炒的火热,最根本的因素在于利益的驱动,可以说,没有大量资金的投入,任何IT理念或产品都无法被长期的跟踪研究并逐渐成熟。目前OpenCL表面上看各大巨头都鼎力支持,事实上还是要拭目以待的,仅就NVIDIA来看,在推出OpenCL的SDK同时,也在大力宣扬其从一开始就投入巨资开发的CUDA平台,这种行为本身就值得推敲,各大巨头的利益是否得到合理平衡才是标准最终能否存活的关键点;
  • 二是社会发展是否出现重大的应用需求(包括高性能计算、商业数据处理、军事应用等)。没有这些应用的驱动,就没有市场,自然无法吸引厂商和研究人员的投入,一旦出现这种大规模社会需求,尤其是适合异构计算的应用,OpenCL是目前比较有可能胜出的标准,成为异构计算的主流,仅从高性能计算领域来看,峰值计算能力正从P级向E级发展过渡,异构计算是目前较高效、低功耗、性价比较高的候选技术之一,而OpenCL能否在该领域胜出,还有赖于厂商与研究机构对该语言标准实现与应用的成熟度。

    相信异构计算势必会引起新一轮的信息科学热潮,拭目以待,O(∩_∩)O~


论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
2 [报告]
发表于 2012-05-22 22:31 |只看该作者
1、异构计算是否会是大势所趋?
不会
2、基于OpenCL的异构计算是否将会是主流,为什么?
我估计在今后很长一段时间内都不会有很好的发展,因为OpenCL目前好像还停留在理论上,没有实际的产品,另外比较冷僻,没有一门很好的语言支持他,另外目前主流还是云计算,或许在高性能计算上有一定效果,但是我认为还有很长的路要走,例如如何把任务拆解为异构的任务,如何控制目前没有一套体系。

论坛徽章:
0
3 [报告]
发表于 2012-05-23 14:45 |只看该作者
本帖最后由 sinob 于 2012-05-23 14:48 编辑

晕,亏了二楼了。OpenCL本身就是编程语言,并且云计算和异构计算并非互相排斥。
1、异构计算是否会是大势所趋?
On the way to Exascale Computing, 异构计算确实是备选的路径之一。同等工艺下,更高的性能功耗比,毋庸置疑。缺乏的就是统一的编程模型,以适应各种异构设备。
2、基于OpenCL的异构计算是否将会是主流,为什么?
AMD,ARM(Mali),Nvidia ,Intel和 Imagination都会推出支持OpenCL的硬件及相应的SDK,现在OpenCL在北美已成为仅次于TBB的并发编程语言。随着AMD,Nvidia,Intel对OpenCL支持力度的加大,在消费和高性能领域OpenCL会逐渐普及。而移动应用对计算能力的需求的提升,也会推动OpenCL在移动领域的扩散。

论坛徽章:
0
4 [报告]
发表于 2012-05-24 01:45 |只看该作者
3楼正解,2楼误解。

说OpenCL是理论,是想说它是标准吧? 现在至少支持C\C++,而且应用主要不是HPC,更看好移动计算什么的。



回复 3# sinob


   

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
8 [报告]
发表于 2012-05-26 21:08 |只看该作者
从个人角度,我更倾向同构。1是异构带来复杂性,2是各家大U厂商可以做到集成产品、ISA、编译系统等的统一,就如同把显示能力做进CPU可行一样,不过大家都有势力范围,做U的不会去碰dsp。所以我觉得商业应该是产生异构的一个驱动。哲学上需要异构的世界,代码上还是同构就最好不过了。

论坛徽章:
0
10 [报告]
发表于 2012-05-27 20:32 |只看该作者
1、异构计算是否会是大势所趋?
       必须的,不解释。

2、基于OpenCL的异构计算是否将会是主流,为什么?
      不可能,玩具而己。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP