Processor Architecture and Compilation Lab, UCSD

Event-Driven Simultaneous Compilation

My research interest at UCSD:

  • Multithreaded microprocessor architecture
  • Compilation
  • Architectural support for dynamic compilation
  • We proposed an Event-Driven Simultaneous Compilation model, which exploits on-chip parallelism of multi-core, multithreaded processors. In this framework (called Trident), optimization threads run concurrently with the main executing thread, continuously improving the main thread code. It is called event-driven compilation, because an optimization thread is spawned when the hardware identifies an interesting behavior or pattern, the thread adapts the code to optimize for that behavior, and then exists. We proposed micro-architectural changes and conservative hardware extensions to the existing processor performance monitoring mechanism to trigger optimization events. We also developed a lightweight dynamic compiler to perform classical optimizations as well as aggressive optimizations guided by hardware profiling information. Due to its low overhead of profiling and optimization, Trident can perform recurrent optimization on already optimized code, which is the key to gradually enable more aggressive optimizations or back up from previous bad optimizations.

    Trident is powerful to enable parallelization via tradiational as well as non-traditional approaches. We have applied the Trident framework to dynamic value specialization on hot execution traces and to improving performance of memory subsystem (self adaptive inline prefetching via repairing, precomputation thread based prefetching). Other potential applications of Trident include software based profiling and prediction, dynamic code parallelization (via thread level speculation or transactions), and heterogeneous multi-core aware dynamic optimization.

    I have extensively modified the Simultaneous Multithreading (SMT) processor simulator to enhance architectural support and evaluate dynamic optimizations.

    Publications

  • Weifeng Zhang, Dean Tullsen, Brad Calder, "Accelerating and Adapting Precomputation Threads for Efficient Prefetching via Dynamic Optimization", in IEEE International Symposium on High Performance Computer Architecture (HPCA-13), Arizona, Feburary 2007
  • Weifeng Zhang, Steve Checkoway, Brad Calder, Dean Tullsen, "Dynamic Code Value Specialization Using the Trace Cache Fill Unit", in IEEE International Conference on Computer Design (ICCD), San Jose, October 2006
  • Weifeng Zhang, Brad Calder, Dean Tullsen, "A Self-Repairing Prefetcher in an Event-Driven Dynamic Optimization Framework", in International Symposium on Code Generation and Optimization (CGO), New York, March 2006
  • Weifeng Zhang, Brad Calder, Dean Tullsen, "An Event-Driven Multithreaded Dynamic Optimization Framework", in International Conference on Parallel Architectures and Compilation Techniques (PACT), St. Louis, September 2005
  • Tech Report

  • Zhen Ma, Weifeng Zhang, "Dynamic Power Aware Packet Processing with CMP", Tech Report CS2006-0852, UC San Diego, March 2006