[hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] HelloGCC 2012 活动通知

  • From: "Michael.Kang" <blackfin.kang@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Fri, 17 Aug 2012 18:20:44 +0800

2012/8/17 Jia Liu <proljc@xxxxxxxxx>:
> 2012/8/16 Michael.Kang <blackfin.kang@xxxxxxxxx>:
>> 2012/8/16 Jia Liu <proljc@xxxxxxxxx>:
>>> 2012/8/16 Michael.Kang <blackfin.kang@xxxxxxxxx>:
>>>> 2012/8/16 Jia Liu <proljc@xxxxxxxxx>:
>>>>> 2012/8/16 Michael.Kang <blackfin.kang@xxxxxxxxx>:
>>>>>> 2012/8/16 Jia Liu <proljc@xxxxxxxxx>:
>>>>>>> 2012/8/16 Michael.Kang <blackfin.kang@xxxxxxxxx>:
>>>>>>>> 2012/8/16 Jia Liu <proljc@xxxxxxxxx>:
>>>>>>>>> 2012/8/16 Michael.Kang <blackfin.kang@xxxxxxxxx>:
>>>>>>>>>> 我代表我们的团队希望以全系统模拟器的方面的话题参与
>>>>>>>>>> HelloGcc,主要希望向大家介绍我们最近的一些成果,得到
>>>>>>>>>> 大家的一些帮助和建议。暂定题目如下:
>>>>>>>>>>
>>>>>>>>>> 题目:  更快的android模拟器
>>>>>>>>>> 内容:
>>>>>>>>>>         我们使用了以LLVM为中间语言的动态二进制翻译技术
>>>>>>>>>> 作为我们全系统模拟器的指令执行引擎,并且根据全系统模拟
>>>>>>>>>> 的特点做了多种优化,最后给出相关性能分析以及性能测试数据。目前我们的全系统模拟器已经可以正确的运行android
>>>>>>>>>> 3.0系统,以及一些典型应用如Angry Bird等。通过nbench, Dhrystone,
>>>>>>>>>> whetstone等性能测试用例的初步分析,指令执行速度比已有的android官方模拟器有一定提高。
>>>>>>>>>>           其中会和大家讨论和分析一些优化的技术:
>>>>>>>>>>            * 混合执行的翻译策略问题
>>>>>>>>>
>>>>>>>>> 混合执行是什么?能不能解释一下啊?
>>>>>>>> 我们用一个快速的解释执行来执行非热点的代码,对于一些
>>>>>>>> 热度比较高的代码,则使用llvm的动态编译技术执行。
>>>>>>>
>>>>>>> 怎么分辨的 热点 啊?能稍微解释下么?我也是QEMU的官方开发人员,不外行的,希望康老师几句话切中要害。
>>>>>>>
>>>>>> 哦,分辨热点就是开始执行的时候用快速解释执行,在执行过程中统计基本块的执行次数。动态二进制翻译做profiling,
>>>>>> 按照我读的一些论文中的归类,分为三类:BB的Profiling,即基本块的profiling,
>>>>>> edge的profiling,即相互有链接几个BB的profiling,还有path或者trace的profiling。BB的范围最小,PATH的范围最大。这个技术应该是和Java的HotSpot(http://java.sun.com/products/hotspot/)是类似的。
>>>>>>
>>>>>> 我们目前实现的是BB的Profiling,即一个基本块的执行次数是否到达一定阈值,如果达到了,就是热点,然后启动动态编译模块去对热点的BB进行翻译。
>>>>>>
>>>>>> 其实我们也实现了trace的profiling ,但是效果不太好,目前发现和BB
>>>>>> Profiling效果差不多。主要是trace的profiling本身有些复杂,也要占用运行时间。还需要进一步研究。
>>>>>>
>>>>>
>>>>> 确实高科技啊。
>>>>>
>>>>> 我觉得LLVM的调度在里面起的作用不大,提高性能的主要手段还是
>>>>> 让翻译过的热点代码常驻内存,不知道skyeye什么情况,QEMU每个TB之间的切换消耗比较大,很多内存操作,如果能消除一些访存,性能势必大大提高,当然,这个很难,以为我们要顾及全系统的准确模拟,一个异常就需要保存现场了。
>>>>>
>>>> 我们现在翻译块的内存管理很粗糙,把所有翻译过的BB都放在内存里了。Android运行的时候,要占用2G的主机内存。
>>>>
>>>> QEMU的访存已经很高效了,貌似这个问题今年在qemu邮件列表中已经讨论过几次。如下:
>>>> http://lists.gnu.org/archive/html/qemu-devel/2012-06/msg02015.html
>>>> http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg03336.html
>>>>
>>>> 现在一条访存指令翻译成host指令,大概是12条左右。所以内存访问的模拟还是占很大开销,这个韦任可能了解的更清楚一些。如果想再进一步优化,就得用比较极端的手段了。
>>>>
>>>
>>> skyeye现在能达到host性能的多少啊?或者,比QEMU-ARM快多少啊?
>>>
>> 用户态模拟,我们目前采用的测试用例是eembc中的cjpeg 1000次迭代。大概是QEMU的2倍多一些。
>>
>> 系统级别的模拟,我在android系统中图形下的nbench测试要比Qemu慢。在android系统中命令行下用nbench测试,大概要比Qemu快50%。
>>
>> 不过,这些测试数据只是简单的测了测,不一定准确,还需要进一步的分析。比如我们目前没有模拟goldfish,只模拟了s3c6410,所以很多测试结果也说不好。等到给大家做报告的时候,我们争取花一些时间把这些测试结果认真的整理分析一下。
>>
>
> benchmark... 大家都懂的,我只关心实现原理和思路,这个才是高科技。skyeye现在开源么?哪里能找到代码学习一下啊?
>
地址如下:
http://skyeye.git.sourceforge.net/git/gitweb.cgi?p=skyeye/skyeye;a=shortlog;h=refs/heads/dyncom_arm_ppc

目前还在开发中,还在不断的整理。主要是在ubuntu和OpenSuse两个系统上测试。

-- MK


>> -- MK
>>> 我就是随便问问,期待学习你们的先进高科技
>>>
>>>>> 不知道康老师有何见解啊?
>>>> 不要叫老师了,现在连理发店里干活的人都是老师。我和大家都是代码民工一枚,混口饭吃。
>>>>
>>>> -- MK
>>>>
>>>>
>>>>>
>>>>>> -- MK
>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>            * TLB以及内存访问优化技术,包括我们实现的技术和qemu已有的技术
>>>>>>>>>>            * 指令翻译块的划分等等。
>>>>>>>>>
>>>>>>>>> 韦任那边,LLVM为后端的QEMU,性能能达到host的1/3,相信大家都很期望相互了解对方的工作。看来今年模拟器的话题很多啊
>>>>>>>>>
>>>>>>>> 我和韦任在一些技术细节上已经相互私下交流过多次,受益菲浅。我理解他们做的工作应该是qemu动态编译器做非热点的快速执行,热点代码用llvm的动态编译,应该也是一种混合执行的方式。
>>>>>>>
>>>>>>> 明天我问问他,区分 热点 这个技术很高科技啊。
>>>>>>>
>>>>>>>>
>>>>>>>> -- MK
>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -- 康烁
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2012/8/8 Mingjie Xing <mingjie.xing@xxxxxxxxx>:
>>>>>>>>>>> 大家好,
>>>>>>>>>>>
>>>>>>>>>>> 以下是今年的活动通知,欢迎大家提出建议,比如活动的名称(还是HelloGCC 2012?或者Open Source Tools
>>>>>>>>>>> ...),时间,形式,以及通知本身的内容和写法。
>>>>>>>>>>>
>>>>>>>>>>> HelloGCC 2012 活动通知
>>>>>>>>>>>
>>>>>>>>>>> HelloGcc工作组由自由软件爱好者和自由软件工作者于2007年在北京成立,旨在营造一个自由,开放,共享的技术社区,讨论GNU底层系统工具(包括GCC,GDB,BINUTILS等),以及其它开源工具(比如LLVM,QEMU等等)的技术知识,为工作和学习提供帮助,并为自由软件社区做出贡献。
>>>>>>>>>>>
>>>>>>>>>>> 我们每年都会举办一次技术讨论会。今年的活动暂定为在10月底举办(具体时间,地点待定)。现在向大家提前发出征稿通知,如果你有兴趣来做相关的技术话题报告,欢迎提前与我们联系。话题范围包括:
>>>>>>>>>>>
>>>>>>>>>>>   * 原创工作,或者对他人工作的介绍
>>>>>>>>>>>   * 研究性的,或者工程性的
>>>>>>>>>>>   * 代码讲解,程序演示
>>>>>>>>>>>   * 等等
>>>>>>>>>>>
>>>>>>>>>>> 我们只需要提前获得演讲者的幻灯片(并经演讲者同意后,发布在网上)。如果你打算同时提供文字稿件,当然更好。整个活动是免费的,我们希望能够获得一些赞助,以用于对演讲者提供酬谢和对社区的发展提供支持。投稿,赞助,以及其它活动相关的事宜,请发送邮件到邮件列表:
>>>>>>>>>>>
>>>>>>>>>>>   * hellogcc@xxxxxxxxxxxxx
>>>>>>>>>>>
>>>>>>>>>>> 在邮件列表中讨论。
>>>>>>>>>>>
>>>>>>>>>>> 附注:
>>>>>>>>>>>
>>>>>>>>>>> 2011年演讲话题:
>>>>>>>>>>>
>>>>>>>>>>> 1、Introduction to GCC Backend
>>>>>>>>>>> 2、GNU Tools for ARM Embedded Processors
>>>>>>>>>>> 3、多核时代更快断点 -- Displaced stepping以及对Thumb-2指令集的实现
>>>>>>>>>>> 4、TCG与LLVM生成二进制代码性能分析
>>>>>>>>>>> 5、走进GCC插件时代
>>>>>>>>>>>
>>>>>>>>>>> 2010年演讲话题:
>>>>>>>>>>>
>>>>>>>>>>> 1、内存管理机制与优化
>>>>>>>>>>> 2、调试器的断点机制的探讨
>>>>>>>>>>> 3、针对嵌入式CPU的Binutils移植
>>>>>>>>>>> 4、GCC编译器图形化实现与讨论
>>>>>>>>>>> 5、How To Port GNU ToolChain
>>>>>>>>>>> 6、Linux Kernel GDB tracepoint module演示
>>>>>>>>>>>
>>>>>>>>>>> 2009年演讲话题:
>>>>>>>>>>>
>>>>>>>>>>> 1、使用GCC编译器分析和优化程序的数据局部性
>>>>>>>>>>> 2、GCC Internals and Porting
>>>>>>>>>>> 3、gdbproxy: An open source GDB stub for Blackfin
>>>>>>>>>>> 4、GDB reverse debug and process record and replay target
>>>>>>>>>>>
>>>>>>>>>>> 交流平台:
>>>>>>>>>>>
>>>>>>>>>>> * 博客地址,http://www.hellogcc.org
>>>>>>>>>>> * 邮件列表,//www.freelists.org/archive/hellogcc
>>>>>>>>>>> * IRC房间, #hellogcc(freenode)
>>>>>>>>>>>
>>>>>>>>>>> 谢谢
>>>>>>>>>>> 邢明杰
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> www.skyeye.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> www.skyeye.org
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> www.skyeye.org
>>>>
>>>>
>>>>
>>>> --
>>>> www.skyeye.org
>>
>>
>>
>> --
>> www.skyeye.org



-- 
www.skyeye.org

Other related posts:

  • » [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] HelloGCC 2012 活动通知 - Michael.Kang