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
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.
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.
COFF and OMF object files are supported, with Microsoft® debugging
information. The output will work with the Microsoft® linker.
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.
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.
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.
We are constantly evaluating our pricing in this area. Please contact
sales regarding licensing possibilities.
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. |