Alpha Developer links
This is a preliminary bare-bones version of a web-site for and by developers which will contain links / info and source code for developers interested in porting and performance tuning for Alpha. The focus for now is on NT with Linux soon to follow. Please send any info / suggestions to alpha.developer@alpha-processor.com
Porting guides / white papers
- X86 NT to AlphaNT (old digital manual, needs updating)
- Calling Intel DLL's from alpha EXE's. (needs to be updated with code samples)
Compaq performance tools roadmap
The following tools are being actively supported and updated and will be available on Linux in the (near?) future:
DCPI, Wiggins-RedStone, Spike, Iprobe, NtAtom, In-Time
List of Compaq performance tools available
Profiling tools:
These tools were all designed for the 21164 (EV56 and before) Alpha processor. This processor contains many chip counters that enable profiling tools to characterize the performance of binaries. Besides cycles you can track things like Icache misses, branch mispredictions, pipeline dry, and many more. The next generation processor 21264 (architecture for Alpha EV6 and EV67 chips) contains only a few chip counters. Most of the tools are currently being updated to use EV6 counters. There is a different scheme to characterize usage of 21264 systems called ProfileMe. Many of these tools will be using ProfileMe in the future. For now, ironically, even though the processors a very different, it's probably a good idea to also characterize your application on a EV56 based system even if you are targeting EV6.
Many of these tools can display symbol information. Though some can read a variety of symbol formats the most common is COFF. It's typically a good idea to build your app optimized but link it /debug. This causes a nominal space increase and allows these tools to find the function name associated with a specific address. Add the /debugtype:COFF or /debugtype:both switch as well to generate COFF symbols.
- DCPI
Continuous profiling infrastructure. Instruments binaries and tracks chip counters, contains tools to analyze the collected data.
Compaq site for info documentation and download for NT version 1.4 (21164 only): DCPI
To request to review EV6 beta version when it becomes available mail: dcpi@pa.dec.com
NtProf
Bucket based profiling, 21164 only. (Does not modify binaries, simply tracks a subset of chip counters in a certain address space with a user defined granularity). If you link with symbols this can be a very powerful tool.
Compaq site for download: Compaq NT tools
NtAtom
NtAtom comes with several analysis tools but it's designed as a Tool Development Framework. It has an API that allows developers to instrument executable programs by inserting instrumentation points at procedure, basic block, or instruction boundaries. This is very useful if you want to write your own tools. NtAtom also comes with HiProf which is a hierarchical profiler.
Compaq site for download: Compaq NT tools
To request newer beta versions (for example: HiProf with multithreaded support): ntatom-bugs@pa.dec.com
Iprobe
21164 only. Another chip counting tool.that overlaps in functionality with DCPI and Acid.
Iprobe
Acid
21164 only. Acid gives a quick birds-eye view of what's going on with the CPU. It makes the chip counter information visible to perfmon. Obviously it doesn't allow you to drill down to what functions or instructions are causing the problem, but it's useful to get a quick characterization of performance, and you can use perfmon to make charts of CPU stresses during benchmarks.
Compaq site for download: Compaq NT tools
Fixups
A very common and lethal problem with quick ports is alignment faults. Fixups runs in a small window in the background and monitors alignment faults per process, allowing you to drill down to the DLL and address causing the problem. Like ACID it's a powerful birds-eye view on a performance issue. If you see significant problems you would probably use NtProf to give you address and symbol information.
Compaq site for download: Compaq NT tools
Optimization tools:
- Spike
Spike performs a number of profile-directed optimizations, including code layout to improve instruction cache behavior, hot-cold optimization, and register allocation
Version 1.4 and documentation : Spike
Compaq site for download of version 1.3 (does not work well with applications built with VC6): Compaq NT tools
Wiggins-RedStone
Dynamic optimizer, expected availability: ?
In-time
Binary editing tool, expected availability: ?
Utilities:
- Checkbuild
this utility examines program components to verify whether obj, lib, dll, or exe files have been built with optimization turned on.
Compaq site for download: Compaq NT tools
API Open source porting / development utilities:
- Multiple .dsp file conversion utility ( add Alpha configurations, add remove switches and analyze dependencies to all dsp files under a given directory).
- Automatic stubbing of missing functions of missing 3d party libs
- Munging utility that mangles all non-keyword names in a source file. (if you need to send out a reproducer of proprietary source code)
- NTFloat similar to old NTFlop except it prints callstack and can handle VC6 symbols and outputs data to a file and continuous warnings to command window
- Version simple utility which recursively prints versions of binaries, or prints pertinent system information
More info and downloads: API tools and utilities
Other Helpful Alpha sites
- PkZip 2.6 (Alpha Native)
- Adobe Acrobat (X86 requires fx32)
- Fx32
- Alpha Architecture Handbook ( Alpha Assembly code through EV6, requires Adobe Acrobat )
- Alpha Processor Architecture documentation archive ( requires Adobe Acrobat )
- MS VC Alpha
- VC6 SP2
- Visual C/C++ Calling Visual Fortran DLL Example
- NT: CPU Speed Without Heroics ( basically Fortran with some interesting general information)
- MVI code examples (Motion Video Instructions, similar to MMX instructions for Pentium)
- Compaq Powerstorm OpenGL 3D graphics drivers
- AlphaNT Source ( Lots of information here, Alpha NT mailing lists )
-
-