Demo Data from EDBT 2026 / reviewers in the wild / expert
Wei Liu 0014
dblp:49/3283-14
· DBLP profile ↗
14ranked-venue papers
1as first author
0since 2021 · last 2012
—ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 14 · 1 first-authorSoftware engineering, systems software and programming languages · 3Security and privacy · 1
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
5 papers |
Processor architecture and microarchitecture · 50% Parallel and multicore computing · 17% Performance modeling and evaluation · 16% | |
| Software engineering, system software, and programming languages
5 papers |
Program analysis · 50% Software testing · 18% Compilers and program optimization · 18% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 17 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis › static analysis › bug detection
dynamic bug detection |
0.1 | 2 | 2006 | PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection · MICRO 2006 iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 |
Processor architecture and microarchitecture
debugging support |
0.1 | 2 | 2005 | Efficient and flexible architectural support for dynamic monitoring · ACM Trans. Archit. Code Optim. 2005 iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 |
Parallel and multicore computing › speculative parallelization
thread-level speculation |
0.1 | 3 | 2005 | ReSlice: Selective Re-Execution of Long-Retired Misspeculated Instructions Using Forward Slicing · MICRO 2005 Efficient and flexible architectural support for dynamic monitoring · ACM Trans. Archit. Code Optim. 2005 iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 |
Program analysis › static analysis
bug detection |
0.1 | 2 | 2005 | iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 Efficient and flexible architectural support for dynamic monitoring · ACM Trans. Archit. Code Optim. 2005 |
Software testing › test coverage
path coverage |
0.1 | 1 | 2006 | PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection · MICRO 2006 |
Compilers and program optimization › parallelization
thread-level speculation |
0.1 | 1 | 2006 | POSH: a TLS compiler that exploits program structure · PPoPP 2006 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 1 | 2006 | POSH: a TLS compiler that exploits program structure · PPoPP 2006 |
Processor architecture and microarchitecture › multithreading
speculative multithreading |
0.1 | 1 | 2006 | POSH: a TLS compiler that exploits program structure · PPoPP 2006 |
Performance modeling and evaluation › performance monitoring
hardware-assisted monitoring |
0.1 | 1 | 2005 | Efficient and flexible architectural support for dynamic monitoring · ACM Trans. Archit. Code Optim. 2005 |
Distributed systems
re-execution |
0.1 | 1 | 2005 | ReSlice: Selective Re-Execution of Long-Retired Misspeculated Instructions Using Forward Slicing · MICRO 2005 |
Systems and software security › memory safety
memory error detection |
0.0 | 1 | 2004 | AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants · MICRO 2004 |
Systems and software security
memory safety |
0.0 | 1 | 2004 | AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants · MICRO 2004 |
Debugging and program repair
fault localization |
0.0 | 1 | 2004 | AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants · MICRO 2004 |
Performance modeling and evaluation › performance monitoring
hardware monitoring |
0.0 | 1 | 2004 | iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 |
Memory systems › memory access
memory access monitoring |
0.0 | 1 | 2004 | iWatcher: Efficient Architectural Support for Software Debugging · ISCA 2004 |
Processor architecture and microarchitecture
speculative execution |
0.0 | 1 | 2006 | PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection · MICRO 2006 |
Parallel and multicore computing
task partitioning |
0.0 | 1 | 2006 | POSH: a TLS compiler that exploits program structure · PPoPP 2006 |
Methods — techniques the papers use, named apart from their topics
thread-level speculation · 0.2simulation · 0.1sandbox execution · 0.1profiling · 0.1hardware-assisted checking · 0.1program counter invariants · 0.1check look-aside buffer · 0.1bloom filter · 0.1forward slicing · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2012 | HiRe: using hint & release to improve synchronization of speculative threadsabstractThread-Level Speculation (TLS) is a promising technique for improving performance of serial codes on multi-cores by automatically extracting threads and running them in parallel. However, the speculation efficiency as well as the performance gain of TLS systems are reduced by cross-thread data dependence violations. Reducing the cost and frequency of violations are key to improving the efficiency of TLS. One method to keep a dependence from violating is to predict it and communicate the value via synchronization. However, prior work in this field still cannot handle enough violating dependences, especially hard-to-predict ones and those in non-loop TLS tasks. Also, they suffer from over-synchronization and/or introduce complicated hardware. The major reason is that these techniques are highly sensitive to the accuracy of the dependence prediction, which is hard to improve in the face of irregular dependence and task patterns. Xiaowei Jiang, Wei Liu 0014, Youfeng Wu, James Tuck 0001 |
ICS | 3 |
| 2010 | TAO: two-level atomicity for dynamic binary optimizationsabstractDynamic binary translation is a key component of Hardware/Software (HW/SW) co-design, which is an enabling technology for processor microarchitecture innovation. There are two well-known dynamic binary optimization techniques based on atomic execution support. Frame-based optimizations leverage processor pipeline support to enable atomic execution of hot traces. Region level optimizations employ transactional-memory-like atomicity support to aggressively optimize large regions of code. In this paper we propose a two-level atomic optimization scheme which not only overcomes the limitations of the two approaches, but also boosts the benefits of the two approaches effectively. Our experiment shows that the combined approach can achieve a total of 21.5% performance improvement over an aggressive out-of-order baseline machine and improve the performance over the frame-based approach by an additional 5.3%. Edson Borin, Youfeng Wu, Cheng Wang 0013, Wei Liu 0014, Maurício Breternitz, Shiliang Hu, Esfir Natanzon, Shai Rotem, Roni Rosner |
CGO | 4 |
| 2010 | Speculative parallelization of partial reduction variablesabstractReduction variables are an important class of cross-thread dependence that can be parallelized by exploiting the associativity and commutativity of their operation. In this paper, we define a class of shared variables called partial reduction variables (PRV). These variables either cannot be proven to be reductions or they violate the requirements of a reduction variable in some way. Wei Liu 0014, James Tuck 0001 |
CGO | 2 |
| 2009 | Dynamic parallelization of single-threaded binary programs using speculative slicingabstractThe performance of single-threaded programs and legacy binary code is of critical importance in many everyday applications. However, neither can hardware multi-core processors directly speed up single-threaded programs, nor can software automatic parallelizing compilers effectively parallelize legacy binary code and irregular applications. In this paper, we propose a framework and a set of algorithms to dynamically parallelize single-threaded binary programs. Our parallelization is based on program slicing and explores both instruction-level parallelism (ILP) and thread-level parallelism (TLP). To significantly reduce the critical path of the parallel slices, our slicing algorithms exploit speculation to cut rare dependences, and use well-designed program transformations to expose parallelism. Furthermore, because we transparently parallelize binary code at runtime, we perform slicing only on program hot regions. Our experiments demonstrate that the proposed speculative slicing approach extracts more parallelism than any known slicing based parallelization schemes. For the SPEC2000 benchmarks, we can achieve 3x parallelism with infinite number of threads, and 1.8x parallelism with 4 threads. Cheng Wang 0013, Youfeng Wu, Edson Borin, Shiliang Hu, Wei Liu 0014, Dave Sager, Tin-Fook Ngai, Jesse Fang |
ICS | 5 |
| 2007 | Using Register Lifetime Predictions to Protect Register Files against Soft ErrorsabstractTo increase the resistance of register files to soft errors, this paper presents the ParShield architecture. ParShield is based on two observations: (i) the data in a register is only useful for a small fraction of the register's lifetime, and (ii) not all registers are equally vulnerable. ParShield selectively protects registers by generating, storing, and checking the ECCs of only the most vulnerable registers while they contain useful data. In addition, it stores a parity bit for all the registers, re-using the ECC circuitry for parity generation and checking. ParShield has no SDC AVF and a small average DUE AVF of 0.040 and 0.010 for the integer and floating-point register files, respectively. ParShield consumes on average only 81% and 78% of the power of a design with full ECC for the SPECint and SPECfp applications, respectively. Finally, ParShield has no performance impact and little area requirements. Pablo Montesinos, Wei Liu 0014, Josep Torrellas |
DSN | 2 |
| 2007 | CAP: Criticality analysis for power-efficient speculative multithreadingabstractWhile speculative multithreading (SM) on a chip multiprocessor (CMP) has the ability to speed-up hard-to- parallelize applications, the power inefficiency of aggressive speculation is a concern. To improve SMs power effeciency, we note that not all the tasks that are running in a SM environment are equally critical. To leverage this insight, this paper develops a novel, widely-applicable task-criticality model for SM. It also proposes CAP, a novel architecture that builds a task-criticality graph dynamically and uses it to make scheduling decisions in a SM CMP. Experiments with SPECint, SPECfp, and Olden applications show that, in a CMP with one fast core and three slow ones, the E D2with CAP is, on average, 91-95% of that without. Moreover, it is only 77-91% of the E D2of a CMP with four fast cores and no CAP. Overall, we argue that scheduling for task criticality is beneficial. James Tuck 0001, Wei Liu 0014, Josep Torrellas |
ICCD | 2 |
| 2006 | PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug DetectionabstractDynamic software bug detection tools are commonly used because they leverage run-time information. However, they suffer from a fundamental limitation, the path coverage problem: they detect bugs only in taken paths but not in non-taken paths. In other words, they require bugs to be exposed in the monitored execution. This paper makes one of the first attempts to address this fundamental problem with a simple hardware extension. First, we propose PathExpander, a novel design that dynamically increases the code path coverage of dynamic bug detection tools with no programmer involvement. As a program executes, PathExpander selectively executes non-taken paths in a sandbox without side effects. This enables dynamic bug detection tools to find bugs that are present in these non-taken paths and would otherwise not be detected. Second, we propose a simple hardware extension to control the huge overhead in its pure software implementation to a moderate level. To further minimize overhead, PathExpander provides an optimization option to execute non-taken paths on idle cores in chip multi-processor architectures that support speculative execution. To evaluate PathExpander, we use three dynamic bug detection methods: dynamic software-only checker (CCured), dynamic hardware-assisted checker (iWatcher) and assertions; and conduct side-by-side comparison with PathExpander's counterpart software implementation. Our experiments with seven buggy programs using general inputs that do not expose the tested bugs show that PathExpander is able to help these tools detect 21 (out of 38) tested bugs that are otherwise missed. This is because PathExpander increases the code coverage of each test case from 40% to 65% on average, based on the branch coverage metric. When applications are tested with multiple inputs, the cumulative coverage also significantly improves by 19%. We also show that PathExpander introduces modest false positives (4 on average) and overhead (less than 9.9%). The 3-4 orders of magnitude lower overhead compared with pure-software implementation further justifies the hardware design in PathExpander Shan Lu 0001, Pin Zhou, Wei Liu 0014, Yuanyuan Zhou 0001, Josep Torrellas |
MICRO | 3 |
| 2006 | POSH: a TLS compiler that exploits program structureabstractAs multi-core architectures with Thread-Level Speculation (TLS) are becoming better understood, it is important to focus on TLS compilation. TLS compilers are interesting in that, while they do not need to fully prove the independence of concurrent tasks, they make choices of where and when to generate speculative tasks that are crucial to overall TLS performance.This paper presents POSH, a new, fully automated TLS compiler built on top of gcc. POSH is based on two design decisions. First, to partition the code into tasks, it leverages the code structures created by the programmer, namely subroutines and loops. Second, it uses a simple profiling pass to discard ineffective tasks. With the code generated by POSH, a simulated TLS chip multiprocessor with 4 superscalar cores delivers an average speedup of 1.30 for the SPECint 2000 applications. Moreover, an estimated 26% of this speedup is a result of the implicit data prefetching provided by squashed tasks. Wei Liu 0014, James Tuck 0001, Luis Ceze, Wonsun Ahn, Karin Strauss, Jose Renau, Josep Torrellas |
PPoPP | 1 |
| 2005 | Thread-Level Speculation on a CMP can be energy efficientabstractChip Multiprocessors (CMP) with Thread-Level Speculation (TLS) have become the subject of intense research. However, TLS is suspected of being too energy inefficient to compete against conventional processors. In this paper, we refute this claim. To do so, we first identify the main sources of dynamic energy consumption in TLS. Then, we present simple energy-saving optimizations that cut the energy cost of TLS by over 60% on average with minimal performance impact. The resulting TLS CMP, populated with four 3-issue cores, speeds-up full SPECint 2000 codes by 1.27 on average, while keeping the fraction of the chip's energy consumption due to TLS to only 20%. Compared to a 6-issue superscalar at the same frequency, the TLS CMP is on average faster, while consuming only 85% of its total on-chip power. Jose Renau, Karin Strauss, Luis Ceze, Wei Liu 0014, Smruti R. Sarangi, James Tuck 0001, Josep Torrellas |
ICS | 4 |
| 2005 | Tasking with out-of-order spawn in TLS chip multiprocessors: microarchitecture and compilationabstractChip Multiprocessors (CMPs) are flexible, high-frequency platforms on which to support Thread-Level Speculation (TLS). However, for TLS to deliver on its promise, CMPs must exploit multiple sources of speculative task-level parallelism, including any nesting levels of both subroutines and loop iterations. Unfortunately, these environments are hard to support in decentralized CMP hardware: since tasks are spawned out-of-order and unpredictably, maintaining key TLS basics such as task ordering and efficient resource allocation is challenging.While the concept of out-of-order spawning is not new, this paper is the first to propose a set of microarchitectural mechanisms that, altogether, fundamentally enable fast TLS with out-of-order spawn in a CMP. Moreover, we develop a fully-automated TLS compiler for aggressive out-of-order spawn. With our mechanisms, a TLS CMP with four 4-issue cores achieves an average speedup of 1.30 for full SPECint 2000 applications; the corresponding speedup for in-order only spawn is 1.04. Overall, our mechanisms unlock the potential of TLS for the toughest applications. Jose Renau, James Tuck 0001, Wei Liu 0014, Luis Ceze, Karin Strauss, Josep Torrellas |
ICS | 3 |
| 2005 | ReSlice: Selective Re-Execution of Long-Retired Misspeculated Instructions Using Forward SlicingabstractAs more data value speculation mechanisms are being proposed to speed-up processors, there is growing pressure on the critical processor structures that must buffer the state of the speculative instructions. A scalable solution is to checkpoint the processor and retire speculative instructions. However, in this environment, misprediction recovery becomes very wasteful, as it involves discarding and re-executing all the instructions executed since the checkpoint. To speed-up execution in this environment, this paper presents a novel architecture (ReSlice) that selectively re-executes only the speculatively-retired instructions that directly depended on the mispredicted value, namely its Forward Slice. ReSlice buffers the (typically very few) instructions in the forward slice of the predicted value as such instructions initially execute. Then, potentially thousands of instructions later, ReSlice can quickly re-execute the slice if a misprediction is declared, and merge its state with the program state. In addition, this paper develops a sufficient condition for correct slice re-execution and merge. As one possible use of ReSlice, we apply it to recover from cross-task dependence violations in a chip multiprocessor with thread-level speculation (TLS). ReSlice speeds up SpecInt applications over aggressive TLS by up to 33%, with a geometric mean of 12%. Moreover, E /spl times/ D/sup 2/ decreases by 20%. All this is obtained by saving on average 61% of the task squashes through slice re-execution. On average, a slice re-executes only 6.6 instructions, compared to the 210 that would be re-executed on a squash. Smruti R. Sarangi, Wei Liu 0014, Yuanyuan Zhou 0001 |
MICRO | 2 |
| 2005 | Efficient and flexible architectural support for dynamic monitoringabstractRecent impressive performance improvements in computer architecture have not led to significant gains in the case of debugging. Software debugging often relies on inserting run-time software checks. In many cases, however, it is hard to find the root cause of a bug. Moreover, program execution typically slows down significantly, often by 10--100 times.To address this problem, this paper introduces the intelligent watcher (iWatcher) , a novel architectural scheme to monitor dynamic execution automatically, flexibly, and with minimal overhead. iWatcher associates program-specified monitoring functions with memory locations. When any such location is accessed, the monitoring function is automatically triggered with low overhead. To further reduce overhead and support rollback, iWatcher can optionally leverage thread-level speculation (TLS). The iWatcher architecture can be used to detect various bugs, including buffer overflow, accessing freed locations, memory leaks, stack-smashing and value-invariant violations. To evaluate iWatcher, we use seven applications with various real and injected bugs. Our results show that iWatcher detects many more software bugs than Valgrind, a well-known open-source bug detector. Moreover, iWatcher only induces a 0.1--179% execution overhead, which is orders of magnitude less than Valgrind. Our sensitivity study shows that even with 20% of the dynamic loads monitored in a program, iWatcher adds only 72--182% overhead. Finally, TLS is effective at reducing overheads for programs with substantial monitoring. Yuanyuan Zhou 0001, Pin Zhou, Feng Qin 0003, Wei Liu 0014, Josep Torrellas |
ACM Trans. Archit. Code Optim. | 4 |
| 2004 | iWatcher: Efficient Architectural Support for Software DebuggingabstractRecent impressive performance improvements in computer architecture have not led to significant gains in ease of debugging. Software debugging often relies on inserting run-time software checks. In many cases, however, it is hard to find the root cause of a bug. Moreover, program execution typically slows down significantly, often by 10-100 times. To address this problem, this paper introduces the Intelligent Watcher (iWatcher), novel architectural support to monitor dynamic execution with minimal overhead, automatically, and flexibly. iWatcher associates program-specified monitoring functions with memory locations. When any such location is accessed, the monitoring function is automatically triggered with low overhead. To further reduce overhead and support rollback, iWatcher can leverage Thread-Level Speculation (TLS). To test iWatcher, we use applications with various bugs. Our results show that iWatcher detects many more software bugs than Valgrind, a well-known open-source bug detector. Moreover, iWatcher only induces a 4-80% execution overhead, which is orders of magnitude less than Valgrind. Even with 20% of the dynamic loads monitored in a program, iWatcher adds only 66-174% overhead. Finally, TLS is effective at reducing overheads for programs with substantial monitoring. Pin Zhou, Feng Qin 0003, Wei Liu 0014, Yuanyuan Zhou 0001, Josep Torrellas |
ISCA | 3 |
| 2004 | AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based InvariantsabstractThis paper makes two contributions to architectural support for software debugging. First, it proposes a novel statistics-based, on-the-fly bug detection method called PC-based invariant detection. The idea is based on the observation that, in most programs, a given memory location is typically accessed by only a few instructions. Therefore, by capturing the invariant of the set of PCs that normally access a given variable, we can detect accesses by outlier instructions, which are often caused by memory corruption, buffer overflow, stack smashing or other memory-related bugs. Since this method is statistics-based, it can detect bugs that do not violate any programming rules and that, therefore, are likely to be missed by many existing tools. The second contribution is a novel architectural extension called the Check Look-aside Buffer (CLB). The CLB uses a Bloom filter to reduce monitoring overheads in the recently-proposed iWatcher architectural framework for software debugging. The CLB significantly reduces the overhead of PC-based invariant debugging. We demonstrate a PC-based invariant detection tool called AccMon that leverages architectural, run-time system and compiler support. Our experimental results with seven buggy applications and a total of ten bugs, show that AccMon can detect all ten bugs with few false alarms (0 for five applications and 2-8 for two applications) and with low overhead (0.24-2.88 times). Several existing tools evaluated, including Purify, CCured and value-based invariant detection tools, fail to detect some of the bugs. In addition, Purify's overhead is one order of magnitude higher than AccMon's. Finally, we show that the CLB is very effective at reducing overhead. Pin Zhou, Wei Liu 0014, Long Fei, Shan Lu 0001, Feng Qin 0003, Yuanyuan Zhou 0001, Samuel P. Midkiff, Josep Torrellas |
MICRO | 2 |