Fortran/C/C++ Compilers & Debugging Tools

Resources

Windows | Macintosh | 32-bit Linux | 64-bit Linux | Debug | Sales

      Buy now, contact Sales,
      Questions about your order,
      
Resellers, Partners,
      
Partial customer list

      Compilers
, Debuggers,
      Tools and Libraries,
      Cluster Software

      Commercial, Academic,
      Cluster Software, Upgrades
      Multi-platform Bundles

      Contact, FAQs, User Forum         Downloads, Registration

Product Information

IMSL math/stat libraries
VAST-F/Parallel
VAST-F/Vector
Fx & Fx2 debuggers
Cluster products
Documentation
Companion Products
   

AltiVec

AltiVec (also called Velocity Engine by Apple) is the vector processing unit integrated into the G4/G5 processor. In many instances AltiVec operations can dramatically increase the speed of executed code. There are two ways to take advantage of AltiVec without rewriting all your code:

  1. Use a compiler and libraries which automatically take
    advantage of AltiVec.
  2. Use tools(optional) which can restructure standard code to include AltiVec directives.
Absoft Pro Fortran offers opportunities to easily improve your code using both these methods. No recoding is necessary and AltiVec directives can be set from the Pro Fortran IDE.

Automatic AltiVec Support

  • The F95 compiler included with Pro Fortran for OSX and PPC/Linux includes an F90 intrinsic function library optimized for AltiVec. If your code uses these routines you may automatically see a performance increase.
  • Absoft provides AltiVec optimized versions of BLAS (Basic Linear Algebra Subroutines) on the distribution CD.

Optional AltiVec support

  • IMSL (optional) can take advantage of the AltiVec optimized routines in the G4/G5 version of the IMSL libraries. IMSL Math and Stat libraries are a collection of 1000 special function math and stat routines.
  • VAST-F/Vector (optional) will automatically restructure code to take advantage of possible AltiVec performance increase and include AltiVec instructions. VAST-F/Vector is available for Macintosh OSX and PPC/Linux Pro Fortran users.

Examples of user experience with AltiVec:

Detailed AltiVec Support in Pro Fortran and included libraries Below

Velocity Engine Speed Increases

The table below shows the average increase in speed for BLAS routines optimized for Velocity Engine vs. the same routines created using standard optimizations. Both were created using Absoft Pro Fortran. Multiple runs were made using array sizes ranging from 2000 to 200000 elements.

VE performance benefits are only available to G4 users.

BLAS Routine Average Execution Speed Increase (%)
SDOT 93.57%
SASUM 140.62%
ISAMAX 291.11%
SCOPY 69.44%
SSWAP 50.56%
SSCAL 37.41%
SAXPY 32.73%
SROT 104.42%

Pro Fortran for Power Macintosh and Power/PC Linux is optimized for Velocity Engine™ (AltiVec) in the following manner:

The following F90/95 intrinsic functions have been optimized for Velocity Engine™ (AltiVec) execution.
NOTE: The AltiVec execution unit included in the G4/G5 CPU supports single precision operations only.
These F90/95 intrinsic routines currently only support 4-way parallelism for 32-bit floating point numbers with no optional parameters.

MAXLOC
MAXVAL
MINLOC
MINVAL

The following F90/95 intrinsic routines currently support either 4-way parallelism for 32-bit floating-point numbers, or 2-way parallelism for COMPLEX*8 imaginary numbers with no optional parameters.

DOT_PRODUCT
MATMUL
SUM

The following routines have been optimized for Velocity Engine™ (AltiVec) and provide the foundation for both the Velocity Engine optimized BLAS, LAPACK90, and IMSL Math and Stat Libraries. These routines support either 4-way parallelism for 32-bit floating-point numbers, or 2-way parallelism for COMPLEX*8 imaginary numbers where appropriate. These routines are compatible with both F90/95 and F77 compilers.

CAXPY
CGEMV
ICAMIN
SAXPY
SGEMV
CCOPY
CSCAL
ISAMAX
SCASUM
SROT
CDOTC
CSSCAL
ISAMIN
SCOPY
SSCAL
CDOTU
CSWAP
ISMAX
SDOT
SSUM
CGEMM
ICAMAX
ISMIN
SGEMM
SSWAP

 

© 1996-2004 ABSOFT  Corporation 2781 Bond Street Rochester Hills Michigan 48309   Voice: 248-853-0050   Fax: 248-853-0108 

            Contact | Newsletter | Career | Legal | Terms of Use | Privacy