|
![]() Everything you always wanted to know about predication and speculation, but were afraid to ask
W
intel Watch recently talked with Wen-mei Hwu, professor of electrical and computer engineering, and chairman of the computer-engineering program at the University of Illinois at Urbana-Champaign. Hwu was named Intel Associate Professor at the University in 1992. He is also director of the school's Impact advanced-compiler project. Hwu is an expert in predication and speculation, two techniques at the heart of
Intel's IA-64 architecture
,
and we wanted to get his take on the software forces affecting Merced.
Wintel Watch: How important will software be to the success of Intel's IA-64 architecture, which exploits speculative and predicative execution? [Predication removes unnecessary branches from an application program, while speculation masks memory latency by executing load instructions as soon as possible.] Professor Wen-mei Hwu: Compiler software will play a critical role in the performance of microprocessors based on the IA-64 architecture . The burden on the compiler will be much more than with IA-32. Features like predication and speculation require the compiler to transform the code. It's easy to misuse these features and lose performance, so compilers will have to have a level of intelligence they did not have before. This is one reason why so much research has been devoted to the problem over the past decade. Recently, several major companie s have committed to major development efforts for first-generation IA-64 compilers .
Let's put things into the proper perspective. Compiler software has played a very significant role in the performance of the current generation of microprocessors. So predicated and speculative execution aren't the first things to put compilers on the hot seat. The critical issue is that predicated execution does require a very significant change to the compiler infrastructure that major companies have today. This is the reason my res earch group has spent the past seven years building a complete prototype of a predication/speculation compiler [called Impact]. I will go out on a limb and make some predictions based on our experience with Impact. Initial IA-64 commercial compilers are likely to deliver superior performance, but will suffer some robustness issues, meaning that on some applications, IA-64 processors will be awesome and offer users a level of performance that is not currently possible. However, on other apps, the compilers will be less effective because the transforms are not general enough or the analysis is not sophisticated enough. As research labs continue to produce more advanced and more general algorithms, performance and robustness will improve. I would expect that after five years, the performance enhancements due to predication and speculation will be very visible across a wide range of applications and system code. Wintel Watch: Tell us about Impact. Hwu: The Impact compiler generates, optimizes, schedules and allocates registers for predicated code. In addition, there is a high-performance emulator that takes the predicated code and executes it on a Hewlett-Packard PA-RISC machine. Using this experimental set-up, we have identified and overcome many compiler implementation problems. A detailed, system-level emulator/simulator has been used to study the processor and memory-system performance characteristics of predicated and speculative code. The Impact predication/speculation compiler has recently compiled all SPECint95 programs successfully for emulation and simulation. More importantly, we have also been working on compiling real programs such as Informix, Sybase and Ghostscript with our industry partners. People have definitely underestimated the amount of effort that major companies have put into making this new compiler technology robust for real-world applications. One important observation we've made is that highly optimized, predicated code is smaller in size than the high -performance code we have generated for more traditional superscalar microprocessors. Code size is in general a very challenging issue whenever a compiler attempts to generate very high-performance code. My point is that IA-64 code size will likely be much smaller than what's generated by a compiler for a more traditional architecture. We believe that this will translate well into real-world application performance. Wintel Watch: Compilers aside, many software applications are still poorly designed. How will this situation be resolved? Hwu: One of the biggest problems with the quality of production code is the lack of support for source-code debugging once the code has been optimized by a commercial compiler. Several research labs, including mine, have been working on a new generation of compiler/debugger technology that will support debugging of optimized code for predicated and speculative execution. We feel that we will have a solid system in place before IA-64 microprocessors become available. Another problem is compilation time when the optimizer is turned on. This can be a particular problem for predicated execution because compiler code-analysis algorithms developed at major labs for predicated code have been slow. Researchers and product developers are making very rapid progress on this front. For example, the latest predicated code-analysis algorithm developed at my lab is at least an order of magnitude faster than the one we developed last year. Another issue is the use of profiler feedback [i.e., software performance-analysis tools]. A whole set of new code transforms are possible with profile information. Software developers need to be more receptive to applying program profiling. Many mainstream software developers have already incorporated profiling into their development process.
![]()
![]()
|
| ||||||||||||||||