用户
 找回密码
 立即注册
发表于 2010-7-5 10:20:42
34821
2010年6月26日上午10:00
柳有权 长安大学副教授
邓仰东 清华大学微电子研究所副教授

主持人:

各位网友,大家上午好!欢迎大家关注本期IT168技术大讲堂栏目,我是今天主持人覃里。作为史上奖励最为丰富的校园活动之一,2010年CUDA校园程序设计大赛从4月15号启动开始,到现在有近百所大学的同学报名参加,这个过程当中我们收到了很多同学来电来信咨询关于大赛的试题和规则。为了帮助各位参赛者更好的理解大赛的规则,为了避免不必要的失分,我们邀请了大赛两位评委,长安大学副教授柳有权老师,清华大学副教授邓仰东老师。请他们到现场特意为我们网友解答本次大赛的试题和规则。
今天我们也请到了不少同学到现场,有来自清华大学,有来自中科院,邮电大学的。有请两位老师针对这次CUDA题目进行讲解,现场的同学如果有不清楚或者有疑问的地方可以举手,我会安排老师解答各位的问题。

邓仰东:

我们这次有两道指定的题目。
第一道题柳有权老师说。
第二道题是我出的,首先我们要解决信任方程,矩阵A乘上矢量X,得出一个未知数,我们利用少提高效率,求解信任方程有两类方法,一类是直接法,一般来说就是类似高速法,直接法一般来说稳定性比较好,速度比较慢,如果L分解可以先做,以后的求解中可以重复利用L分解的结果,L分解还是一个很好的办法。另一类的是叠代法,包括SOR,夹克比方法,叠代法也有好的理论,但是算法也是很简单的,大家可以在网上参考文献里面直接查到算法,看里面有哪些计算需要自己实现。叠代法最核心就是乘积运算,占用90%的时间,把去年那个题目解决好,还是很简单的。
如果大家做的好应该是一个好的结果。至于怎么测验大家的结果,我们准备的五个矩阵,这五个矩阵都是来自于佛罗里达大学的矩阵收集,他们有不同的特性,有的接近于对角线分布,有些特别的稀疏,大家可以用它求解。求解方程AX等于B,我们没有给出B矢量,就是矩阵收集没有B矢量,大家可以先得出一个X,得出一个B矢量,倒过来得到A,这样比较容易验证。大家可以尝试单晶度,不行的话可以尝试双晶度。

柳有权:

我介绍第一道题目,我介绍一下光线跟踪算法本身,它是非常经典的算法,也是电影特效制作,和动画片制作或者说是一些比较高端的,对光要求比较高的地方普遍的算法,也是一个成熟的算法。作为目前应用最普及的,或者说产品最多的一个东西,它是光线算法的方法,它模拟光的传播,让我们计算光线达到这个物体上,从人眼出发向屏幕发射模拟,模拟三维场景,然后把光照算出来。光线其实是多次反射的过程,打在这个物体上会反射到其他物体上,这个物体上的光通过这个光源直接效果,还有其他物体的二次反射,甚至还有折射,还有透射。作为我们比赛,我们只要求你做到一遍光线跟踪,就是直接光源光照的效果就可以。
有些同学提到要做折射,或者做透射的效果,我觉得非常好,但是你要考虑一下你的时间问题,你要写一个完整的光线跟踪器对你的作品是增分的,为了吸引更多的学生来参加大赛,就做一遍光线跟踪就可以了。

对场景的描述,我们会提供两个场景,一个是简单场景,装上几个球,大家去做一个求解,另外一个就是比较复杂的场景,我们自己做实验的过程当中有一些场景,大家算一下,看最后渲染的效果。

一遍光线跟踪是非常容易进行并行化的过程,每个光线和另外一个光线的计算是独立。这种光线和三维虚拟世界里面的三角形求交,都是独立的,有很多可以考量的东西。网上也可以找到开源的东西,大家也可以参考一下。

如果你不是做一个Brook+算法,每个光线遍及每一个三角形,这个我们不提倡,这是很笨的算法,我们要利用GPU做光线跟踪器,我们鼓励大家选择这个题目来做,我希望发现好的算法。

光线跟踪算法不要自己思考,大家找到网上代码都可以做到,难点就是建立一个多层次,具有层次结构的场景树。光线去找对应三角形的时候,可以快速找到极有可能相交的三角形,这是最光线的。如果你只是每个光线一遍一遍走算法,这样我们是非常不提倡的。
这是我对这个方法的介绍。

主持人:

刚才柳老师说的时候,我想到一个问题,有网友打电话来咨询过这个问题,光线追踪不是学图形学的话,是不是不适合选择这个题目?

柳有权:
光线跟踪就是一个变异的过程,如果考虑多次光线可以利用调用,我们想象光线在这个世界走,物体相交的颜色提出来,原理是非常容易理解。你不是学图形学的人选择这个方法去做也是可以的,我也是非常欢迎大家思考这样的问题。因为这个方法真的要做到非常好,就可以拿到市面上卖。现在世界上很多的公司和机构愿意做光线跟踪的算法。它对于我们影视制作,或者说我们广告动画制作,都是非常强的一个工具。如果我们的大赛能够做到这个,效果会更大。我们大赛只是局部光照,我们做全部光照就可以使整个画面达到最好的效果。

主持人:
之前我们要提供一个测试文件给同学,这个文件大概什么时候在网上可以下载到呢。

柳有权:
因为我工作原因导致我提交的比较晚,我回去以后马上准备一下,请大家放心,我们会尽快把这个东西准备好。

主持人:

刚才两位老师介绍了一下这两个题目,也介绍了如何获得高分的方法。两位老师有没有提示同学如何避免不必要的失分,同学在选择这两个命题的时候,哪些需要注意的,不要再哪些地方浪费时间,那个没有太大价值。

邓仰东:

大家要和自己的作品结合,有一些积累在里面,再就是矩阵首先有两个选择,直接法和叠代法,叠代法相对容易,但是要考虑到编程的技巧,这样才可以做得很快。如果选择直接法,你能不能有新的算法,去重现实现L分解的过程,以及三角形求解。直接法可能加速比并不是太高,但是希望在这里面发现新的方法,如果大家不同的选择,要求和抢答分的方式是不一样的,这是需要注意的。尽量不要用暴力的办法,要想清算法,有无数新的思想和方法出来。柳有权老师也说这是一个很好的思路,你有别的知识背景,解决其他的问题可能会有新的机会。

柳有权:

我补充一下邓仰东老师的问题。我以前是做力学做法的,我偏重叠代法,它在工程计算上用的比较多,很难一个大的问题可以用直接法算出来,叠代法更容易并行,我这次叠代的结果和上次叠代的结果完全独立,数据访问和线程操作可以做的不相关性,相对它更容易。但是邓仰东老师说了,你要获得一些比较大的效率提升,大家还要动点心思,还要好好想想。这个数据该怎么组织,怎么去让我们收敛更快。在几个叠代法里面,雅可比叠代是最快的,如果你用替代法,每一部叠代比较慢,整个上升效率是比较快。看你怎么选择。

主持人:

刚才柳老师说不支持同学加速比在CPU用暴力算法。

柳有权:

我的观点就是不要从网上拷一个给我。我们一旦发现,会直接把你排除掉。我们很多老师也在网上看一些东西。你能找到的东西我们也能找到。去年比赛当中有这种情况发生。

主持人:

柳老师是说大家尽量靠自己的智力完成作品,蒙混过关的机会可能性非常少。

邓仰东:

相信自己,我们不比别人差,一定能作出更好的东西。

柳有权:

大部分学生是研究生,你可以跟你硕士论文工作做很好的结合,我们参加大赛的时候最好和自己的兴趣谈谈,跟老师谈谈。一方面可以参加比赛,另一方面硕士论文可以得到非常好的成绩.

主持人:

现场的同学这方面有没有问题想问老师的?

网友:

两位老师好,加速比是一个重要的参数,但是加速比的概念能不能更确切的解释一下。不同的平台在不同的配置环境下,会有一些不同,能不能解释一下?

邓仰东:

柳老师也说了加速比文档和算法都是很重要的,至于说加速比怎么测,实际上以评委测为准。这里面会有一些问题,有些算法现在来说好说,顺序和并行都是一个算法,你直接去比。也有一种情况,顺序算法可能不是并行的算法,这时候加速比是相对参考的东西,我们都会考虑到。大家不用太担心,刻意追求一个机器上加速比。

柳有权:

你提交的作品必须保证换一个机器稍微调整一下,或者不调整,就可以跑起来,不能说放在老师这儿不能跑,这是很大的问题。

主持人:

刚才老师介绍的是命题两个题目,可能有些同学选自选题,这方面两位老师有没有好的建议?

柳有权:
自选题非常灵活,我们非常鼓励跟你的研究工作结合起来。你不仅完成一个比赛这么一个简单的事情,我觉得比赛相对是简单的事情,更重要的你将来的发展,你可以发表一下高水平的论文,跟我们结合很紧密。这个在行业里面可能有非常大的价值,我们鼓励这样的。

邓仰东:

这个东西真的需要加速的,有人做工作,原来只用几分钟就做好了,加速几十倍,变成半分钟,这个意义不是特别大。希望大家寻找核心的问题解决掉。本身就可以写一篇很好的论文。

柳有权:
我们非常鼓励这种情况出现。

主持人:

两位老师说自选题要选择有价值的题目,纯粹为了比赛而比赛就没有意义。

有一个网友说比赛CUDASDK版本是多少,不同的版本有细微的数据,有些代码在2.0版本可以编译,3.0就编译不了,希望把评委老师的SDK版本告诉大家,他们在同样的版本下开发心里比较踏实,如果版本不一样,会感觉有细微的区别,希望两位老师把驱动、操作系统、SDK确定一下,让他们在专一的平台下面进行测试。

邓仰东:

操作系统可能未必需要完全确定下来,因为毕竟是比较标准的,只能跑CUDA应该差不多。用新的显卡和旧的显卡会有区别,如果大家指出你的程序只能在3.0版本上运行,我们会在3.0版本测试。有的同学说我只有G80的东西,CUDA1.0,这个没关系,可以在2.0版本上跑。

柳有权:

大家不用担心平台的事情,我们评价这个作品是否优秀作品,我们考虑的很多,我们考量的指标不仅仅是加速比这么一个东西,还有你的算法的创新性,你的文档,各个因素综合起来。所以不要太担心平台的事情。而且刚才邓仰东老师讲,我们会根据你所开发的平台选择相应的测试。

主持人:

刚才两位老师对刚才一位网友的问题进行了解答,不知道这个问题网友是否满意。
这个问题我想交给现场同学们,现场同学有没有什么可以问两位老师的。

网友:

主要问一下邓仰东老师,关于矩阵求解问题,因为这个问题可以看到很多优化跟各个稀疏矩阵格式比较复杂,跟你的测试器选取有很大的关系,你现在在网上公布了五个,还有五个在保留,不知道是什么,你大概是怎么划分这个类的,怎么划分权重?

邓仰东:

还没有划分权重有多少,我们尽量让它有代表性,如果过于大就不做不了,有大有小,其余像分颜色分布,有些非常随机,像电路模拟的矩阵非常少,分布不均匀,我们也想挑有带状分布结构的。大家不要针对某一类矩阵做特殊的优化,这个工作有时候也有意义。从这次竞赛来讲,希望大家不要针对某一种特殊的结构做优化。

大家也可以找不同的结构去测,最难的就是电路矩阵和Google排名矩阵,那个特别难加速。

主持人:

我刚刚看到网上有提问,有很多问题大家登录CUDA社区的时候会有一个知名帖子,叫CUDA大赛常用问题解答,有很多问题都列了出来,大家可以参考一下。

有一个网友问,针对柳有权老师的,之前要提供一个测试软件,没有提供的时候能不能先透露一下这个场景的复杂程度?

柳有权:

我们要提供两个场景作为测评,一是简单的场景,里面放几个简单的Mash进去,二是复杂的场景,多复杂就是几千个面片,或者上万个面片,简单的就是几百个面片。

网友:

刚才我那个问题已经跟邓仰东老师交流过了,我想问一下,那个格式有很多种,稀疏矩阵 有ER、CR,哪种格式适合直接法,哪种格式适合叠代。

邓仰东:

可能没有人做过这样的研究,稀疏矩阵有很多不同的存储格式。这个存储格式恩根据你的问题来定的,看你适合比较做L分解还是叠代法。有些是分块的,有利于把一些数据读进来,基本上是根据问题来确定矩阵的格式。

主持人:

有一个网友说不是国家统招的学生,是民办高校的学生,有资格参加这个比赛吗?
邓仰东:

当然有。

柳有权:

我们没有说根据身份,只要你是学生就可以。

主持人:

在场同学还有问题吗?

网友:

两位老师好,我是来自清华大学水利系的学生,我有一个问题问邓仰东老师,刚才网友提到是否可以矩阵不同的特性来设置不同的算法,我现在想接着这个问题来问,我是否可以在程序之前先有一个判定,判定这个矩阵是属于哪一类,比如说带状的,或者是离散度比较大,判定之后就分别进入不同的程序算,这样不仅保证它的完整性,而且解决各种方案也有通用性,是否可以采用这种方法,根据不同的东西得到不同的结果,但最后的结果也能采用它的最优性。

邓仰东:

当然可以了,这是一个挺好的变化,我们可能现在只有一两个对角线附近的阵,别花太多的精力在那个地方。这个方法是可以的,事先对那个矩阵特性进行进展是有必要的。你可以采用重新排序,但你最好把它变回来原来的形式。这是一个很好的思路,你要动态根据不同矩阵的特性决定处理的办法,这应该是很好的思路。

主持人:

我这边也有一个网友的问题,比赛评分标准有加速比一项,就是相对于GPU实现和CPU实现加速,如果是,我们一定要针对CPU实现。

邓仰东:

应该有一个CPU的实现,是不是一样的算法不好说,因为有些问题GPU可以使用很暴力的算法,CPU用这种方法不合适。CPU逻辑仿真的时候,用一个顺序的算法就可以,并行的时候会采用异步算法比较好,CPU和GPU算法不是一样的。大家可以指出来,我在CPU做的适合CPU的算法,我们可以在CPU测加速比。希望大家自选题目的时候把这个指出来。

柳有权:

在研究领域其实也是一个问题,CPU如果一个很笨的算法,GPU做了很多优化,这不是公平的比较。所以你的CPU版本也是比较优的选择。你之后比起来的结果能令人信服,不然的话这样比不太妥。

主持人:

这儿有一个问题,我就可以回答,不少同学提到在提交作品之后,会担心对手看到自己的算法,很多都想在比赛快结束的时候提交自己的作品,这样会对成绩优没有影响?我可以回答这位网友,这个不一定非得9月份提交,现在CUDA大赛的网站已经有了这个功能,你上传的时候不需要上传代码,就把可执行文件,简介图片就可以了。甚至有的同学还是会担心xml文件,大家也能看懂我的作品。你就跟大赛邮箱发邮件,希望这个作品最后再公开。有的同学说也不想公开源代码,我们有一个承诺给大家,NV承诺不泄漏源代码,软件和代码版权是归个人所有,IT168和NV得到个人同意才做市场宣传,事先会提醒作者,版权问题可以放心。
下面还有两位网友有没有什么问题?

网友:

我想问一下柳有权老师,光线与三角形相交问题是光线跟踪最基本的问题,我们实现的时候是只实现这部分,还是把后面的部分也做出来,对命题有没有加分。

柳有权:

实现完整的光线跟踪是更好的,我们对这个比赛题目可以只实现一遍跟踪,光线打在这个物体上把这个焦点算出来,把这个颜色算出来。我们刚开始出这个题的意图是这样的,你把后面的东西实现对你的成绩有加分,你做了一个完整的东西,说明你对光线跟踪了解非常深刻,你往一个实用阶段去发展。

网友:

还有一个问题,关于自命题方面的,涉及跨学科方面的问题,在中国裁判面对不同的跨学科有什么评判标准?

邓仰东:
首先评委也是来自不同学科的,工程和自然科学都有一些看法,不同学科确实很难比较,但我们主要看算法的创新性,这里面经常有区别,从你的文档和CODE都可以看的出来,不在于这个学科国民经济影响特别大,那个可能很小,就说这个好,这是不会的,主要看你的创新性。

主持人:

由于时间关系,今天还有最后一个问题,看哪位同学想问?

网友:

我不是那种计算机专业的,非计算机专业的,如果想取得比较好的成绩,两位评委有什么建议?

柳有权:

CUDA本身目的是推广非图形学的应用,也就是非计算机专业的应用,它是跟应用紧密结合,不用担心你是非计算机专业的,往往非计算机专业会给我们很多的亮点。你不用担心这个问题。

主持人:

今天由于时间的关系,节目就到这里,大家有什么问题可以在CUDA论坛上发贴,或者直接发邮件到我的邮箱,我们会随时跟评委互动,有典型问题我们会及时跟大家解答,我们论坛里面也有一个常见问题的帖子,我们会及时更新问题,如果大家对大赛有什么疑问,都可以参考帖子,如果发现帖子没有相关的问题,来电、来邮件都可以,希望大家保持沟通。
谢谢到场的两位嘉宾,谢谢到场的网友。大家再见。
使用道具 举报 回复
发表于 2012-11-11 05:52:50
共同发展!学习才会进步,谢了












无锡百姓网:无锡人的网上家园!
无锡百姓网 :k0510.com
你想更多的了解无锡就请到无锡百姓网
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册