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

  • From: Jia Liu <proljc@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Thu, 16 Aug 2012 22:24:10 +0800

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之间的切换消耗比较大,很多内存操作,如果能消除一些访存,性能势必大大提高,当然,这个很难,以为我们要顾及全系统的准确模拟,一个异常就需要保存现场了。

不知道康老师有何见解啊?

> -- 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

Other related posts:

  • » [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] HelloGCC 2012 活动通知 - Jia Liu