Yuan-Shin Hwang

dblp:60/4662 · DBLP profile ↗
← Back
20ranked-venue papers
7as first author
0since 2021 · last 2020
—ORCID · none

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

Systems, architecture and hardware · 17 · 6 first-authorSoftware engineering, systems software and programming languages · 2 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 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.

Software engineering, system software, and programming languages
6 papers
Compilers and program optimization · 49% Program analysis · 38% Runtime systems and virtual machines · 13%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Energy-efficient computing · 51% Memory systems · 39% Parallel and multicore computing · 9%

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

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
pointer analysis
0.222012
Support of Probabilistic Pointer Analysis in the SSA Form · IEEE Trans. Parallel Distributed Syst. 2012
Interprocedural Probabilistic Pointer Analysis · IEEE Trans. Parallel Distributed Syst. 2004
Compilers and program optimization › intermediate representation
static single assignment form
0.112012
Support of Probabilistic Pointer Analysis in the SSA Form · IEEE Trans. Parallel Distributed Syst. 2012
Runtime systems and virtual machines
binary translation
0.112010
DisIRer: Converting a retargetable compiler into a multiplatform binary translator · ACM Trans. Archit. Code Optim. 2010
Compilers and program optimization
intermediate representation
0.112010
DisIRer: Converting a retargetable compiler into a multiplatform binary translator · ACM Trans. Archit. Code Optim. 2010
Program analysis › static analysis
interprocedural analysis
0.122012
Interprocedural Probabilistic Pointer Analysis · IEEE Trans. Parallel Distributed Syst. 2004
Support of Probabilistic Pointer Analysis in the SSA Form · IEEE Trans. Parallel Distributed Syst. 2012
Memory systems
cache design
0.112007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Energy-efficient computing › leakage power reduction
cache leakage reduction
0.112007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Energy-efficient computing
leakage power reduction
0.112007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Energy-efficient computing
power management
0.112007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Memory systems › cache › cache organization
set-associative cache
0.112007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Program analysis › data flow analysis
context-sensitive dataflow analysis
0.012004
Interprocedural Probabilistic Pointer Analysis · IEEE Trans. Parallel Distributed Syst. 2004
Compilers and program optimization
dependence analysis
0.012003
Compiler support for speculative multithreading architecture with probabilistic points-to analysis · PPoPP 2003
Compilers and program optimization › parallelization
thread-level speculation
0.012003
Compiler support for speculative multithreading architecture with probabilistic points-to analysis · PPoPP 2003
Compilers and program optimization
code generation
0.012010
DisIRer: Converting a retargetable compiler into a multiplatform binary translator · ACM Trans. Archit. Code Optim. 2010
Compilers and program optimization
parallelizing compiler
0.021995
Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions · IEEE Trans. Parallel Distributed Syst. 1995
Run-time and compile-time support for adaptive irregular problems · SC 1994
Memory systems › cache
instruction and data cache
0.012007
Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties · ACM Trans. Archit. Code Optim. 2007
Parallel and multicore computing
parallel programming models
0.021995
Run-time and compile-time support for adaptive irregular problems · SC 1994
Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions · IEEE Trans. Parallel Distributed Syst. 1995
Parallel and multicore computing
thread-level parallelism
0.012003
Compiler support for speculative multithreading architecture with probabilistic points-to analysis · PPoPP 2003
Parallel and multicore computing
data distribution
0.011995
Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions · IEEE Trans. Parallel Distributed Syst. 1995
High-performance computing
distributed memory systems
0.011994
Run-time and compile-time support for adaptive irregular problems · SC 1994
Parallel and multicore computing › task partitioning
dynamic partitioning
0.011994
Run-time and compile-time support for adaptive irregular problems · SC 1994

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

reduction operations · 0.1profiling · 0.1pointer relation graph · 0.1retargeting · 0.1disassembly · 0.1probabilistic points-to analysis · 0.1simulation · 0.1iterative data flow analysis · 0.0inspector-executor · 0.0compiler directives · 0.0data migration · 0.0runtime primitives · 0.0
YearPublicationVenuePosition
2020 A framework for scheduling dependent programs on GPU architectures
Yuan-Ming Chang, Wei-Cheng Liao, Shao-Chung Wang, Chun-Chieh Yang, Yuan-Shin Hwang
J. Syst. Archit.5
2018 Architecture and Compiler Support for GPUs Using Energy-Efficient Affine Register Files
abstract
A modern GPU can simultaneously process thousands of hardware threads. These threads are grouped into fixed-size SIMD batches executing the same instruction on vectors of data in a lockstep to achieve high throughput and performance. The register files are huge due to each SIMD group accessing a dedicated set of vector registers for fast context switching, and consequently the power consumption of register files has become an important issue. One proposed solution is to replace some of the vector registers by scalar registers, as different threads in a same SIMD group operate on scalar values and so the redundant computations and accesses of these scalar values can be eliminated. However, it has been observed that a significant number of registers containing affine vectors υ such that υ[ i ] = b + i × s can be represented by base b and stride s . Therefore, this article proposes an affine register file design for GPUs that is energy efficient due to it reducing the redundant executions of both the uniform and affine vectors. This design uses a pair of registers to store the base and stride of each affine vector and provides specific affine ALUs to execute affine instructions. A method of compiler analysis has been developed to detect scalars and affine vectors and annotate instructions for facilitating their corresponding scalar and affine computations. Furthermore, a priority-based register allocation scheme has been implemented to assign scalars and affine vectors to appropriate scalar and affine register files. Experimental results show that this design was able to dispatch 43.56% of the computations to scalar and affine ALUs when using eight scalar and four affine registers per warp. This resulted in the current design also reducing the energy consumption of the register files and ALUs to 21.86% and 26.54%, respectively, and it reduced the overall energy consumption of the GPU by an average of 5.18%.
Shao-Chung Wang, Li-Chen Kan, Chao-Lin Lee, Yuan-Shin Hwang, Jenq Kuen Lee
ACM Trans. Design Autom. Electr. Syst.4
2017 Analyzing OpenCL 2.0 workloads using a heterogeneous CPU-GPU simulator
abstract
Heterogeneous CPU-GPU systems have recently emerged as an energy-efficient computing platform. A robust integrated CPU-GPU simulator is essential to facilitate researches in this direction. While few integrated CPU-GPU simulators are available, similar tools that support OpenCL 2.0, a widely used new standard with promising heterogeneous computing features, are currently missing. In this paper, we extend the existing integrated CPU-GPU simulator, gem5-gpu, to support OpenCL 2.0. In addition, we conduct experiments on the extended simulator to see the impact of new features introduced by OpenCL 2.0. Our OpenCL 2.0 compatible simulator is successfully validated against a state-of-the-art commercial product, and is expected to help boost future studies in heterogeneous CPU-GPU systems.
Ren-Wei Tsai, Shao-Chung Wang, Kun-Chih Chen, Po-Han Wang 0001, Hsiang-Yun Cheng, Yi-Chung Lee, Sheng-Jie Shu, Chun-Chieh Yang, Min-Yih Hsu, Li-Chen Kan, Chao-Lin Lee, Tzu-Chieh Yu, Rih-Ding Peng, Chia-Lin Yang, Yuan-Shin Hwang, Jenq Kuen Lee, Shiao-Li Tsao, Ouhyoung Ming
ISPASS16
2017 Enabling PoCL-based runtime frameworks on the HSA for OpenCL 2.0 support
Yuan-Ming Chang, Shao-Chung Wang, Chun-Chieh Yang, Yuan-Shin Hwang, Jenq Kuen Lee
J. Syst. Archit.4
2012 Support of Probabilistic Pointer Analysis in the SSA Form
abstract
Probabilistic pointer analysis (PPA) is a compile-time analysis method that estimates the probability that a points-to relationship will hold at a particular program point. The results are useful for optimizing and parallelizing compilers, which need to quantitatively assess the profitability of transformations when performing aggressive optimizations and parallelization. This paper presents a PPA technique using the static single assignment (SSA) form. When computing the probabilistic points-to relationships of a specific pointer, a pointer relation graph (PRG) is first built to represent all of the possible points-to relationships of the pointer. The PRG is transformed by a sequence of reduction operations into a compact graph, from which the probabilistic points-to relationships of the pointer can be determined. In addition, PPA is further extended to interprocedural cases by considering function related statements. We have implemented our proposed scheme including static and profiling versions in the Open64 compiler, and performed experiments to obtain the accuracy and scalability. The static version estimates branch probabilities by assuming that every conditional is equally likely to be true or false, and that every loop executes 10 times before terminating. The profiling version measures branch probabilities dynamically from past program executions using a default workload provided with the benchmark. The average errors for selected benchmarks were 3.80 percent in the profiling version and 9.13 percent in the static version. Finally, SPEC CPU2006 is used to evaluate the scalability, and the result indicates that our scheme is sufficiently efficient in practical use. The average analysis time was 35.59 seconds for an average of 98,696 lines of code.
Ming-Yu Hung, Peng-Sheng Chen, Yuan-Shin Hwang, Roy Dz-Ching Ju, Jenq Kuen Lee
IEEE Trans. Parallel Distributed Syst.3
2010 Trading Conditional Execution for More Registers on ARM Processors
abstract
Conditional execution is an important ISA feature of the ARM series of processors. Every instruction can be made to execute conditionally, that is, it is treated as a NOP if the condition is not met. The advantage of conditional execution is that it can maintain high performance while reducing hardware complexity since it can avoid introducing pipeline bubbles even when no branch prediction units are needed. However, conditional execution takes up precious instruction space as conditions are encoded into a 4-bit condition code selector on every 32-bit ARM instruction. Besides, only small percentages of instructions are actually conditionalized in modern embedded applications, and conditional execution might not even lead to performance improvement on modern embedded processors. This paper proposes to trade conditional execution for more ISA registers on ARM processors, and the 4-bit condition field will be used to encode the extra registers. GCC has been ported to generate ARM code with the new instruction format and experimental results have shown that performance can be improved by 6% on average for Media Bench II benchmarks when the number of ISA registers is extended from 16 to 32.
Huang-Jia Cheng, Yuan-Shin Hwang, Rong-Guey Chang, Cheng-Wei Chen
EUC2
2010 On reducing load/store latencies of cache accesses
Yuan-Shin Hwang, Jia-Jhe Li
J. Syst. Archit.1
2010 DisIRer: Converting a retargetable compiler into a multiplatform binary translator
abstract
This article proposes an alternative yet effective way of constructing a multiplatform binary translator, by converting a retargetable compiler into a binary translator. The rationale is that a retargetable compiler usually parses source programs into an Intermediate Representation (IR), and then translates IR into object code of different targets after performing analysis and optimizations. Specifically, the mechanism of code generation for multiple platforms from IR is already in place, and the missing link of building a multiplatform binary translator is a tool to transform binary programs back into IR. In order to fill in this missing link, this article presents a tool, called thedisIRer. Just as a translator from machine language to assembly language is called a disassembler, a tool that translates executable binary programs to IR is called here a disIRer. The unique feature of this approach is that the retargetability of the binary translator is inherited directly from the retargetable compiler. A prototype multiplatform binary translator has been implemented upon GCC (the GNU Compiler Collection). DisIRer first converts binary programs back into GCC IR (Intermediate Representation), and afterward the GCC backend translates the IR to target binary programs of specified platforms. Experimental results show that x86 binary programs can be translated by this technique into ARM and Alpha binaries with reasonable code density and quality.
Yuan-Shin Hwang, Tzong-Yen Lin, Rong-Guey Chang
ACM Trans. Archit. Code Optim.1
2007 Snug set-associative caches: Reducing leakage power of instruction and data caches with no performance penalties
abstract
As transistors keep shrinking and on-chip caches keep growing, static power dissipation resulting from leakage of caches takes an increasing fraction of total power in processors. Several techniques have already been proposed to reduce leakage power by turning off unused cache lines. However, they all have to pay the price of performance degradation. This paper presents a cache architecture, the snug set-associative ( SSA ) cache, that cuts most of static power dissipation of caches without incuring performance penalties. The SSA cache reduces leakage power by implementing the minimum set-associative scheme, which only activates the minimal numbers of ways in each cache set, while the performance losses caused by this scheme are compensated by the base-offset load/store queues . The rationale of combining these two techniques is locality: as the contents of the cache blocks in the current working set are repeatedly accessed, same addresses would be computed again and again. The SSA cache architecture can be applied to data and instruction caches to reduce leakage power without incurring performance penalties. Experimental results show that SSA can cut static power consumption of the L1 data cache by 93%, on average, for SPECint2000 benchmarks, while the execution times are reduced by 5%. Similarly, SSA can cut leakage dissipation of the L1 instruction cache by 92%, on average, and improve performance over 3%. Furthermore, when SSA is adopted for both L1 data and instruction caches, the normalized leakage of L1 data and instruction caches is lowered to 8%, on average, while still accomplishing a 2% reduction in execution times.
Yuan-Shin Hwang, Jia-Jhe Li
ACM Trans. Archit. Code Optim.1
2005 Snug set-associative caches: reducing leakage power while improving performance
abstract
As transistors keep shrinking and on-chip data caches keep growing, static power dissipation due to leakage of caches takes an increasing fraction of total power in processors. Several techniques have already been proposed to reduce leakage power by turning off unused cache lines. However, they all have to pay the price of performance degradation. This paper presents a cache architecture, the snug set-associative (SSA) cache, that does not only cut most of static power dissipation but also reduces execution times. The SSA cache reduces leakage power by implementing the minimum set-associative scheme, which only activates the minimal numbers of ways in each cache set, while the performance losses incurred by this scheme are compensated by the base-offset load/store queues. These two techniques are both developed based on the principle of locality and they work together nicely - experimental results show that the minimum set-associative scheme can cut static power consumption of the L1 data cache by 90% on average for SPECint2000 benchmarks, while the execution times are reduced by 3% when the default 8-entry load/store queue is modified to the base-offset design. Furthermore, the SSA cache can trim the leakage power of L2 data cache by 96% on average while still accomplishing a 3% reduction in execution times.
Jia-Jhe Li, Yuan-Shin Hwang
ISLPED2
2004 Interprocedural Probabilistic Pointer Analysis
abstract
When performing aggressive optimizations and parallelization to exploit features of advanced architectures, optimizing and parallelizing compilers need to quantitatively assess the profitability of any transformations in order to achieve high performance. Useful optimizations and parallelization can be performed if it is known that certain points-to relationships would hold with high or low probabilities. For instance, if the probabilities are low, a compiler could transform programs to perform data speculation or partition iterations into threads in speculative multithreading, or it would avoid conducting code specialization. Consequently, it is essential for compilers to incorporate pointer analysis techniques that can estimate the possibility for every points-to relationship that it would hold during the execution. However, conventional pointer analysis techniques do not provide such quantitative descriptions and, thus, hinder compilers from more aggressive optimizations, such as thread partitioning in speculative multithreading, data speculations, code specialization, etc. We address this issue by proposing a probabilistic points-to analysis technique to compute the probability of every points-to relationship at each program point. A context-sensitive interprocedural algorithm has been implemented based on the iterative data flow analysis framework, and has been incorporated into SUIF and MachSUIF. Experimental results show this technique can estimate the probabilities of points-to relationships in benchmark programs with reasonable small errors, about 4.6 percent on average. Furthermore, the current implementation cannot disambiguate heap and array elements. The errors are further significantly reduced when the future implementation incorporates techniques to disambiguate heap and array elements.
Peng-Sheng Chen, Yuan-Shin Hwang, Roy Dz-Ching Ju, Jenq Kuen Lee
IEEE Trans. Parallel Distributed Syst.2
2003 Compiler support for speculative multithreading architecture with probabilistic points-to analysis
abstract
Speculative multithreading (SpMT) architecture can exploit thread-level parallelism that cannot be identified statically. Speedup can be obtained by speculatively executing threads in parallel that are extracted from a sequential program. However, performance degradation might happen if the threads are highly dependent, since a recovery mechanism will be activated when a speculative thread executes incorrectly and such a recovery action usually incurs a very high penalty. Therefore, it is essential for SpMT to quantify the degree of dependences and to turn off speculation if the degree of dependences passes certain thresholds. This paper presents a technique that quantitatively computes dependences between loop iterations and such information can be used to determine if loop iterations can be executed in parallel by speculative threads. This technique can be broken into two steps. First probabilistic points-to analysis is performed to estimate the probabilities of points-to relationships in case there are pointer references in programs, and then the degree of dependences between loop iterations is computed quantitatively. Preliminary experimental results show compiler-directed thread-level speculation based on the information gathered by this technique can achieve significant performance improvement on SpMT.
Peng-Sheng Chen, Ming-Yu Hung, Yuan-Shin Hwang, Roy Dz-Ching Ju, Jenq Kuen Lee
PPoPP3
2003 Identifying parallelism in programs with cyclic graphs
Yuan-Shin Hwang, Joel H. Saltz
J. Parallel Distributed Comput.1
2003 An Efficient Algorithm for Perfect Load Balancing on Hypercube Multiprocessors
Gene Eu Jan, Yuan-Shin Hwang
J. Supercomput.2
2002 Parallelizing graph construction operations in programs with cyclic graphs
Yuan-Shin Hwang
Parallel Comput.1
2000 Identifying Parallelism in Programs with Cyclic Graphs
abstract
Dependence analysis algorithms have been proposed to identify parallelism in programs with tree-like data structures. However, they can not analyze the dependence of statements if recursive data structures of programs are cyclic. This paper presents a technique to identify parallelism in programs with cyclic graphs. The technique consists of three steps: (1) Traversal patterns that loops or recursive procedures traverse graphs are identified, and the statements that construct the links of traversal patterns are located by definition-use chains of recursive data structures; (2) Shape analysis is performed to estimate possible shapes of traversal patterns; (3) Dependence analysis is performed to identify parallelism using the result of shape analysis. This approach can identify parallelism in programs with cyclic data structures due to the facts that many programs follow acyclic structures (i.e. traversal patterns) to access all nodes on the cyclic data structures. Once the traversal patterns are isolated from the overall data structures, dependence analysis can be applied to identify parallelism.
Yuan-Shin Hwang, Joel H. Saltz
ICPP1
1995 Runtime and Language Support for Compiling Adaptive Irregular Programs on Distributed-memory Machines
abstract
Abstract In many scientific applications, arrays containing data are indirectly indexed through indirection arrays. Such scientific applications are called irregular programs and are a distinct class of applications that require special techniques for parallelization. This paper presents a library called CHAOS, which helps users implement irregular programs on distributed‐memory message‐passing machines, such as the Paragon, Delta, CM‐5 and SP‐1. The CHAOS library provides efficient runtime primitives for distributing data and computation over processors; it supports efficient index translation mechanisms and provides users high‐level mechanisms for optimizing communication. CHAOS subsumes the previous PARTI library and supports a larger class of applications. In particular, it provides efficient support for parallelization of adaptive irregular programs where indirection arrays are modified during the course of computation. To demonstrate the efficacy of CHAOS, two challenging real‐life adaptive applications were parallelized using CHAOS primitives: a molecular dynamics code, CHARMM, and a particle‐in‐cell code, DSMC. Besides providing runtime support to users, CHAOS can also be used by compilers to automatically parallelize irregular applications. This paper demonstrates how CHAOS can be effectively used in such a framework. By embedding CHAOS primitives in the Syracuse Fortran 90D/HPF compiler, kernels taken from the CHARMM and DSMC codes have been automatically parallelized.
Yuan-Shin Hwang, Bongki Moon, Shamik D. Sharma, Ravi Ponnusamy, Raja Das, Joel H. Saltz
Softw. Pract. Exp.1
1995 Runtime Support and Compilation Methods for User-Specified Irregular Data Distributions
abstract
This paper describes two new ideas by which a High Performance Fortran compiler can deal with irregular computations effectively. The first mechanism invokes a user specified mapping procedure via a set of proposed compiler directives. The directives allow use of program arrays to describe graph connectivity, spatial location of array elements, and computational load. The second mechanism is a conservative method for compiling irregular loops in which dependence arises only due to reduction operations. This mechanism in many cases enables a compiler to recognize that it is possible to reuse previously computed information from inspectors (e.g., communication schedules, loop iteration partitions, and information that associates off-processor data copies with on-processor buffer locations). This paper also presents performance results for these mechanisms from a Fortran 90D compiler implementation.>
Ravi Ponnusamy, Joel H. Saltz, Alok N. Choudhary, Yuan-Shin Hwang, Geoffrey C. Fox
IEEE Trans. Parallel Distributed Syst.4
1994 Run-time and compile-time support for adaptive irregular problems
abstract
In adaptive irregular problems, data arrays are accessed via indirection arrays, and data access patterns change during computation. Parallelizing such problems on distributed memory machines requires support for dynamic data partitioning, efficient preprocessing and fast data migration. This paper describes CHAOS, a library of efficient runtime primitives that provides such support. To demonstrate the effectiveness of the runtime support, two adaptive irregular applications have been parallelized using CHAOS primitives: a molecular dynamics code (CHARMM) and a code for simulating gas flows (DSMC). We have also proposed minor extensions to Fortran D which would enable compilers to parallelize irregular for all loops in such adaptive applications by embedding calls to primitives provided by a runtime library. We have implemented our proposed extensions in the Syracuse Fortran 90D/HPF prototype compiler, and have used the compiler to parallelize kernels from two adaptive applications.>
Shamik D. Sharma, Ravi Ponnusamy, Bongki Moon, Yuan-Shin Hwang, Raja Das, Joel H. Saltz
SC4
1994 Communication Optimizations for Irregular Scientific Computations on Distributed Memory Architectures
Raja Das, Mustafa Uysal, Joel H. Saltz, Yuan-Shin Hwang
J. Parallel Distributed Comput.4