Full Time Position

Compiler Engineer, Stream Computing

We are currently looking for a software engineer as part of the core team developing OpenCL, a new open standard for heterogonous general purpose programming, compilers for multi-core CPU and many-core graphics systems.

The engineer will be involved in all aspects of OpenCL compiler features, development and maintenance and will participate in performance tuning for new multi-core x86 and graphics hardware running on multiple operating systems. The position will involve interfacing with ASIC design engineers and architects, OS engineers and peers in related development teams.
Continue reading »

 

AMD has opening for Senior Compiler Engineer working on Open64 technology.

Please contact either Dan Tierney or myself for this position.

Senior Compiler Engineer:

AMD is seeking a compiler engineer who will work with AMD processor architects

and the AMD Open64 development team to advance the state of Open64 compiler

support for AMD microprocessors.

Location:

Portland, OR (preferred) or Sunnyvale, CA

Job Functions:

Implementation of state of the art compiler optimizations in the Open64 compiler

to improve code quality and performance.  Integration of these optimizations into

the Open64 public repository.  Performance analysis of benchmarks and real-world

applications to identify compiler code quality issues.

Preferred Education and Experience:

BS and 7+ years experience, MS and 5+ years experience, or PhD and 1+ years

experience in compiler development.  Thorough knowledge of x86, AMD64,

SSE/SSE2/SSE3/SSE4/AVX ISA.  Understanding of microarchitectural differences

between modern x86/AMD64 processors.  Working knowledge of compiler

optimizations and algorithms.  3+ years of Linux in an open source or commercial

development environment.  Very solid practical C/C++ experience.  Strong

debugging/analysis skills.  Good interpersonal and communication (written and

oral) skills.

Contact:

Dan Tierney, dan.tierney@amd.com, 408-749-5585

Website:

https://www.amd.apply2jobs.com/index.cfm

信息来源:

Open64 MailList

 

 

引言部分:

多媒体处理算法应用在很多媒体处理环境中,如对文本,手写数据,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等等。 Continue reading »
 

距离GCC 4.4的发布一年之久,GNU终于发布GCC 4.5了。新版本带来了很多新特性,包括使用MPC库在编译时完成复杂的算术计算,C++0x支持增强,使用部分Graphite完成自动并行化,支持新的ARM处理器,Intel Atom优化和调优支持,以及AMD Orochi优化支持等。今年稍晚发布的Fedora 14,Ubuntu 10.10,OpenSUSE 11.3,都将有GCC4.5,估计Gentoo马上就会有支持了,磨拳擦掌准备试用喽:)详细支持如下:

总体说明:

  • 编译GCC需要MPC库
  • 故纸堆里的旧系统和很久没有更新和测试的系统在GCC4.5中被标记为待放弃,包括IRIX, Solaris 7, Tru64 UNIX V5.1.
  • GCC4.4中标记为待放弃的支持被放弃
  • 移除Itanium 1变种支持,但Itanium2编译的程序能在Itanium1上正确执行
  • GCC生成的调试信息包括了更多DWARF 3的特性,甚至包含了DWARF4的一些特性.GDB7.0之前的版本将无法使用这些特性.所以调试GCC4.5编译的程序需要使用GDB7.0及以上版本.也可以使用选项 -gdwarf-s  -gstrict-dwarf来禁止生成DWARF4信息,或者-gdwarf-2 -gstrict-dwarf让GCC严格执行DWARF2标准.
  • X86上,浮点运算在GCC4.5上使用严格C99语法编译时,可能会运行变慢。这是为了和标准一致,可以通过选项-fexcess-precision=fast来避免严格的标准限制。
  • noinline属性不再能阻止整个函数拷贝。但可以通过新的属性noclone做到。

Continue reading »

 

这两天在折腾小例子,用来表现对语言做某种扩展后将可更高效的编程。我那蹩脚的coding技术捉襟见肘。一个小例子要言简意赅,写在半页ppt里,要有对比,有突出,又要很直观。尝试了很多次。写小例子很能考察编程能力,指针,静态,数组,寄存器变量,各个类型长度等等。要达到瞄一眼就能印象深刻,被震撼的感觉,难!

眼见为实,看下面的小例子,简单的写个循环:

[code lang="cpp"]
ip (short int* fb, short int* bb,short int* res)
{
int i=0;
for (; i< 8; i++)
res[i] = fb[i] + bb[i]+1;
}[/code]

在龙芯上用simd(单指令多数据,一条指令可以存多个数据)来实现的话,需要这么写,别忘了包含loongson.h头文件,这段代码在gcc4.3之后才支持: Continue reading »

 
  • 什么是Crossdev[I]
  • sys-devel/crossdev
    Available versions: 0.9.18-r10 ~0.9.19 **99999999
    Installed versions: 0.9.18-r10(03:44:50 PM 11/29/2009)
    Homepage: http://www.gentoo.org/
    Description: Gentoo Cross-toolchain generator

    交叉编译时很多嵌入式开发必须的工具,因为资料太少,遇到的问题又很难解决,所以交叉的开发环境一直让很多程序员头疼。我们就来了解一下gentoo下如何构建交叉编译环境。
    先说说工具链,工具链是用来组建一个系统的工具包集合,因为它们使用输入和输出连接在一起,所以称为链。通常工具链包括以下几部分: Continue reading »

     

    这是gcc maillist中某国际友人 laurent@guerby.net 做的2个小时报告的ppt,报告题目为GCC Toulibre 20091216。最近一直想深入了解gcc,而这个ppt基本包含本博想了解的内容,所以将其翻译并分享到这里。翻译过程中,很多地方可能有错,请大家不吝赐教。原版的ppt见文末。

    • 什么是GCC

    GCC–GNU Compiler Collection,即GNU 编译器集合。GCC即可作为本地编译器也能作为交叉编译器,它支持很多高级语言和多个编译和目标平台。GCC的网址 http://gcc.gnu.org.它是FSF基金会版权所有的自由软件. Continue reading »

     

    Simplnano 刚刚提交了自己后端的代码,ICT马上也要提交一部分,接下来AMD的patch也要进来了。
    性能和正确性真的不能兼顾?在研究研究吧,可能还有戏。

     

    选项 -fPIC

    PICPosition-Independent
    Code
    的缩写。在计算机系统中,PICPIE(Position-Independent
    Executable)
    是可以在主存中不同位置执行的目标代码。PIC经常被用在共享库中,这样就能将相同的库代码为每个程序映射到一个位置,不用担心覆盖掉其他程序或共享库。

    要想实现位置无关,代码必须通过特定的方式编写、编译才行。比如对于固定地址的绝对跳转指令,就需要使用相对应的相对跳转指令代替,相对位置的计算通过对指令计数器的计算得到。在某些特定的体系结构上(AMD64),共享库就必须支持PIC

    Continue reading »

    2009-2011© 编译点滴 Suffusion theme by Sayontan Sinha

    无觅相关文章插件,快速提升流量