作者归档:admin

Summary of this week

After reading the essays about recent research, the main parallelization schemes for optimization on Cell Processor are: optimize the DMA transfer (single buffering, double buffering and multi-way buffering), optimize the implementation models (how to divide the whole data block into different piece and how to connect each program structures) and optimize the get/put methods (using some prefetch mechanism such as pseudo-result, asynchronous unsafe cache and software cache).

通过几天阅读的论文情况,基本上发现了几种加速并行处理的方式:优化DMA传输方式,缓冲,双缓冲和多重缓冲;优化实现的模型,拆分程序流到不同的SPE,不同的计算模型,会得到不同的实现效果;优化数据读取的方式,比如利用预读取,虚拟结果,和异步多流水线缓存和程序缓存的方式。

继续阅读

搞笑的日语课期中考试

      今天的日语课算是第一次正规的考试吧,算是期中考试。周末就随便看了看书,觉得确实没什么可以考的东西。然后背了单词,应该没有什么问题了。然后今天的日语考试,在这种全世界同学的环境下,确实是雷到我了。

      首先是考试的纪律,虽然说老师让我们把书都放到包里,座位也分开了,但是有很多同学东瞅瞅,西瞧瞧,更有把书直接摆在桌子上的,老师看到了,也是睁一只眼闭一只眼,说“不行啊,收起来哦,这是考试”。

      然后考试从听力开始,我的感觉,如果按照中国的听力,应该是像笑话里面一样:甲,A站上来2个下去4个,B站上来9个下去2个,C站我下去了,最开始有9个人;乙问,甲坐了几站。但是日语的听力考试,竟然直接报数字,然后选。再就是一个人在那自言自语,说:我是韩国人,京都大学学生,专业是计算机。然后我们就选:韩国,京都大学,计算机。是不是太NC了,打击我们智商呢。。。但是还是有很多同学抓耳挠腮,不得其解,哎,看来中国的学生真的是身经百战,个个都是考试王啊。

      最搞笑的就是最后一个题了,是一个这样的表格:

1 A
2  
3  
4  
5  
6  

 

然后表格下面有 A-F,6个选项,然后大家就开始疯狂的提问,这个是什么意思,这个要怎么做,然后老师也很无奈啊,把例子播了3-4遍,终于,伊朗叔叔明白了:oh, i see, i see。引得我们全场爆笑,老师都快受不了了,哈哈。

      整个考试下来,都是在一种很轻松的气氛下进行,很过瘾,不知道这个是日本的风格呢,还是我们的这个日语阶段太简单了,但是虽然很搞笑,这种考试的方式我还是挺喜欢的。不知道中国的监考老师看到了,会不会气疯掉。额。。。

      做饭吃。。。

需要考虑的几个问题

1.是需要在SPE上实现E-3里面那种数据驱动的几个SESSION的驱动方式,还是直接用SPE本身的调用方式来进行数据的采集和计算?
2.是针对所有的算法,还是所有的图形算法,还是一种算法进行加速?从理论上来讲
3.在写论文的时候,应该是采用对一个图形算法进行加速,可以用到的有FFT,POI,HIS,JPEG等等。
4.改变一个算法的算法模式是很重要的,可以选择Pipe或者Register Rotation方式。

设计的思路:
首先要寻找这些算法的一些共同点,然后想怎么分配任务到SPE,哪些是可能或者需要缓存的东西。怎么样用数学的方式来表达这些东西。
然后就是选取怎样的编程模式,真正实现一个东西,进行测试
最后是怎样得到测试数据。写论文。

后续任务:调查图形算法的共同点,以前人怎么优化过。

阅读论文和实践小结

第六次和山口老师会面,主要说了一下我对最近工作的进展情况的感受,和我了解和学习到的IBM CELL处理器相关编程知识。感觉后续的任务还是很艰巨的,有很多文档要阅读,很多论文要看。因为这些东西都是自己以前从来没有接触过的,基本算是要从最 底层原理,到接口文档,到实现,都要自己来干,除了仅有的C++还是有LIB扩从的。周围有没什么人好讨论的,好在老师英语还不错,所以这个毕业设计还是 很锻炼人的。不管是从英语水平,阅读论文,独立解决问题,从理解完全不知道的东西,到读文档,看SDK,看实例代码,配置环境,跑代码,写代码。相信会很 有收获的。 继续阅读

DATA-DRIVEN MACHINE

Basic knowledge
LISP: LISt Processor. It is a function language for the list.
Data-driven machine: different from the old machines. It execute with the data flow.
Pseudo-result: not a actual-result but can be used in the next function as a semi-result.
Processing element: the basic unit of processing. We often call it PE.
Lazy uation: uation of a computation is delayed until the following computation requires the actual argument values.
A new control mechanism: use a data-driven architecture (one of non von-Neumann computers) to exhibits full potential for parallelism both in hardware and software.
Parallel: Divide a program into different piece and execurate in serval processing element at the same time. To do so, we can accelerate the speech of processing time and use the time and space wisely.
Semi-result: A cons operation include a pseudo-result or a semi-result
Actual-result: result with the real data after execurating.
Packet oriented architecture: data transference between each section in a PE is done by a packet in a pipeline manner as well as between each PE
Pseudo-result lifetime: a time interval from the time when a new pseudo-result is created, to the time when the value of the result becomes actual-result.

Details of it

First section, the organization of the data-driven machine is described.
Function uation scheme –
to achieve eager uation with pseudo-result, allows some degree of overlapping of computation.
Machine Organization –
multiprocessing system with a number of identical PEs in wich each PE is connected via a packet communication network. 继续阅读

最近进展情况及会议记录

第一周:主要是介绍了毕业设计的大体概况,一种新的计算机体系结构DATA DRIVEN MACHINE,然后山口老师还亲自给我上了半节课,大概花了一个小时,然后给了我4篇相关论文。
第二周:看了相关论文之后,开始写论文总结,然后理解了这种机器的构造,基本上还算正确,和老师继续讨论之后,确定了后续的工作任务。
第三周:学习了LISP的相关知识和SCHEME编程,山口老师又给了一些论文和网站介绍。
第四周:开始熟悉CELL SDK,然后进行初步X86模拟,和编程语言的选择。
第五周:利用PS3进行真实的CELL SDK环境配置,结合模拟环境编程和相互调试。

明天是第六次和山口老师的会议了,应该又有新的进展了。

总体上来讲,这将近一个月,还是做了很多事情,首先看了很多论文,复习了LINUX的配置,配置编程环境,和老师和实验室的同学们也增加了很多联系。

写得很简单,主要是为了方便以后写毕业设计日记,就这么多了。
还有很多论文要看,然后设计,编程,评测,论文。

IBM Cell SDK 装机总结

首先感慨一下这个新技术编程环境啊,是一个进入一个技术的大头,能配好环境,确实是一件不容易的事情啊。前前后后装了2-3天,才算差不多搞定了这个并行的编程环境。
具体这个东西是个啥,就不罗嗦了,google一下IBM CELL SDK就行了,下面就是总结一下配置的经验:
1.新电脑不一定都是好的,在台式机上先后尝试了CENT OS 5, FEDORA 9, FEDORA 12,都木有成功,首先是系统本身就有问题,一会检测不到声卡,1会检测不到网卡。这些问题解决完之后呢,开始装CELL SDK,又有各种依赖性的问题,各种包找不到,然后为了这个包,又去下另外一个包,然后又需要第N+1个包,折腾人啊。
2.网上的教程估计都是理想状态产生的吧?没有任何BUG?没有任何阻拦,全部都一气呵成,有点佩服。。。反正我是没有一次完全成功地按照教程弄好了的,都是查了无数的GUILD PDF和论坛才基本上弄明白的。
3.原来PS3也是可以用来编程的啊,在上面按照教程(这个教程是官方的PDF文档,还不错),装好了yellow dog linux,然后跑起来还算顺畅,可能是老PS3的缘故吧,速度不是很快,但是还是可以接受,特别是在命令行下面的时候。
4.版本统一是个很严重的问题,网上各种教程,各种版本,各种测试代码,搞得眼花缭乱,可能你按版本A装的东西,代码B就跑不起来,你还以为有问题。然后就是机器不同,装了的东西也不一样,笔记本是X86 32位的,台式是64位的,PS3算是PPC吧,真是稀奇古怪什么都有。
5.Linux还是一个必须要学的东西,特别是这几天配置环境,学会了用yum,很强大的命令,还有各种常用命令,哎。
先写这么多,有空再写

摄影入门知识【转帖】

数码摄影入门之一 首先要清晰

什么叫清晰,这是不是一个绝对的概念,因为我们的要求不同,我们对清晰的概念也是不一样的。这里联系到3个概念,即对焦精度、景深选择和抖动。对焦精度, 现在的dc都AF了没有什么可以说的,除非你要拍的主体不在相机的对焦范围里,或者现场极度昏暗,AF还是可以保证质量的。除非你有更高的要求,比如获得 超焦距等等,这些是高级手法,应该在无忌里讨论这里不讨论。

其次是景深,说道景深就需要给出另一个概念:弥散圆,名词解释:弥散圆:弥散圆. 在焦点前后,光线不能汇聚到一个点,点的影象变成模糊的扩大的圆形光斑,这个光斑的外圈就叫做弥散圆。显然,当弥散圆的尺寸小到一定程度后,人眼将认为其 是一个不可分辩的一个点。这时我们就会觉得在焦段前后一段距离里所有的像都是清晰的。这就产生了“景深”。景深内的弥散圆称为就称为容许弥散圆可见容许弥 散圆的概念是一个随着人观察分辩力的变化变化的,景深是随弥散圆的可接受程度在变化。

最后是抖动

说一个故事,15年前我初学摄影是在高中的兴趣小组,老师是印尼的归国华侨。那时的我根本没有兴趣听老师的理论课,仗着家境不错,就只会浪费胶片。在一段 时间的拍摄后,一次少年宫有一个摄影比赛(俺那年代惨啊,这种机会是已经极难得的展示自己的机会了)黑白片子被要求必须放大到8寸以上才可以参加。在老师 的放大机下,我的片子里的对焦不实和抖动被无情的放大到足够让我沮丧的的程度!这时我才知道老师说的那些“清规戒律”有多重要。
继续阅读

Programming with PS3

Now I have a desktop, a laptop, a sony play station 3 with 3 mouse and 3 keyboards.

Programming in Fedora 9 and Yellow Dog Linux with Cell BE SDK and IBM Cell simulator.

The main theme is develop a waiting mechanism for data driven machine and uate the mechanism.

I want to write a formal essay and publish it before I go back home.

Need to work hard now.