Programmers' Tool Chain
Total Page:16
File Type:pdf, Size:1020Kb
Reduce the complexity of programming multicore ++ Offload™ for PlayStation®3 | Offload™ for Cell Broadband Engine™ | Offload™ for Embedded | Custom C and C++ Compilers | Custom Shader Language Compiler www.codeplay.com It’s a risk to underestimate the complexity of programming multicore applications Software developers are now presented with a rapidly-growing range of different multi-core processors. The common feature of many of these processors is that they are difficult and error-prone to program with existing tools, give very unpredictable performance, and that incompatible, complex programming models are used. Codeplay develop compilers and programming tools with one primary goal - to make it easy for programmers to achieve big performance boosts with multi-core processors, but without needing bigger, specially-trained, expensive development teams to get there. Introducing Codeplay Based in Edinburgh, Scotland, Codeplay Software Limited was founded by veteran games developer Andrew Richards in 2002 with funding from Jez San (the founder of Argonaut Games and ARC International). Codeplay introduced their first product, VectorC, a highly optimizing compiler for x86 PC and PlayStation®2, in 2003. In 2004 Codeplay further developed their business by offering services to processor developers to provide them with compilers and programming tools for their new and unique architectures, using VectorC’s highly retargetable compiler technology. Realising the need for new multicore tools Codeplay started the development of the company’s latest product, the Offload™ C++ Multicore Programming Platform. In October 2009 Offload™: Community Edition was released as a free-to-use tool for PlayStation®3 programmers. Experience and Expertise Codeplay have developed compilers and software optimization technology since 1999. We have provided our technology to companies such as Qualcomm, Ageia, Movidius and further undisclosed customers. We have built a large test and QA infrastructure allowing rapid testing of our products on a wide range of source code, operating systems and processors. We are Licensed Sony Middleware providers. Expertise in compiler design: C/C++/shader front-end, optimizations, efficient code generation, enabling general purpose C/C++ programming on specialized GPU-like processors. Expertise on compiler-friendly processor architectures. 2 www.codeplay.com Products and Services at a Glance Take your C++ programs to multicore. Offload lets you easily offload code to additional processor cores. It’s non-disruptive and simple, allowing non-specialist programmers to get the most out of their code. Offload™ for Offload™ for Cell PlayStation®3 Broadband Engine™ Easily offload the most complex games code on Offload provides an effective method for one or more SPU’s. Offload for PlayStation®3 offloading the parts of your code you want to helps you make incredible games for execute on the SPE’s of the Cell Broadband Engine™. Unlock the power of the Cell PlayStation®3, without the high development processor and maximize the performance of costs and long hours. your applications. Offload™ for Multicore Embedded Services The Offload programming model can bring Codeplay’s expert programmers can help you easy-to-use C++ multi-core programming port your software to multi-core. We’ve been capabilities to the world of embedded proces- doing this for years. sors. VectorC Retargetable VectorC Shader Compiler Technology Language Compiler Need a compiler for your multi-core processor? Retargetable Shader Language compilers, for Codeplay build optimizing C/C++ and shader mobile and embedded GPU’s that require low- language compilers for unusual and memory footprints. specialized architectures using our VectorC compiler engine. www.codeplay.com 3 Offload™ Codeplay’s Offload™ is a powerful tool suite combined with a simple programming model to easily and quickly offload large sections of a complex software application onto different processor cores on a multicore CPU. Offload™ lets the compiler do the hard and tedious work offloading the code so that the programmer can concentrate on the application. Offload requires very little modification to the original source int ppu_function () { code. It offloads a section of code from a normal CPU to an int x; // x is now in shared memory accelerator processor. __offload { int y; // y is now in local memory Offload™ is based on Codeplay’s Sieve™ System, an award- y = f (&x, &y); winning system for taking existing C++ software and transforming /* ‘f’ is duplicated and called with it so that it can be compiled with multiple different C compilers and a shared-memory-pointer and distributed across multiple homogeneous or heterogeneous a local-memory-pointer */ processor cores. } } At the heart of Offload™ lies Codeplay’s patented Call-Graph Duplication technology. The Offload™ tool automatically duplicates functions in the Call-Graph that are executed on different types of processors, and intelligently adapts each function so that the data storage and movement is handled correctly for the targeted processor. This removes the need to write the same function differently for the features of each particular processor core, saving the programmer a lot of time and reducing the amount of problems that are likely to arise. Offload™ enables an incremental and non-disruptive migration of code to multicore. Just port your application in small, manageable steps and instantly see the result. This makes Offload™ ideal for porting large legacy codebases. Your application stays written in standard C++ and can be compiled by standard C++ compilers. With Offload™ your applications can be fully multi-core capable without the disruption, extra development time and inflated development costs you may otherwise encounter. For many applications, simply by offloading a section of code from the host processor to an accelerator processor using Codeplay Offload™, a user can gain a 2.5x performance boost for very little work. Offload™ Debugger 4 www.codeplay.com Offload™ for PlayStation®3 Offload™ reduces the time, cost and stress of writing a top quality game for Playstation®3. Codeplay developed Offload™ for PlayStation®3 with input from some of the world’s leading games developers. Building on our early research with the Sieve™ System we progressively implemented functionality to provide what games developers want and can use effectively in the real development of a PlayStation®3 game. Offload™ accelerating a cloth simulation Offload™: Community edition for Licensed PlayStation®3 Developers is available now. Visit http://offload.codeplay.com to register and try Offload™ today – no charge! Programmers’ Tool Chain Offload C++ C/C++ Source Source Offload Tool GCC/SNC/ Offload C++ MSVC Runtime Libraries Linker Debugger: e.g. ProDG, Visual Stdio How Offload™ fits into the Toolchain www.codeplay.com 5 Offload™ for Cell Broadband Engine™ Powered Devices The Cell Broadband Engine™ has found its way into many high-performance computing devices and is expected to appear in many other devices in the future, including consumer electronics. Offload™ can help you unlock the full power of the Cell Broadband Engine™ on whatever device it may be powering, without needing to increase your budget. Offload™ is available for Cell Broadband Engine™ powered devices running under Linux, 2009. To find out more about Linux Offload™ for The Cell Broadband Engine™ and track its availability visit http://offload.codeplay.com Offload™ for Embedded The Offload™ programming model is suitable for all heterogeneous and homogeneous multicore architectures. From powerful super-computing processors to low-cost, low-power mobile chipsets, Offload™ can help programmers easily write software applications for multi-core architectures. Achieve full multi-core performance without any extra software development costs Easily port and re-use existing software and libraries Have the software for your device ready in time for launch Ensure that 3rd party software developers have the best SDK for writing high standard applications If you are designing or already have a multi-core chip and want to ensure it has an extensive library of software applications ready for launch then contact Codeplay to discuss how we can adapt Offload™ and provide an Offload™ SDK suited perfectly to your chip or device. Multicore services Codeplay’s multi-core programming experts are available to assist you in porting your games or application to multicore. Our programmers are thoroughly experienced in porting and optimizing software to multicore with Offload™, from large open-source projects to commercial video games. Codeplay can provide you with external or on-site development assistance to suit a range of budgets. Call us on +44 131 466 0503 or email us at [email protected] to find out what we can do for you. 6 www.codeplay.com Offload™ in Microsoft Visual Studio 8 Offload™ in Eclipse CDT www.codeplay.com 7 VectorC Retargetable Compiler Technology Codeplay’s VectorC compiler platform is a highly configurable C/ C++ compiler engine that can bring full (or subset) C/C++ support to your new processor architecture. VectorC is especially well suited to mobile media processors, low-power chips and high-performance accelerator boards. VectorC technology is the result of more than 10 years of research, development and customer feedback in commercial C/C++, shader and OpenCL projects. Over the years we have adapted our optimizing compiler technology, tools and their integrations for a variety of very different