Frequently Asked Questions

General questions
Q1. What is a vectorizing compiler?
Q2. How does VectorC compare to other optimizing compilers?
Q3. Don't other compilers vectorize?

PlayStation®2 questions
Q4. What platforms does the PlayStation®2 compilers run on?

PC questions
Q5. What output formats are supported on VectorC {PC}?
Q6. Does VectorC integrate with Microsoft Visual Studio?
Q7. How do I detect what CPU-optimized code to run?
Q8. Is the Athlon XP supported?
Q9. What bulk purchase or site licenses are available?
Q10. What platform is next for VectorC?


General questions

Q1. What is a vectorizing compiler?

A vector is an array of numbers. A simple example would be 3D co-ordinates with X, Y and Z values.

There are many computer applications that work with vectors such as 3D graphics, image manipulation and physics simulation. Traditionally each of the data elements is worked on one by one which is a time consuming process. However, modern CPUs have the ability to perform operations on several data items at once, ie entire vectors, and for this they have special instructions such as MMX, 3D Now! and SSE.

VectorC is a 'smart compiler' which automatically recognises when these instructions can be used and so can dramatically speed up vector processing. This process is known as vectorization, and not only applies to the above applications but also to less obvious parallelisms which can be exploited similarly.

Q2. How does VectorC compare to other optimizing compilers?

Unlike competing compilers, VectorC automatically exploits implicit parallelism as a fundamental feature of its design. Other vectorizing compilers search for simple cases where vectorization can be performed but more likely than not, this is not the type of code used in regular applications.

VectorC also includes some transparent language additions which allow the programmer to provide vital clues as to when VectorC can use its most powerful vectorization features. By using these features, optimization can be attained that is comparable to hand optimized assembly language.

Many claims about optimization and vectorization are made of compilers, Codeplay believes the performance results of VectorC speak for themselves.

Benchmarks

Q3. Don't other compilers vectorize?

Other compilers claim to vectorize such the Intel® C/C++ 5.0 compiler. Indeed this compiler does vectorize the simplest loops although only for Intel microprocessors. VectorC was designed to vectorize real-world code and to target all SIMD capable CPUs including the Intel Pentium 4 and AMD Athlon®. Click here to see a comparison of the vectorizing capabilities of the Intel C/C++ compiler and VectorC.

Q4. What platforms do the PlayStation®2 compilers run on?

Due to the prevalence of development on the PlayStation®2 under Windows and the default Linux tools, both Win32 and Linux x86 cross-compilers will be made available as part of each PlayStation®2 compiler product. These compilers will integrate with the leading IDE tools on Win32 and Linux x86 respectively.

Q5. What output formats are supported on VectorC {PC}?

COFF and OMF object files are supported, with Microsoft® debugging information. The output will work with the Microsoft® linker.

Q6. Does VectorC integrate with Microsoft® Visual Studio®?

Yes, VectorC integrates into Visual Studio®6.0, and it allows mixing and matching with the Microsoft® and Intel® compilers, and sharing of Link object files. As of version 1.2, VectorC will also provides a very useful GUI interface within the Visual Studio® 6.0 environment. Support for Visual Studio® .NET will arrive later.

Q7. How do I detect what CPU-optimized code to run?

You can find some example code here which detects which CPU is being used at runtime. In a forthcoming release VectorC {PC} will include features to ease the process of including multiple binaries for different CPUs.

Q8. is the Athlon XP® supported?

Currently VectorC {PC} does not directly support this CPU. 3D Now Professional incorporates SSE compatible SIMD instructions which means the Athlon XP® is capable of running Pentium®III targetted code. Whether this is faster or slower than Athlon targetted code may depend on the nature of the source code. VectorC {PC} may directly support the Athlon XP® in a future version.

Q9. What bulk purchase or site licenses are available?

We are constantly evaluating our pricing in this area. Please contact sales regarding licensing possibilities.

Q10. What platform is next for VectorC?

We have to keep that to ourselves for now. Rest assured Codeplay targets those who are most in need of a high performance compiler which targets exotic architectures. Our compilers will always be the optimum performance solution, tailored specifically to the strengths of the target platform. If you are potentially looking for a compiler for your platform, drop us a line to discuss how we can help.

PlayStation is a registered trademark of Sony Computer Entertainment Inc.