Weihaw Chuang

dblp:18/4408 · DBLP profile ↗
← Back
5ranked-venue papers
4as first author
0since 2021 · last 2007
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 4 · 4 first-authorSoftware engineering, systems software and programming languages · 3 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
2 papers
Parallel and multicore computing · 56% Memory systems · 36% Performance modeling and evaluation · 8%
Software engineering, system software, and programming languages
1 paper
Runtime systems and virtual machines · 100%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.112006
Profile-guided proactive garbage collection for locality optimization · PLDI 2006
Memory systems › data locality
cache locality optimization
0.112006
Profile-guided proactive garbage collection for locality optimization · PLDI 2006
Parallel and multicore computing
parallel programming models
0.112006
Unbounded page-based transactional memory · ASPLOS 2006
Parallel and multicore computing
transactional memory
0.112006
Unbounded page-based transactional memory · ASPLOS 2006
Performance modeling and evaluation › profiling
sampling-based profiling
0.012006
Profile-guided proactive garbage collection for locality optimization · PLDI 2006
Memory systems › memory management
virtual memory
0.012006
Unbounded page-based transactional memory · ASPLOS 2006

Methods — techniques the papers use, named apart from their topics

sampling · 0.1profile-guided optimization · 0.1virtual memory integration · 0.1conflict detection · 0.1
YearPublicationVenuePosition
2007 Bounds Checking with Taint-Based Analysis
Weihaw Chuang, Satish Narayanasamy, Brad Calder, Ranjit Jhala
HiPEAC1
2006 Unbounded page-based transactional memory
abstract
Exploiting thread level parallelism is paramount in the multicore era. Transactions enable programmers to expose such parallelism by greatly simplifying the multi-threaded programming model. Virtualized transactions (unbounded in space and time) are desirable, as they can increase the scope of transactions' use, and thereby further simplify a programmer's job. However, hardware support is essential to support efficient execution of unbounded transactions. In this paper, we introduce Page-based Transactional Memory to support unbounded transactions. We combine transaction bookkeeping with the virtual memory system to support fast transaction conflict detection, commit, abort, and to maintain transactions' speculative data.
Weihaw Chuang, Satish Narayanasamy, Ganesh Venkatesh, Jack Sampson, Michael Van Biesbrouck, Gilles Pokam, Brad Calder, Osvaldo Colavin
ASPLOS1
2006 Profile-guided proactive garbage collection for locality optimization
abstract
Many applications written in garbage collected languages have large dynamic working sets and poor data locality. We present a new system for continuously improving program data locality at run time with low overhead. Our system proactively reorganizes the heap by leveraging the garbage collector and uses profile information collected through a low-overhead mechanism to guide the reorganization at run time. The key contributions include making a case that garbage collection should be viewed as a proactive technique for improving data locality by triggering garbage collection for locality optimization independently of normal garbage collection for space, combining page and cache locality optimization in the same system, and demonstrating that sampling provides sufficiently detailed data access information to guide both page and cache locality optimization with low runtime overhead. We present experimental results obtained by modifying a commercial, state-of-the-art garbage collector to support our claims. Independently triggering garbage collection for locality optimization significantly improved optimizations benefits. Combining page and cache locality optimizations in the same system provided larger average execution time improvements (17%) than either alone (page 8%, cache 7%). Finally, using sampling limited profiling overhead to less than 3%, on average.
Wen-ke Chen, Sanjay Bhansali, Trishul M. Chilimbi, Xiaofeng Gao 0003, Weihaw Chuang
PLDI5
2003 Phi-Predication for Light-Weight If-Conversion
abstract
Predicated execution can eliminate hard to predict branches and help to enable instruction level parallelism. Many current predication variants exist where the result update is conditional based upon the outcome of the guarding predicate. However conditional writing of a register creates a naming problem for an out-of-order processor and can stall the issuing of instructions. This problem arises from potential multiple predicated definitions reaching a use, which is unresolved until the prior predicate values are computed. We focus on a light-weight form of predication, phi-predication, where all predicated instructions write a result value to their register regardless of the predicate value (i.e. even if it is false). Therefore, the predicate does not guard the writing of the result register; it instead acts as a form of selection between two input registers. This eliminates the naming problem for an out-of-order processor. Our phi-predicated ISA is derived from the predicated features of the Multiflow ISA, with extensions to efficiently predicate complex control flow. Our compiler modifications also expand upon prior techniques to provide efficient code generation. We examine the use of phi-predication for an in-order and out-of-order architecture and compare its performance to using select-op and IA64 ISA predication.
Weihaw Chuang, Brad Calder, Jeanne Ferrante
CGO1
2003 Predicate prediction for efficient out-of-order execution
abstract
Predicated execution is an important optimization even for an out-of-order processor, since it can eliminate hard to predict branches and help to enable software pipelining. Using predication with out-of-order execution creates a naming bottleneck, because there can be multiple definitions reaching a use, and not knowing which use is the correct one can stall the processor.In this paper, we examine using predicate prediction to speculatively allow execution to proceed in the face of multiple definitions. We show that the penalty for mispredicting a predicate is not as severe as mispredicting a branch. Thus, making it advantageous to replace hard to predict branches with predicate predictions. We present a predicate misprediction recovery architecture that replays instructions through the renamer to link up the correct dependencies on a misprediction. This approach allows us to avoid putting the predicted false path instructions in the issue queue reducing the pressure on the dynamic out-of-order scheduler.
Weihaw Chuang, Brad Calder
ICS1