Codeplay

Codeplay

Codeplay Software Limited is a compiler and software tools developer based in Edinburgh, Scotland. Codeplay develop C/C++ compilers for multi-core and special purpose processor architectures, offering their Sieve C++ Multicore Programming System as a means to easily write C/C++ code for acceleration on multicore chips. They also build bespoke C/C++ compilers for customers, using their VectorC Retargetable Compiler Engine.

Codeplay is a contributing member of the Multicore Association and the Khronos Group.

Contents

History

Codeplay was set up in 2002 by Andrew Richards, an experienced games developer (formerly head of Software Development at Eutechnyx) who believed there was a need for development tools that could keep up with advances in processor technology. Initial funding for the company was provided by Jez San OBE, founder of Argonaut Games and ARC International. Jez San is also currently the majority shareholder. Codeplay began its business developing compilers aimed at games programmers, releasing its VectorC compiler for PlayStation 2 and x86 Windows PC in 2001. In 2005 Codeplay shifted focus to developing bespoke C/C++ compilers for processor designers.

Codeplay have also conducted extensive research and development into building tools in aiding multicore software development.

Products

Codeplay's current product lineup is focused on providing bespoke C/C++ compilers and tools to processor designers. Codeplay's core technologies include:

Sieve C++ Multicore Programming System

The Sieve C++ Multicore Programming System is a tool set that allow programmers to quickly and easily adapt existing C and C++ software, or write new software, to take advantage of new multi-core processor architectures.

VectorC

VectorC is a Retargetable C/C++ compiler engine used to create C and C++ compilers for custom-built processor architectures.[1] Codeplay describes VectorC as being optimized for SIMD processors, DSP's, vector units and multi core processors.

VectorC, as its name suggests, was designed from the outset to exploit vectorization. It can automatically take advantage of advanced CPU 'vector' units via SIMD instruction such as MMX, SSE/SSE2, 3D Now and Altivec. VectorC is based around a common optimization core so that all appropriate existing optimizations can be used on the new target architecture it is being customized for. The Optimizer can query the back-end to see what optimizations are possible or suitable on the target.

VectorC also supports C++ to C compilation through a ANSI C compliant back-end. This enables the compilation of C++ code, with or without additional language extensions, to any architecture where a C compiler already exists. This feature is used in Codeplay's Sieve C++ Parallel Programming System to generate parallelized code that can be ported to any multicore architecture with a native C compiler.

Codeplay state that VectorC performs all the standard non-vector optimizations expected from high-performance compilers.

The VectorC engine has been designed to cope with multiple memory spaces, distributed latencies and an optimize data-movement using double-buffered streaming DMA when required, in addition to standard write combining and prefetching functions. There is support for Software pipelining, automatically parallelizing loops on pipelined architectures.

VectorC has extensive support for portable intrinsic functions, letting users write complex vector operations as built in functions. These are converted into the best combination of instructions on each architecture that the source code is compiled for.

Codeplay continues to offer VectorC based custom compilers to clients. VectorC is also described by Codeplay as being the basis of Sieve C++ Multicore Programming System.

Retargetable Shader Compiler

Based on VectorC technology, the Retargetable Shader Compiler offers customized high performance shader language compilers for use in programmable GPU's and embedded devices.

References

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Sieve C++ Parallel Programming System — The Sieve C++ Parallel Programming System is a C++ compiler and parallel runtime designed and released by Codeplay that aims to simplify the parallelization of code so that it may run efficiently on multi processor or multi core systems. It is an …   Wikipedia

  • STLSoft C++ Libraries — infobox software name = STLSoft C++ Libraries caption = latest release version = 1.9.57 latest release date = release date|2008|10|10 programming language = C/C++ operating system = MS Windows, Unix, partially Cross platform genre = STL extension …   Wikipedia

  • MMX-Technologie — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Matrix Math Extensions — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Multi Media Extension — Intel Prozessor mit MMX Die Multi Media Extension (kurz MMX) ist eine Anfang 1997 von Intel auf den Markt gebrachte Rechnerarchitektur, die es erlaubt, größere Datenmengen parallelisiert und somit schneller zu verarbeiten. Die… …   Deutsch Wikipedia

  • Jez San — Jeremy Jez San OBE (born 29 March 1966) is an English game programmer who founded Argonaut Software as a teenager in the 1980s. He is also a writer and helped design the Super FX chip for the Super NES.BiographySan s interest in computing began… …   Wikipedia

  • Physics processing unit — A physics processing unit (PPU) is a dedicated microprocessor designed to handle the calculations of physics, especially in the physics engine of video games. Examples of calculations involving a PPU might include rigid body dynamics, soft body… …   Wikipedia

  • Multi-core — A multi core processor (or chip level multiprocessor, CMP) combines two or more independent cores into a single package composed of a single integrated circuit (IC), called a die, or more dies packaged together. The individual core is normally a… …   Wikipedia

  • Coeur (microprocesseur) — Microprocesseur multi cœur Pour les articles homonymes, voir Cœur (homonymie), Dual, Quad, Tetra et Core. Un microprocesseur multi cœur (multi core en anglais) est un processeur possédant plusieurs cœurs physiques. Sommaire …   Wikipédia en Français

  • Cœur (microprocesseur) — Microprocesseur multi cœur Pour les articles homonymes, voir Cœur (homonymie), Dual, Quad, Tetra et Core. Un microprocesseur multi cœur (multi core en anglais) est un processeur possédant plusieurs cœurs physiques. Sommaire …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”