免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: prolj
打印 上一主题 下一主题

[zz]高性能Linux Kernel项目—LinuxDNA [性能真的提高 40%?] [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
11 [报告]
发表于 2009-03-02 12:56 |只看该作者
原帖由 albcamus 于 2009-3-2 12:42 发表



而且, icc之所以可以编译某些特定版本的kernel, 也是因为它对gcc做了选项和语法上的全面兼容。

即使这样,也不是每个kernel版本都可以用icc编译的。

不过我怀疑不是icc去支持gcc语法、选项,而是去修改代码,包括C源码、makefile。

论坛徽章:
0
12 [报告]
发表于 2009-03-02 13:01 |只看该作者
原帖由 albcamus 于 2009-3-2 12:27 发表
icc估计更多microarchitecture 级别的优化, 而不是通用的优化。 Intel的icc开发工程师也有很多给gcc的x86 backend提补丁的

opensolarsi上编译gcc不麻烦,我就在用gcc 4.3.1呢。 我的笔记,仅供参考:
44) 在Solaris/x86 上编译gcc
    (注意,只针对4.0以及更新的gcc)
    准备:

恩,这个我准备好好看看 intel 的那一卷优化手册。
我就是编译 libmpfr 和 libgmp 的时候出错了,没心思找那个原因。那个软件管理器里面没发现我才编译的,算了不关心了, KUbuntu 非常好用, Solaris 那优秀的 Kernel 和 Dtrace 对我一点吸引力都没有。
想跟你问一下,那个 OpenSolaris 的 ISO 上是 x86 和 x64 的内核都有,那么我装在 x64 上的时候,内核是 x64 的, app 呢? SUN 这个 x86 的概念让我很浆糊。它在一个 ISO 里面有两套内核,不会也有两套 app 吧?
btw ,你现在在写东西?看你有好多笔记。
btw btw ,那个 md 文件的最详细描述在 internals 里面。

论坛徽章:
0
13 [报告]
发表于 2009-03-02 13:03 |只看该作者

回复 #11 cjaizss 的帖子

icc 是购买的一个小公司的前端,好像还有几个商业编译器也都是买的那一家的,的确是号称“全面兼容 GCC ”当然后端兼容靠他们自己,那个卖前端的公司只能兼容那些 BT 的 GNU 扩展

据说有 GNU/Linux distro 用 ICC 编译的,但是我用过之后觉得一点都不快,反而很慢,这个不是说 ICC 不好,想必有其他原因。

[ 本帖最后由 prolj 于 2009-3-2 13:18 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2009-03-02 14:02 |只看该作者

回复 #12 prolj 的帖子

几年前就记笔记了, 总计有:

linux:

kernel

tips

programming

arch

acpi

hardware

english

solaris tips

solaris kernel

$ wc -l *
  1372 linux_acpi.txt
  2633 linux_arch.txt
   420 linux_english.txt
   572 linux_hardware.txt
  6902 linux_kernel.txt
  3150 linux_programming.txt
  6994 linux_tips.txt
   806 solaris_kernel.txt
   403 solaris_mdb.txt
  2496 solaris_tips.txt
25748 total

论坛徽章:
0
15 [报告]
发表于 2009-03-02 14:52 |只看该作者
关注ls各位大拿的讨论.

论坛徽章:
0
16 [报告]
发表于 2009-03-02 15:33 |只看该作者
原帖由 albcamus 于 2009-3-2 14:02 发表
几年前就记笔记了, 总计有:

linux:

kernel

tips

programming

arch

acpi

hardware

english

solaris tips

solaris kernel

$ wc -l *
  1372 linux_acpi.txt
  2633 linux_ ...

提供匿名 svn 访问不?我们都学习学习你的积累

论坛徽章:
0
17 [报告]
发表于 2009-03-02 23:05 |只看该作者

回复 #16 prolj 的帖子

不够丢人的……

论坛徽章:
0
18 [报告]
发表于 2009-03-03 00:14 |只看该作者
如期说改进gcc还不如就用集群编译来的更容易。提高可以更大。
对于一般用户,就算编译慢点也是无所谓的

论坛徽章:
0
19 [报告]
发表于 2009-03-03 00:39 |只看该作者

回复 #18 emmoblin 的帖子

这里说的不是编译速度,而是编译出来的结果,运行的速度。

论坛徽章:
0
20 [报告]
发表于 2009-03-03 00:46 |只看该作者
原帖由 emmoblin 于 2009-3-3 00:14 发表
如期说改进gcc还不如就用集群编译来的更容易。提高可以更大。
对于一般用户,就算编译慢点也是无所谓的

有一个叫 distcc 的东西,但是对代码质量一点提高都没有
改进 GCC 不仅仅是提高编译速度,看现在的开发分支吧
Active Development Branches
General Infrastructure

var-tracking-assignments-branch
    This branch aims at improving debug information by annotating assignments early in the compilation, and carrying over such annotations throughout optimization passes and representations. This branch is maintained by Alexandre Oliva. This branch is now tracking GCC 4.4; a separate 4.3 branch was maintained for some time, but there are no plans to maintain it any further.
struct-reorg-branch
    This branch is for the development of structure reorganization optimizations, including field reordering, structure splitting for trees. These optimizations are profile information driven. This is a subbranch of tree-profiling. This branch is being maintained by Caroline Tice, Dale Johannesen, Kenneth Zadeck, Stuart Hastings, Mostafa Hagog.
autovect-branch
    This branch is the successor to the lno-branch. The purpose of this branch is tree-level autovectorization work, and related work that the autovectorizer could use or benefit from (like data-dependence analysis, loop nest optimizations).
graphite-branch
    The purpose of this branch is to develop an infrastructure for loop transforms using the polyhedral model.
lto
    This branch aims to implement link-time optimization. Patches and discussion on this branch should be marked with the tag [lto] in the subject line.
boehms-gc
    The goal of this branch is to test Boehm's GC feasibility as the garbage collector for GCC proper. This is a part of Google Summer of Code project, described in detail at http://gcc.gnu.org/wiki/Garbage_collection_tuning. The branch is maintained by Laurynas Biveinis.
ra-improvements
    This branch aims to implement several improvements to the current register allocator. Examples include implenting a lower-triangular conflict matrix and register coalescing. It is hoped that these improvements will not only help the current allocator, but will be useful to the other register allocation projects such as RABLE and YARA. This branch will be merged with the dataflow-branch from time to time. The patches for this branch should be marked with the tag [ra-improvements] in the subject line. The branch is maintained by Peter Bergner.
ira
    This branch contains the Integrated Register Allocator (IRA). It is based on work done on yara-branch. The latter is more of a research branch because one of its goals (removing reload) is too remote. The ira branch is focused to prepare some code for GCC mainline, hopefully in time for GCC 4.4. IRA still uses reload; it is called integrated because register coalescing and register live range splitting are done on-the-fly during coloring. The branch is maintained by Vladimir Makarov < vmakarov@redhat.com> and will be merged with mainline from time to time. Patches will be marked with the tag [ira] in the subject line.
ira-merge
    This branch contains bug fixes for the Integrated Register Allocator (IRA). It is branched from trunk at revision 139590 when IRA was merged into trunk. It is used to track IRA related regressions. Only IRA fixes from trunk will be applied to this branch. Its goal is there should be no "make check" and performance regressions against trunk at revision 139589. The branch is maintained by H.J. Lu <hjl.tools@gmail.com> and Vladimir Makarov < vmakarov@redhat.com>.
sel-sched-branch
    This branch contains the implementation of the selective scheduling approach. The goal of the branch is to provide more aggressive scheduler implementation with support for instruction cloning, register renaming, and forward substitution. The branch is maintained by Andrey Belevantsev <abel@ispras.ru> and Maxim Kuvyrkov < mkuvyrkov@ispras.ru> and will be regularly merged with mainline. Patches will be marked with the tag [sel-sched] in the subject line.
incremental-compiler
    This branch contains change to turn GCC into an incremental compiler. The branch is maintained by Tom Tromey tromey@redhat.com. Patches for this branch should be marked with the tag [incremental] in the subject line.
gc-improv
    This branch is for the development of garbage collector improvements. It is the successor to the boehm-gc branch, but without integration with Boehm's GC. The branch is maintained by Laurynas Biveinis.
milepost-branch
    This branch is for GCC developments done in the Milepost project. (http://www.milepost.eu). The branch is maintained by Mircea Namolaru namolaru@il.ibm.com. Patches should be marked with the tag [mpost] in the subject line.
melt-branch
    This branch is for a Middle End Lisp Translator branch, including both the plugin Lisp-like facility and static analyzers developped with it. This branch is maintained by Basile Starynkevitch basile@starynkevitch.net. Use the [MELT] tag for patches.
var-mappings-branch
    This branch is for improving debug information based on tracking multiple variables per computed value. The branch is maintained by Richard Guenther and Michael Matz. Patches should be marked with the tag [varmap] in the subject line.
stack
    This branch contains a new stack alignment framework to automatically align stack for local variables with alignment requirement. The branch is maintained by H.J. Lu <hjl.tools@gmail.com>, Joey Ye <joey.ye@intel.com> and Xuepeng Guo <xuepeng.guo@intel.com>. Patches should be marked with the tag [stack] in the subject line.
mem-ref
    This branch is for lowering the GIMPLE IL for memory accesses to a flat representation. See the GCC wiki for a more detailed project description. The branch is maintained by Richard Guenther. Patches should be marked with the tag [mem-ref] in the subject line.
gcc-in-cxx
    This branch is for converting GCC to be written in C++. Patches should be marked with the tag [gcc-in-cxx] in the subject line. This branch operates under the general GCC maintainership rules, except that any non-algorithmic maintainer is additionally permitted to approve changes which permit compilation with C++. The branch is maintained by Ian Lance Taylor.
thread-annotations
    This branch contains the implementation of thread safety annotations and analysis (http://gcc.gnu.org/wiki/ThreadSafetyAnnotation). The branch is maintained by Le-Chun Wu. Patches and discussion on this branch should be marked with the tag [thread-annotations] in the subject line.
rtl-fud-branch
    This branch is for the development of factored use-def chains as an SSA form for RTL. Patches should be marked with the tag [rtl-fud] in the subject line. The branch is maintained by Steven Bosscher and Kenneth Zadeck.
alias-improvements
    This branch is for fixing the optimizers to efficiently work with a single alias symbol and for stripping the operand scanner, data-structures and alias computation according to this simplification. Patches should be marked with the tag [alias] in the subject line. The branch is maintained by Richard Guenther.
transactional-memory
    This branch is for the development of transactional memory support for gcc. Patches for this branch should be marked [trans-mem] in the subject line. The branch is maintained by Richard Henderson.
c-4_5-branch
    This branch is for C standards conformance improvements for GCC 4.5. Patches for this branch should be marked [4.5 C] in the subject line. The branch is maintained by Joseph Myers.
named-addr-spaces-branch
    This branch is the development branch to add named address space support for architectures that have multiple address spaces. The CELL/spu architecture adds an __ea keyword to describe extended memory in the host chip address space instead of the local CELL/spu address space. The branch was created by Ben Elliston, and is now maintained by Michael Meissner.
dwarf4
    This branch is for support of DWARF-4 features. DWARF-4 is currently under development, so changes on this branch will remain experimental until Version 4 is officially finalized.
plugins
    This branch adds plugin functionality to GCC. See the plugins wiki page for details.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP