Tag Archives: linux

前瞻-拿起SIMD的武器II

上篇文章《前瞻-主流处理器中的数据并行支持(SIMD)>和《前瞻-拿起SIMD的武器I》分别介绍了当今主流CPU中的SIMD扩展 ,以及前人是如何利用SIMD来做优化的,本文<前瞻-拿起SIMD的武器II>将探讨如何使用CPU的向量指令为程序做优化 如何实现? 编程环境 在现在CPU设计中都加入SIMD扩展并不是解决应用性能问题的好方法。如果没有很好的利用途径,再强大的SIMD扩展指令集都是徒劳。接下来,我们从编译器技术和编程方法论上探讨如何使用SIMD指令来实现应用加速。

Posted in 后端优化与处理器, 编译技术 | Tagged , , , , , , , , , , , , , , , , , , , , , , , | 6 Comments

期待未来-一张趣图

先看图 图片来自《科学松鼠会》,很棒的探索新知的网站:) 生物信息学里把DNA序列看成生物体的操作系统,这张图左侧是大肠杆菌的控制网络,右侧是Linux系统的。

Posted in 编译前沿, 编译技术 | Tagged , , , , , , , , , | 7 Comments

前瞻-主流处理器中的数据并行支持(SIMD)

引言部分: 多媒体处理算法应用在很多媒体处理环境中,如对文本,手写数据,2D/3D图形和音频对象的捕捉、制造、存储和传输等。过去 都是使用昂贵的多媒体处理硬件协同工作来加速。现在,通用处理器通过在体系结构上增加媒体处理支持来减少使用协同处理器分配和返回带来的开销。在通用处理 器上一个基本的操作能同时作用多个元素的支持成为SIMD并行处理。通过SIMD扩展,通用护理器通过捕捉多媒体算法中潜在的并行特性来加速应用。 自 Intel在Pentium II和Pentium 处理器引入了MMX技术以来,IA-32架构已经引入了许多SIMD扩展,分别是:MMX,流SIMD扩展(SSE), 流SIMD扩展(SSE2)和流SIMD扩展(SSE3),SSSE3,SSE4和高级向量扩展(AVX).这些扩展都提供了一组指令,能够为封装好的整点或浮点数据提供SIMD类型的操作。其他结构也 有自己的SIMD扩展。如AMD的3DNow!,Cell和PowerPC的AltiVec等等。

Posted in 后端优化与处理器, 编译技术 | Tagged , , , , , , , , , , , , , , , , , , , , , , , | 6 Comments

风河北京研发中心招编译器研发工程师

职责:负责风河编译器的维护和新需求的开发。 要求:至少计算机相关专业毕业本科以上学历,三年以上编译器相关开发经验,有GCC或LLVM编译器的相关开发经验更佳。 符合条件且对这个职位感兴趣的XDJM请发中英文简历至liyong.zeng@windriver.com. 转自 ChinaUnix http://linux.chinaunix.net/bbs/viewthread.php?tid=1162208

Posted in IT职业和生活, 编译器相关招聘信息 | Tagged , , , , , , | 1 Comment

Gentoo安装texlive2009–字体

texlive毕竟是老外写的,不过很幸运我们有ctex.org社区。Windows下的支持,在他们的努力下,非常方便。两年前用的时候,直接下载安装包。编译tex文件时,自动下载缺的宏包。 但可惜linux下就不容易了。再加上字体的版权问题,实在头疼!不过幸好texlive2009增强了对字体的支持,所以简单了很多:)下面介绍本博在折腾中易字体时的经验,包括youyuan,simfang,simsun,lishu,simhei,simkai六种字体。 首先,到windows/fonts/目录下找,看是否可以直接拷贝这几款字体,如果没有,可以从这里下载。拷贝到目录~/texmf/fonts/truetype/sim下。 拷贝字体之后,还需要做个格式转换,把windows字体转换为texlive可用的字体,请参考Linuxsir.org的帖子 然后,下载ctex-kit. cd ~/texmf/tex/latex svn checkout http://ctex-kit.googlecode.com/svn/trunk/ctex

Posted in 编译技术 | Tagged , , , , , , , , | Leave a comment

为龙芯电脑安装操作系统常见问题

本博在实际工作中,曾经安装过不少龙芯电脑的系统,可谓稍有经验,这里略微介绍一些常见问题。 内核通用吗?一般龙芯2F使用MIPSIII的指令级,内核格式都为64位的文件。所以不管时O32系统还是N32系统,只要硬件相同都是通用的,不过别忘了连同/lib/modules 和/lib/firmware一起使用:) 龙芯到底有多少种系统?很多,按照ABI分为3类:O32,N32,N64.O32是出厂时自带的系统,一般龙芯盒子中的华镭,龙芯本中的loonux、红旗和龙芯一体机中的共创都是O32系统。这类系统基本都是在debian的基础上做做山寨化。当然也有英文版的debian系统,这个比较干净一些。对于O32的系统,源的问题最头疼,因为各个公司画地为牢,大家都努力维护自己的源,又都缺人手,所以都不完美,试了几个都不太好,装着装着就会出依赖问题,除非一直跟着升级,不然一次apt-get dist-upgrade,那简直是噩梦。N32的系统,zhllg基于Gentoo的已经有了,龙芯论坛里就能找到下载链接。因为Gentoo是自己直接编译,问题相对少些。debian的还没有。N64的系统,有憨牛LFS的,没有试过。至于为啥会有这么多系统,得问问MIPS,因为有不少改进,就产生了不少问题。请参考本博<好大一筐梅普斯>.N32系统据说比O32快20%-30%。因为龙芯本身是64位处理器,所以64位系统也没问题.

Posted in 编译技术 | Tagged , , , , , , , , , , , , , , | 9 Comments

GNU工具链学习笔记

1..so为动态链接库,.a为静态连接库。他们在Linux下按照ELF格式存储。ELF有四种文件类型。可重定位文件(Relocatable file,*.o,*.a),包含代码和数据,可用来连接成可执行文件或共享目标文件;可执行文件(Executable File),ELF可执行文件;共享目标文件(Shared Object File,*.so),包含代码和数据;核心转储文件(Core Dump File),进程意外终止时,系统将该进程的地址空间内容和其他信息保存到该文件中。 file命令可以查看。 2,Objdump程序,来自binutils,可以查看Object file内的结构。-h:打印各个段基本信息;-s所有段内容以16进制打印;-d:将所有包含指令的段反汇编。 3, ar -t libc.a;查看libc.a压缩了那些.o文件。 4, collect2 是ld连接器的包装,它调用ld链接目标文件,并对结果做处理,包括收集所有与程序初始化相关的信息并构造初始化结构。 5,readelf:查看ELF文件。 -s:打印符号信息;

Posted in GCC, 编译技术, 编译理论实践和应用 | Tagged , , , , , , , , | 2 Comments

WebKit和Firefox的JavaScript性能对比

严格的说WebKit仅仅是个浏览器核心,采用该核心的浏览器很多,如国内的搜狗浏览器,遨游浏览器。其他的如google的chrome(Windows平台,linux平台下为chromium),epiphany(linux平台下,gnome2.28版本之后),苹果的Safari 都采用了webkit的内核。Firefox则是采用Gecko的内核,这是NetScape公司开发的内核,后来开源,mozilla继续开发。另外,现在还有另外两种常见的浏览器内核,Trident主要用在IE系列上,Presto主要用在Opera上。 这篇文章仅仅针对浏览器处理JavaScript的性能作比较,主要在X86平台和龙芯平台。先来解释一下JavaScript,JavaScript是互联网内较为常用的脚本语言,面向对象,主要在浏览器内解释执行,用于生成动态网页,因为很多语言特性受Java影响,所以叫JavaScript。通过JavaScript,浏览器可以运行服务器想要在访问者终端上运行的一些计算程序,以达到更好的浏览体验。

Posted in Linux系统, 编译技术 | Tagged , , , , , , , , , , , , , , , , , , , , | 8 Comments

小例子–回眸一笑百媚生

这两天在折腾小例子,用来表现对语言做某种扩展后将可更高效的编程。我那蹩脚的coding技术捉襟见肘。一个小例子要言简意赅,写在半页ppt里,要有对比,有突出,又要很直观。尝试了很多次。写小例子很能考察编程能力,指针,静态,数组,寄存器变量,各个类型长度等等。要达到瞄一眼就能印象深刻,被震撼的感觉,难! 眼见为实,看下面的小例子,简单的写个循环: [code lang="cpp"] ip (short int* fb, short int* bb,short int* res) { int i=0; for (; i&lt; 8; i++) res[i] = fb[i] + bb[i]+1; }[/code] 在龙芯上用simd(单指令多数据,一条指令可以存多个数据)来实现的话,需要这么写,别忘了包含loongson.h头文件,这段代码在gcc4.3之后才支持:

Posted in 编译技术, 编译理论实践和应用 | Tagged , , , , , , , , , , , , , , , , , | 9 Comments

暴力了一把

要在玲珑电脑上安装qtcreator,发现默认的源,同创的完全连不上,龙梦的没有想要的东西。又从盒子里拷了rays的源还是没有qtcreator。。。。。。 龙芯的源太混乱了,大家都在维护自己的,倒不如都按照debian的标准来做,画地为牢太劳民伤财了,一起努力做好一个源就不错了。 推荐一个现在在用的源,unstable的: deb ftp://210.51.187.182/loongson2f/sid/ ./ deb-src ftp://210.51.187.182/loongson2f/sid/ ./ deb ftp://210.51.187.182/debian sid main non-free contrib deb-src ftp://210.51.187.182/debian sid main non-free contrib

Posted in Linux系统 | Tagged , , , , , , , , | 1 Comment