ClearSpeed Technology has used the ACE (Associated Compiler Experts) compiler development system CoSy to develop a high-performance, parallelising compiler for its accelerator product line that includes the CSX600, a multi-threaded array coprocessor.
Based around the CSX600, the ClearSpeed Advance accelerator cards (PCI-X and PCIe form factors) provide low-power, high-performance co-processing capabilities for a wide spectrum of numerically intensive disciplines.
The CSX600 is a parallel processor architecture with a SIMD data path with 96 processing elements, each equipped with a dual 64â€‘bit FPU, local registers and local memory.
‘CoSy’s uniquely open and modular structure has made it possible for us to develop a compiler that effectively exploits the 96-way parallelism available in the CSX600 architecture,’ said Andrew Wilde, director of software at ClearSpeed. ‘We are very pleased to have been able to build our high-performance compiler based upon the solid foundations of CoSy.’
To support the ClearSpeed Cn programming language, which is a parallel extension to C, ACE has made a number of extensions to the generic, ISO C front-end of the CoSy compiler development system. The standard CoSy front-end has been enhanced with syntactic support for the Cn language keywords ‘poly’ and ‘mono’, which are used to specify data objects to be processed in parallel by the architecture’s 96 processing units. Similarly the CoSy internal representation (IR) has been extended with semantic support for poly and mono.
‘The Cn language extensions play an important role in obtaining performance for the CSX600 architecture,’ said Marius Schoorel, managing director at ACE. ‘ACE carefully integrated the poly/mono extensions into the compiler development framework, making sure that all optimizations in CoSy perform equally well on sequential, as well as parallel code constructs in the multi-threading programming model.’
Development of the CSX600 compiler has been performed by the ClearSpeed compiler tools team using CoSy from ACE. Approaching its version 3.0 release, the ClearSpeed software development kit (SDK) supports conditional execution of poly qualified expressions via masked execution on the SIMD data path.