C++ Accessor Classes for Heterogeneous Multicore

Click here to apply for this internship.

Affiliated to

C++ Accessor Classes for Heterogeneous Multicore

Location

Edinburgh, Scotland

Timing

3 months, timing negotiable

Description

As core counts on a processor increase, memory bandwidth becomes an increasingly serious problem. There are a range of different solutions to this problem that are implemented in hardware: prefetching, DMA or local memories. Software developers (particularly game developers, some of Codeplay's core users) need to write portable C++ software that runs on processors with these different solutions, and achieve high memory bandwidth. One solution that Codeplay uses for this, we call "accessor classes." These are special classes that describe how a data structure will be accessed and have hidden implementations of the most efficient accesses for each architecture.

A description of a simple Codeplay accessor class is here: http://offload.codeplay.com/knowledgebase/common/optimizations/117?task=view

This project is to write C++ accessor classes for a variety of data structures and platforms. Likely data structures are: C++ Vectors and Maps, and likely platforms are: PlayStation 3, XBox 360 and PC.

The outcome of this project will be the ability to easily increase memory bandwidth on complex C++ software, for which there are currently a limited number of simple solutions (and a lot of complex solutions.)

Requirement for this internship is a solid understanding of:
- C++ and template libraries
- memory architectures
- software optimization

(Applicants will not be required to have already developed on games consoles. You will be learning this during the project)





<< Go back to Industrial Internship Home Page