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
Q6. When will VectorC be released for the PlayStation®2?
Q7. What platforms does the PlayStation®2 compilers
run on?
PC questions
Q8. What is the difference between VectorC {PC} Special
Edition and the Professional Edition?
Q9. When will VectorC support Linux?
Q10. What output formats are supported on VectorC {PC}?
Q11. Does VectorC integrate with Microsoft Visual Studio?
Q12. How do I detect what CPU-optimized code to run?
Q13. Is the Athlon XP supported?
Q14. What bulk purchase or site licenses are available?
Q15. 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.
The PlayStation®2 is an exciting and ambitious platform for VectorC.
Codeplay is in the final stages of development of two compilers aimed
at the PlayStation®2. Firstly, the VectorC {PS2:VU} compiler is
a Vector Unit micro-mode code compiler. Secondly, the VectorC {PS2:EE}
compiler is the general-purpose Emotion Engine® compiler targetting
the MIPS®-derived core of the PS2's EE. The current release schedule
can be found on this page. Both
compilers will ultimately be available as part of a cost-saving bundle.
Further information on Codeplay's PlayStation®2 compilers
can be found on our PlayStation®2 page.
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.
The Professional Edition is provided for businesses while the
Special Edition is provided for individuals.
The Special Edition provides free 'point' updates (Eg 2.x) and
includes on-line email support. The Special edition does not support
the Athlon XP and "don't care" hints. Of course, you can
run either version on an Athlon XP and also to optimize for Athlon
XP with the Special Edition, just select Athlon or Pentium III as
the target processor.
The Professional Edition provides free'point' updates (e.g.
2.x) and includes email support and telephone support. We will also
send you a boxed CD. We update the Professional Edition first and
the Special Edition later.
The Linux version is based upon VectorC 2.0 with C++ and is due a
month or so after the Win32 compiler. A Linux x86 VectorC beta program
is scheduled for March 2002 with a release shortly thereafter. The
Linux x86 version of VectorC will be interoperable/linkable with GNU
C. Both the Win32 and Linux x86 versions of VectorC will be provided
as part of the VectorC {PC} package. The Linux x86 version will be
available as a free update to early adoptors of VectorC 2.0 for Win32.
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.
|