Free AMD Tools Help Developers BuildTune 32-Bit, 64-Bit Code
Advanced Micro Devices offers a number of tools to help you write more efficient software—advanced math libraries, a code profiler, and a hardware simulator. They're all free. Alan Zeichick takes a whirlwind tour of the AMD Core Math Library, AMD CodeAnalyst profiler, and SimNow hardware simulator.
by Alan Zeichick
Getting application logic right is important. But so is getting that logic to run as fast as possible on the target hardware.
Thanks to modern-day integrated development environments, it's easy to write code that runs the logic correctly. It's even fairly easy to write code that both runs great and looks great. With IDEs like Visual Studio, Eclipse, and NetBeans/Sun Java Studio, you can drag-and-drop Web services and components to build client and server applications that are functional and fully connected.
But there's a limit to what you can do with those general-purpose IDEs for Linux and Windows, particularly when it comes to migrating code to 64-bit platforms, like AMD64, and exploiting the performance gains offered by dual-core and multi-core processors and high-speed bus designs. That's because they're focused at a high level of abstraction; they don't understand "getting down to the metal," and can't help you take advantage of the features of specific microprocessors. Fortunately, there is a trio of free developer tools from Advanced Micro Devices that address that need.
These tools—AMD CodeAnalyst Performance Analyzer, AMD Core Math Library (ACML), and AMD SimNow Simulator—work as part of your tool chain to help you understand how your code runs on AMD processors, how to optimize your math to leverage the newest chips, and understand how your apps will run on next-generation hardware. Check 'em out:
AMD CodeAnalyst Performance Analyzer
What is it? A runtime application analyzer that uses two techniques, profiling and pipeline simulation, to help you understand where to optimize your code; it works on native code, Java apps, and managed .NET applications.
What does it run on? 32-bit Windows 2000; 32-bit and 64-bit Windows XP/Server 2003; 32-bit or 64-bit Linux under the 2.4 or 2.6 kernel
What is it for? Understanding where the CPU is working hardest when running your applications and drivers, and thereby identifying which parts of the code should be optimized.
Where do you get it? [url=\"http://developer.amd.com/cawin.aspx\"]http://developer.amd.com/cawin.aspx[/url] for Windows, [url=\"http://developer.amd.com/calinux.aspx\"]http://developer.amd.com/calinux.aspx[/url] for Linux.
The first stage in a code-optimization project requires profiling to see where the processors are using the most resources and the second stage uses pipeline simulation to dive deep into the instruction-cycle costs for critical routines. CodeAnalyst helps with both activities with command-line and graphical utilities.
For the first stage, CodeAnalyst offers timer-based, event-based, and thread profiling.
In timer-based profiling, CodeAnalyst takes snapshots of the running software at fixed time intervals, and uses that data to identify bottlenecks, execution penalties, and the biggest-bang-for-the-buck opportunities for optimizing the code.
In event-based profiling, CodeAnalyst counts how often undesirable processor events happen; you choose which events to trap, such as program or data cache misses. You can then use those results to eliminate or reduce the frequency of those events.
In thread profiling, CodeAnalyst gathers data on thread launches and execution, as well as on non-local memory accesses. This shows how much time each active thread spends running on each processor core, and how many resources each thread uses. Use this information to tune how the application performs on a multi-processor or multi-core system.
Most of the "heavy lifting" of code optimization takes place using the profiling functions. However, applications can be further optimized using the pipeline simulator, which finds additional bottlenecks that might occur for very performance-sensitive applications, such as advanced games, scientific applications, real-time simulations, or extremely high-volume transaction systems.
During pipeline simulation, CodeAnalyst gathers very granular information about code dispatching, scheduling, address generation, cache hits and misses, and more. You'll see what went wrong in the code, and how many CPU cycles those errors cost your application's performance.
CodeAnalyst provides you with a wealth of information about your application and your target hardware system. And it does it all for free. You can't beat that.
AMD Core Math Library (ACML)
What is it? A set of C/C++ and Fortran algorithms, focusing on Basic Linear Algebra (BLAS), Linear Algebra (LAPACK), Fast Fourier Transforms (FFTs), and other math functions tuned for 32-bit and 64-bit performance on Opteron processors.
What does it run on? 32-bit Windows 2000; 32-bit and 64-bit Windows XP/Server 2003; 32-bit or 64-bit Linux under the 2.4 or 2.6 kernel; there are different versions of ACML for the Gnu Compiler Collection, Microsoft, PGI, Pathscale, and Compaq Visual Fortran compilers.
What is it for? Enhancing the performance of software that uses linear algebra, FFTs, and other advanced operations for games, simulation, mathematical analysis, and more.
Where do you get it? [url=\"http://developer.amd.com/acml.aspx\"]http://developer.amd.com/acml.aspx[/url] for Linux or Windows.
The BLAS, LAPACK, and FFT operations are common to many applications. While there are many libraries available, and other mathematical algorithms, AMD has optimized these free libraries to take advantage of their Opteron processor running under both 32-bit and 64-bit operating systems.
AMD currently offers two separate downloads as part of the ACML family; you can retrieve them from AMD Developer Central. One has the routines you need for LAPACK, BLAS, FFT and fast math, and fast vector math. The other provides ScaLAPACK, which is a scalable extension to the LAPACK library tuned for clusters.
The Basic Linear Algebra Routines are a set of well-defined linear algebra algorithms, often divided into three groups: Level 1, for operations acting on vectors only, like dot products; Level 2, for matrix-vector operations, like matrix-vector multiplication; and Level 3, for matrix-matrix operations, like matrix-matrix multiplication. All three groups are included in the ACML download.
LAPACK is a different set of linear algebra routines originally developed for Fortran 77. Many of the LAPACK routines in the ACML have been optimized to use the OpenMP standard to allow them to run well on multi-processor or multi-core systems.
Fast Fourier Transforms are efficient algorithms for manipulating complex integer and floating-point data using the discrete Fourier transform formula. You often run into FFTs when solving partial differential equations; they're used for digital signal processing in real time, and for curve fitting in simulation and scientific visualization.
ACML's fast math functions provide super-efficient algorithms for performing advanced trigonometric and exponential functions using the 64-bit AMD64 processor. Some of the routines are designed to find fast approximations of these trig and exponential functions under Linux and Windows; others execute them quickly, but with a high degree of accuracy. There are also functions to apply those trig and exponential functions over vectors.
Finally, the ScaLAPACK, or Scalable LAPACK routines, are a specialized set of algorithms for solving dense linear algebra problems using the distributed-memory parallel computing model. You would use ScaLAPACK for running LAPACK or BLAS calculations across a cluster that uses the MPI message-passing interface.
AMD SimNow Simulator
What is it? The newest development tool from AMD lets you test your code across the company's AMD64 processor family.
What does it run on? 64-bit Linux and 64-bit Windows XP/Server 2003
What is it for? Experiencing the characteristics of your applications on different 64-bit single-core and dual-core systems, including those that aren't available in your test lab, and testing support for newly announced processor technologies.
Where do you get it? [url=\"http://developer.amd.com/simnow.aspx\"]http://developer.amd.com/simnow.aspx[/url] for Linux and Windows
The SimNow simulator is a new product from AMD—or at least, it's new for people like us. The company has long offered a high-end SimNow simulator for its partners to help them do things such as build BIOS and firmware components, and prototype new system boards.
The new version, available for free download as of August 2005, is a limited version that can currently simulate two different platforms—a single Athlon 64 and a dual-core Opteron processor. The implication is that AMD will offer additional simulator profiles in the future.
SimNow projects a totally accurate model of a hardware system from your software's perspective, complete with simulated CPU, memory, display, removable and fixed drives, and input/output devices. You can use it to test device drivers, operating systems, and more. And with the ability to simulate with an unprecedented slowdown of only 100x to 10x real hardware, you can test your applications on system configurations that you couldn't (or wouldn't want to) make available in your lab.
Probably the best use of the SimNow simulator, for enterprise developers, would be to see how new or unavailable hardware affects your applications. Download the simulator, install it and 64-bit Linux or Windows, then install your favorite development tools, debuggers (like the AMD CodeAnalyst!), and then your apps—and you'll be able to see how the application performs across the different configurations. That'll help you understand bottlenecks and optimization points, even before you get the hardware. Not bad. Not bad at all.
A former mainframe software developer and systems analyst, Alan Zeichick is principal analyst at Camden Associates, an independent technology research firm focusing on networking, storage, and software development.
[url=\"http://www.devx.com\"]source: devx[/url]
Free AMD Tools Help Developers Build
Reference Articles & Programming Stuff
Moderators: Moderator, Global Moderator
Return to “Reference & Software”
Jump to
- General Category
- ↳ KillaNet Country
- ↳ 2D Graphics
- ↳ KillaNet News
- ↳ 3D & Animation
- ↳ Chatroom
- ↳ Flash
- ↳ Help & Suggestions
- ↳ Game Dev
- ↳ Audio & Video
- ↳ Introductions
- ↳ Journalism
- ↳ Phoenix Lounge
- ↳ Application Dev
- ↳ Toga Toga Toga!!!
- ↳ Photography
- ↳ Main Street Archives
- ↳ Web Design
- ↳ Fonts Icons Cursors & Screensavers
- ↳ Book Reviews
- ↳ General
- ↳ Tech Industry News
- ↳ Legal Resources
- ↳ Industry Contests
- ↳ Graphix Battle Arena
- ↳ KillaNet Contests
- ↳ Competition Archives
- ↳ Education Information
- ↳ Careers
- ↳ Game Studies
- ↳ Motivation
- ↳ Conferences & Seminars
- ↳ KillaDesign
- ↳ Animation & Film
- ↳ The Studio
- ↳ Game Development
- ↳ 2D Graphics
- ↳ Audio & Video
- ↳ 3D Graphics
- ↳ Flash
- ↳ Fonts, Icons & Emoticons
- ↳ Design Requests
- ↳ PhotoShop
- ↳ Cinema 4D
- ↳ Bryce
- ↳ Flash
- ↳ Paint Shop Pro
- ↳ Blender
- ↳ Poser
- ↳ The Darkroom
- ↳ Photo & Camera Discussion
- ↳ Photo Journalism
- ↳ Web Design Principles
- ↳ PHP & MySQL
- ↳ Designing For Print
- ↳ Writer\'s Desk
- ↳ Fiction Writing
- ↳ News Journalism
- ↳ Poetry
- ↳ Technical Writing
- ↳ Biographical Writing
- ↳ General Writing Resources
- ↳ Promotional Writing
- ↳ Film & Television
- ↳ VideoGames
- ↳ Computer Department
- ↳ General Discussion
- ↳ Windows Help
- ↳ Linux Help
- ↳ Builds & Mods
- ↳ Geek Gadgets
- ↳ Security
- ↳ Dev Discussion
- ↳ C++
- ↳ Visual Basic
- ↳ Java
- ↳ Application Skinning
- ↳ IRC Scripting
- ↳ Gaming Centre
- ↳ Guild Wars
- ↳ Aion
- ↳ Computer
- ↳ World of Warcraft
- ↳ Nintendo
- ↳ General RPG & MMORPG
- ↳ PlayStation
- ↳ XBox
- ↳ Other Consoles
- ↳ All Action
- ↳ Racers
- ↳ Sports
- ↳ FPS
- ↳ RTS
- ↳ Sim
- ↳ Casual Games
- ↳ Kids' Games
- ↳ Mobile Games
- ↳ Retro Games
- ↳ Challenges, Friendly Taunts & Discussion
- ↳ Game Requests & Bug Reports
- ↳ Open Source Games
- ↳ Puzzle Games
- ↳ HeadQuarters
- ↳ Uber Coffee Room
- ↳ KillaNet
- ↳ Coffee Room
- ↳ KillaNet
- ↳ KillaGraphix
- ↳ KillaHosting
- ↳ Marketing etc.
- ↳ Staff Issues
- ↳ Reference & Software
- ↳ Archives
- ↳ KillaBlogs
- ↳ Journalism
- ↳ Trash Can

