Hiroshi Inoue

dblp:39/4891 · DBLP profile ↗
← Back
33ranked-venue papers
15as first author
4since 2021 · last 2023
—ORCID · conflict

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

Software engineering, systems software and programming languages · 10 · 6 first-author · 1 since 2021Systems, architecture and hardware · 9 · 2 first-author · 2 since 2021Databases, data management, data science and information retrieval · 8 · 6 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 6 · 3 first-author · 1 since 2021Artificial intelligence and machine learning · 5 · 4 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 4 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 2 · 1 since 2021

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
7 papers
Hardware accelerators and domain-specific architectures · 42% Emerging computing paradigms · 20% Memory systems · 16%
Software engineering, system software, and programming languages
6 papers
Runtime systems and virtual machines · 68% Compilers and program optimization · 27% Program analysis · 5%
Theoretical computer science
2 papers
Algorithms and data structures · 54% Computational complexity · 46%

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

TopicWeightPapersLastEvidence papers
Hardware accelerators and domain-specific architectures
machine learning accelerator
0.922021
RaPiD: AI Accelerator for Ultra-low Precision Training and Inference · ISCA 2021
Efficient AI System Design With Cross-Layer Approximate Computing · Proc. IEEE 2020
Hardware accelerators and domain-specific architectures › machine learning accelerator
DNN training accelerator
0.512021
RaPiD: AI Accelerator for Ultra-low Precision Training and Inference · ISCA 2021
Emerging computing paradigms
approximate computing
0.412020
Efficient AI System Design With Cross-Layer Approximate Computing · Proc. IEEE 2020
Hardware accelerators and domain-specific architectures
approximate computing accelerator
0.412020
Efficient AI System Design With Cross-Layer Approximate Computing · Proc. IEEE 2020
Emerging computing paradigms › approximate computing
cross-layer approximate computing
0.412020
Efficient AI System Design With Cross-Layer Approximate Computing · Proc. IEEE 2020
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.452013
Adaptive multi-level compilation in a trace-based Java JIT compiler · OOPSLA 2012
Reducing trace selection footprint for large-scale Java applications without performance loss · OOPSLA 2011
A new idiom recognition framework for exploiting hardware-assist instructions · ASPLOS 2006
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
trace-based compilation
0.432012
Adaptive multi-level compilation in a trace-based Java JIT compiler · OOPSLA 2012
Reducing trace selection footprint for large-scale Java applications without performance loss · OOPSLA 2011
Improving the performance of trace-based systems by false loop filtering · ASPLOS 2011
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
trace selection
0.222011
Reducing trace selection footprint for large-scale Java applications without performance loss · OOPSLA 2011
Improving the performance of trace-based systems by false loop filtering · ASPLOS 2011
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.222012
Adaptive multi-level compilation in a trace-based Java JIT compiler · OOPSLA 2012
How a Java VM can get more from a hardware performance monitor · OOPSLA 2009
Compilers and program optimization › compiler analysis
idiom recognition
0.222013
Idiom recognition framework using topological embedding · ACM Trans. Archit. Code Optim. 2013
A new idiom recognition framework for exploiting hardware-assist instructions · ASPLOS 2006
Memory systems
cache
0.212015
SIMD- and Cache-Friendly Algorithm for Sorting an Array of Structures · Proc. VLDB Endow. 2015
Memory systems › cache
cache-aware algorithm design
0.212015
SIMD- and Cache-Friendly Algorithm for Sorting an Array of Structures · Proc. VLDB Endow. 2015
Parallel and multicore computing › parallel algorithms › sorting
parallel sorting
0.212015
SIMD- and Cache-Friendly Algorithm for Sorting an Array of Structures · Proc. VLDB Endow. 2015
Algorithms and data structures › sequence algorithms
sorting
0.212015
SIMD- and Cache-Friendly Algorithm for Sorting an Array of Structures · Proc. VLDB Endow. 2015
Processor architecture and microarchitecture › branch prediction
branch misprediction
0.212014
Faster Set Intersection with SIMD instructions by Reducing Branch Mispredictions · Proc. VLDB Endow. 2014
Performance modeling and evaluation
workload characterization
0.212014
Faster Set Intersection with SIMD instructions by Reducing Branch Mispredictions · Proc. VLDB Endow. 2014
Computational complexity › communication complexity › two-party communication
set intersection
0.212014
Faster Set Intersection with SIMD instructions by Reducing Branch Mispredictions · Proc. VLDB Endow. 2014
Energy-efficient computing › energy-efficient architecture
energy-efficient accelerator
0.112021
RaPiD: AI Accelerator for Ultra-low Precision Training and Inference · ISCA 2021
Compilers and program optimization › dynamic optimization
adaptive compilation
0.112012
Adaptive multi-level compilation in a trace-based Java JIT compiler · OOPSLA 2012
Machine learning › Deep learning architectures and training
neural network inference
0.112020
Efficient AI System Design With Cross-Layer Approximate Computing · Proc. IEEE 2020
Program analysis › dynamic analysis
profiling
0.112009
How a Java VM can get more from a hardware performance monitor · OOPSLA 2009
Cloud and datacenter computing
cloud service provider
0.112009
How a Java VM can get more from a hardware performance monitor · OOPSLA 2009
Memory systems › memory management
memory allocation
0.112009
A study of memory management for web-based applications on multicore processors · PLDI 2009
Memory systems
memory bandwidth
0.112009
A study of memory management for web-based applications on multicore processors · PLDI 2009
Memory systems
memory management
0.112009
A study of memory management for web-based applications on multicore processors · PLDI 2009
Performance modeling and evaluation
profiling
0.112009
How a Java VM can get more from a hardware performance monitor · OOPSLA 2009
Processor architecture and microarchitecture
chip multiprocessor
0.012009
A study of memory management for web-based applications on multicore processors · PLDI 2009
Performance modeling and evaluation › workload characterization › commercial workloads
web server workload
0.012009
A study of memory management for web-based applications on multicore processors · PLDI 2009
Processor architecture and microarchitecture
instruction set architecture
0.012006
A new idiom recognition framework for exploiting hardware-assist instructions · ASPLOS 2006

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

quantization · 0.9pruning · 0.9mixed-precision arithmetic · 0.9custom number representation · 0.9SIMD · 0.8performance modeling · 0.5radix sort · 0.4merge-based algorithm · 0.4topological embedding · 0.2hardware performance monitor sampling · 0.2exact pattern matching · 0.2trace selection · 0.1timer-based sampling profiler · 0.1control flow graph · 0.1trace compilation · 0.1profiling · 0.1call-stack comparison · 0.1callstack analysis · 0.1
YearPublicationVenuePosition
2023 Sparsity-Driven Joint Blind Deconvolution-Demodulation with Application to Motor Fault Detection
abstract
Motor current signature analysis (MCSA) has been widely used in motor fault diagnosis by extracting characteristic frequency components in the spectrum of the stator current. However, fault signatures in the motor current are generally weak and easily influenced by noise and spectrum distortion caused by varying loads, especially in the early stage of motor faults. In this paper, we develop a sparsity-driven joint blind deconvolution-demodulation approach to extract small fault signatures of motors operating at a varying load. Results on experimental data demonstrate that our approach can effectively extract fault signatures from real noisy measurements of different load variation patterns.
Varun A. Kelkar, Dehong Liu, Hiroshi Inoue, Makoto Kanemaru
ICASSP3
2022 Topological Data Analysis for Electric Motor Eccentricity Fault Detection
abstract
In this paper, we develop topological data analysis (TDA) method for motor current signature analysis (MCSA), and apply it to induction motor eccentricity fault detection. We introduce TDA and present the procedure of extracting topological features from time-domain data that will be represented using persistence diagrams and vectorized Betti sequences. The procedure is applied to induction machine phase current signal analysis, and shown to be highly effective in differentiating signals from different eccentricity levels. With TDA, we are able to use a simple regression model that can predict the fault levels with reasonable accuracy, even for the data of eccentricity levels that are not seen in the training data. The proposed method is model-free, and only requires a small segment of time-domain data to make prediction. These advantages make it attractive for a wide range of fault detection applications.
Chungwei Lin, Hiroshi Inoue, Makoto Kanemaru
IECON3
2021 Multi-step LRU: SIMD-based Cache Replacement for Lower Overhead and Higher Precision
abstract
A key-value cache is a key component of many services to provide low-latency and high-throughput data accesses to a huge amount of data. To improve the end-to-end performance of such services, a key-value cache must achieve a high cache hit ratio with high throughput. In this paper, we propose a new cache replacement algorithm, multi-step LRU, which achieves high throughput by efficiently exploiting SIMD instructions without using per-item additional memory (LRU metadata) to record information such as the last access timestamp. For a small set of items that can fit within a vector register, SIMD-based LRU management without LRU metadata is known (in-vector LRU). It remembers the access history by reordering items in one vector using vector shuffle instruction. In-vector LRU alone cannot be used for a caching system since it can manage only few items. Set-associative cache is a straightforward way to build a large cache using in-vector LRU as a building block. However, a naive set-associative cache based on in-vector LRU has a poorer cache hit ratio than the original LRU although it can achieve a high throughput. Our multi-step LRU enhances naive set-associative cache based on in-vector LRU for improving cache accuracy by taking both access frequency and access recency of items into account while keeping the efficiency by SIMD instructions. Our results indicate that multi-step LRU outperforms the original LRU and GCLOCK algorithms in terms of both execution speed and cache hit ratio. Multi-step LRU improves the cache hit ratios over the original LRU by implicitly taking access frequency of items as well as access recency into account. The cache hit ratios of multi-step LRU are similar to those of ARC, which achieves a higher a cache hit ratio in a tradeoff for using more LRU metadata.
Hiroshi Inoue
IEEE BigData1
2021 RaPiD: AI Accelerator for Ultra-low Precision Training and Inference
abstract
The growing prevalence and computational demands of Artificial Intelligence (AI) workloads has led to widespread use of hardware accelerators in their execution. Scaling the performance of AI accelerators across generations is pivotal to their success in commercial deployments. The intrinsic error-resilient nature of AI workloads present a unique opportunity for performance/energy improvement through precision scaling. Motivated by the recent algorithmic advances in precision scaling for inference and training, we designed RaPiD1, a 4-core AI accelerator chip supporting a spectrum of precisions, namely, 16 and 8-bit floating-point and 4 and 2-bit fixed-point. The 36mm2RaPiD chip fabricated in 7nm EUV technology delivers a peak 3.5 TFLOPS/W in HFP8 mode and 16.5 TOPS/W in INT4 mode at nominal voltage. Using a performance model calibrated to within 1% of the measurement results, we evaluated DNN inference using 4-bit fixed-point representation for a 4-core 1 RaPiD chip system and DNN training using 8-bit floating point representation for a 768 TFLOPs AI system comprising 4 32-core RaPiD chips. Our results show INT4 inference for batch size of 1 achieves 3 - 13.5 (average 7) TOPS/W and FP8 training for a mini-batch of 512 achieves a sustained 102 - 588 (average 203) TFLOPS across a wide range of applications.
Swagath Venkataramani, Vijayalakshmi Srinivasan, Wei Wang 0333, Sanchari Sen, Ankur Agrawal, Monodeep Kar, Shubham Jain 0004, Alberto Mannari, Hoang Tran, Eri Ogawa, Kazuaki Ishizaki, Hiroshi Inoue, Marcel Schaal, Mauricio J. Serrano, Jungwook Choi, Xiao Sun 0013, Naigang Wang, Chia-Yu Chen, Allison Allain, James Bonanno, Nianzheng Cao, Robert Casatuta, Matthew Cohen, Bruce M. Fleischer, Michael Guillorn, Howard Haynie, Jinwook Jung, Mingu Kang, Kyu-Hyoun Kim, Siyu Koswatta, Sae Kyu Lee, Martin Lutz, Silvia M. Müller, Jinwook Oh, Ashish Ranjan 0001, Zhibin Ren, Scot Rider, Kerstin Schelm, Michael Scheuermann, Joel Silberman, Vidhi Zalani, Xin Zhang 0025, Ching Zhou, Matthew M. Ziegler, Vinay Shah, Moriyoshi Ohara, Pong-Fei Lu, Brian W. Curran, Sunil Shukla, Leland Chang, Kailash Gopalakrishnan
ISCA14
2020 Efficient AI System Design With Cross-Layer Approximate Computing
abstract
Advances in deep neural networks (DNNs) and the availability of massive real-world data have enabled superhuman levels of accuracy on many AI tasks and ushered the explosive growth of AI workloads across the spectrum of computing devices. However, their superior accuracy comes at a high computational cost, which necessitates approaches beyond traditional computing paradigms to improve their operational efficiency. Leveraging the application-level insight of error resilience, we demonstrate how approximate computing (AxC) can significantly boost the efficiency of AI platforms and play a pivotal role in the broader adoption of AI-based applications and services. To this end, we present RaPiD, a multi-tera operations per second (TOPS) AI hardware accelerator core (fabricated at 14-nm technology) that we built from the ground-up using AxC techniques across the stack including algorithms, architecture, programmability, and hardware. We highlight the workload-guided systematic explorations of AxC techniques for AI, including custom number representations, quantization/pruning methodologies, mixed-precision architecture design, instruction sets, and compiler technologies with quality programmability, employed in the RaPiD accelerator.
Swagath Venkataramani, Xiao Sun 0013, Naigang Wang, Chia-Yu Chen, Jungwook Choi, Mingu Kang, Ankur Agarwal, Jinwook Oh, Shubham Jain 0004, Tina Babinsky, Nianzheng Cao, Thomas W. Fox, Bruce M. Fleischer, George Gristede, Michael Guillorn, Howard Haynie, Hiroshi Inoue, Kazuaki Ishizaki, Michael J. Klaiber, Shih-Hsien Lo, Gary W. Maier, Silvia M. Müller, Michael Scheuermann, Eri Ogawa, Marcel Schaal, Mauricio J. Serrano, Joel Silberman, Christos Vezyrtzis, Wei Wang 0333, Fanchieh Yee, Matthew M. Ziegler, Ching Zhou, Moriyoshi Ohara, Pong-Fei Lu, Brian W. Curran, Sunil Shukla, Vijayalakshmi Srinivasan, Leland Chang, Kailash Gopalakrishnan
Proc. IEEE17
2019 Adaptive Ensemble Prediction for Deep Neural Networks based on Confidence Level
abstract
Ensembling multiple predictions is a widely used technique for improving the accuracy of various machine learning tasks. One obvious drawback of ensembling is its higher execution cost during inference. In this paper, we first describe our insights on the relationship between the probability of prediction and the effect of ensembling with current deep neural networks; ensembling does not help mispredictions for inputs predicted with a high probability even when there is a non-negligible number of mispredicted inputs. This finding motivated us to develop a way to adaptively control the ensembling. If the prediction for an input reaches a high enough probability, i.e., the output from the softmax function, on the basis of the confidence level, we stop ensembling for this input to avoid wasting computation power. We evaluated the adaptive ensembling by using various datasets and showed that it reduces the computation cost significantly while achieving accuracy similar to that of static ensembling using a pre-defined number of local predictions. We also show that our statistically rigorous confidence-level-based early-exit condition reduces the burden of task-dependent threshold tuning better compared with naive early exit based on a pre-defined threshold in addition to yielding a better accuracy with the same cost.
Hiroshi Inoue
AISTATS1
2017 Fast interpolation of grid data at a non-grid point
abstract
Defining data at a non-grid point by interpolating grid data is a common operation in many workloads including scientific applications and imaging applications. This paper describes our technique to accelerate this interpolation operation and show its performance benefit using 3D computed tomography reconstruction. The 3D CT is one of the compute-intensive medical imaging applications that frequently interpolates grid data (2D images) at a non-grid point. To efficiently execute this operation with SIMD instructions, we create an in-memory pre-computed table from the input 2D image at runtime before projecting voxels onto each image to 1) reduce the amount of computation and 2) avoid non-contiguous memory accesses that attenuate the benefits of SIMD instructions. We implemented and evaluated our pre-computation technique using a bilinear interpolation and a 3rd-degree Lagrange interpolation on POWER8 processors; it yields up to 75% and 57% performance improvements in the RabbitCT benchmark for the two interpolation algorithms respectively.
Hiroshi Inoue
IEEE BigData1
2017 Accelerating Spark Datasets by Inlining Deserialization
abstract
Apache Spark is a framework for distributed computing that supports the map-reduce programming model. The SQL module of Spark contains Datasets, i.e., distributed collections of records stored in a serialized low-level format in a manually managed chunk of memory. However, the functions users provide to the map-reduce computations expect Java objects. Datasets perform an additional deserialization step beforehand to support the user-provided function, which increases the overhead. We tackled this problem by replacing map functions with their counterparts that accepted the serialized data. This allowed us to skip the unnecessary part of deserialization and achieve faster data processing speeds.
Jan Wroblewski, Kazuaki Ishizaki, Hiroshi Inoue, Moriyoshi Ohara
IPDPS3
2016 Fragmented BWT: An Extended BWT for Full-Text Indexing
Masaru Ito, Hiroshi Inoue, Kenjiro Taura
SPIRE2
2015 SIMD- and Cache-Friendly Algorithm for Sorting an Array of Structures
abstract
This paper describes our new algorithm for sorting an array of structures by efficiently exploiting the SIMD instructions and cache memory of today's processors. Recently, multiway mergesort implemented with SIMD instructions has been used as a high-performance in-memory sorting algorithm for sorting integer values. For sorting an array of structures with SIMD instructions, a frequently used approach is to first pack the key and index for each record into an integer value, sort the key-index pairs using SIMD instructions, then rearrange the records based on the sorted key-index pairs. This approach can efficiently exploit SIMD instructions because it sorts the key-index pairs while packed into integer values; hence, it can use existing high-performance sorting implementations of the SIMD-based multiway mergesort for integers. However, this approach has frequent cache misses in the final rearranging phase due to its random and scattered memory accesses so that this phase limits both single-thread performance and scalability with multiple cores. Our approach is also based on multiway mergesort, but it can avoid costly random accesses for rearranging the records while still efficiently exploiting the SIMD instructions. Our results showed that our approach exhibited up to 2.1x better single-thread performance than the key-index approach implemented with SIMD instructions when sorting 512M 16-byte records on one core. Our approach also yielded better performance when we used multiple cores. Compared to an optimized radix sort, our vectorized multiway mergesort achieved better performance when the each record is large. Our vectorized multiway mergesort also yielded higher scalability with multiple cores than the radix sort.
Hiroshi Inoue, Kenjiro Taura
Proc. VLDB Endow.1
2014 A 65-nm CMOS burst-mode CDR based on a GVCO with symmetric loops
abstract
A 12.5-Gb/s burst-mode clock and data recovery (BCDR) circuit based on a simple gated voltage-controlled oscillator (GVCO) is presented. A simple symmetric circuit topology makes the area for the GVCO smaller and leads to an easier timing design. The GVCO consists of two loops which operate complementarily. The same type of circuit configurations are adopted for AND and OR in the loops to reduce the difficulties in the timing alignment of the signals from the loops. To confirm the validity of the proposed topology, we fabricated a 12.5-Gb/s-BCDR IC with the 65-nm-MOSFET process. Without a circuit for precise timing adjustment for the signals in the two loops, the IC provides instantaneous phase locking of 1 bit for burst data input of 12.5 G/s. The measured jitter is lower than 2 ps rms. The area and the power consumption for the core GVCO are 0.03 mm2and 60 mW, respectively.
Keiji Kishine, Hiroshi Inoue, Hiromi Inaba, Makoto Nakamura, Akira Tsuchiya, Hidetoshi Onodera, Hiroaki Katsurai
ISCAS2
2014 Faster Set Intersection with SIMD instructions by Reducing Branch Mispredictions
abstract
Set intersection is one of the most important operations for many applications such as Web search engines or database management systems. This paper describes our new algorithm to efficiently find set intersections with sorted arrays on modern processors with SIMD instructions and high branch misprediction penalties. Our algorithm efficiently exploits SIMD instructions and can drastically reduce branch mispredictions. Our algorithm extends a merge-based algorithm by reading multiple elements, instead of just one element, from each of two input arrays and compares all of the pairs of elements from the two arrays to find the elements with the same values. The key insight for our improvement is that we can reduce the number of costly hard-to-predict conditional branches by advancing a pointer by more than one element at a time. Although this algorithm increases the total number of comparisons, we can execute these comparisons more efficiently using the SIMD instructions and gain the benefits of the reduced branch misprediction overhead. Our algorithm is suitable to replace existing standard library functions, such as std::set_intersection in C++, thus accelerating many applications, because the algorithm is simple and requires no preprocessing to generate additional data structures. We implemented our algorithm on Xeon and POWER7+. The experimental results show our algorithm outperforms the std::set_intersection implementation delivered with gcc by up to 5.2x using SIMD instructions and by up to 2.1x even without using SIMD instructions for 32-bit and 64-bit integer datasets. Our SIMD algorithm also outperformed an existing algorithm that can leverage SIMD instructions.
Hiroshi Inoue, Moriyoshi Ohara, Kenjiro Taura
Proc. VLDB Endow.1
2013 Idiom recognition framework using topological embedding
abstract
Modern processors support hardware-assist instructions (such as TRT and TROT instructions on the IBM System z) to accelerate certain functions such as delimiter search and character conversion. Such special instructions are often used in high-performance libraries, but their exploitation in optimizing compilers has been limited. We devised a new idiom recognition technique based on a topological embedding algorithm to detect idiom patterns in the input programs more aggressively than in previous approaches using exact pattern matching. Our approach can detect a pattern even if the code segment does not exactly match the idiom. For example, we can detect a code segment that includes additional code within the idiom pattern. We also propose an instruction simplification for the idiom recognition. This optimization analyzes all of the usages of the output of the optimized code for a specific idiom. If we find that we do not need an actual value for the output but only a value in a subrange, then we can assign a value in that subrange as the output. The code generation can generate faster code with this optimization. We implemented our new idiom recognition approach based on the Java Just-In-Time (JIT) compiler that is part of the J9 Java Virtual Machine, and we supported several important idioms for the special hardware-assist instructions on the IBM System z and on some models of the IBM System p. To demonstrate the effectiveness of our technique, we performed two experiments. The first experiment was to see how many more patterns we can detect compared to the previous approach. The second experiment measured the performance improvements over the previous approaches. For the first experiment, we used the Java Compatibility Kit (JCK) API tests. For the second experiment we used the IBM XML parser, SPECjvm98, and SPCjbb2000. In summary, relative to a baseline implementation using exact pattern matching, our algorithm converted 76% more loops in JCK tests. On a z9, we also observed significant average performance improvement of the XML parser by 54%, of SPECjvm98 by 1.9%, and of SPECjbb2000 by 4.4%. Finally, we observed that the JIT compilation time increased by only 0.32% to 0.44%.
Motohiro Kawahito, Hideaki Komatsu, Takao Moriyama, Hiroshi Inoue, Toshio Nakatani
ACM Trans. Archit. Code Optim.4
2012 Identifying the sources of cache misses in Java programs without relying on hardware counters
abstract
Cache miss stalls are one of the major sources of performance bottlenecks for multicore processors. A Hardware Performance Monitor (HPM) in the processor is useful for locating the cache misses, but is rarely used in the real world for various reasons. It would be better to find a simple approach to locate the sources of cache misses and apply runtime optimizations without relying on an HPM. This paper shows that pointer dereferencing in hot loops is a major source of cache misses in Java programs. Based on this observation, we devised a new approach to identify the instructions and objects that cause frequent cache misses. Our heuristic technique effectively identifies the majority of the cache misses in typical Java programs by matching the hot loops to simple idiomatic code patterns. On average, our technique selected only 2.8% of the load and store instructions generated by the JIT compiler and these instructions accounted for 47% of the L1D cache misses and 49% of the L2 cache misses caused by the JIT-compiled code. To prove the effectiveness of our technique in compiler optimizations, we prototyped object placement optimizations, which align objects in cache lines or collocate paired objects in the same cache line to reduce cache misses. For comparison, we also implemented the same optimizations based on the accurate information obtained from the HPM. Our results showed that our heuristic approach was as effective as the HPM-based approach and achieved comparable performance improvements in the SPECjbb2005 and SPECpower_ssj2008 benchmark programs.
Hiroshi Inoue, Toshio Nakatani
ISMM1
2012 Adaptive multi-level compilation in a trace-based Java JIT compiler
abstract
This paper describes our multi-level compilation techniques implemented in a trace-based Java JIT compiler (trace-JIT). Like existing multi-level compilation for method-based compilers, we start JIT compilation with a small compilation scope and a low optimization level so the program can start running quickly. Then we identify hot paths with a timer-based sampling profiler, generate long traces that capture the hot paths, and recompile them with a high optimization level to improve the peak performance. A key to high performance is selecting long traces that effectively capture the entire hot paths for upgrade recompilations. To do this, we introduce a new technique to generate a directed graph representing the control flow, a TTgraph, and use the TTgraph in the trace selection engine to efficiently select long traces. We show that our multi-level compilation improves the peak performance of programs by up to 58.5% and 22.2% on average compared to compiling all of the traces only at a low optimization level. Comparing the performance with our multi-level compilation to the performance when compiling all of the traces at a high optimization level, our technique can reduce the startup times of programs by up to 61.1% and 31.3% on average without significant reduction in the peak performance. Our results show that our adaptive multi-level compilation can balance the peak performance and startup time by taking advantage of different optimization levels.
Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu 0001, Toshio Nakatani
OOPSLA1
2012 A high-performance sorting algorithm for multicore single-instruction multiple-data processors
abstract
SUMMARY Many sorting algorithms have been studied in the past, but there are only a few algorithms that can effectively exploit both single‐instruction multiple‐data (SIMD) instructions and thread‐level parallelism. In this paper, we propose a new high‐performance sorting algorithm, called aligned‐access sort (AA‐sort), that exploits both the SIMD instructions and thread‐level parallelism available on today's multicore processors. Our algorithm consists of two phases, an in‐core sorting phase and an out‐of‐core merging phase. The in‐core sorting phase uses our new sorting algorithm that extends combsort to exploit SIMD instructions. The out‐of‐core algorithm is based on mergesort with our novel vectorized merging algorithm. Both phases can take advantage of SIMD instructions. The key to high performance is eliminating unaligned memory accesses that would reduce the effectiveness of SIMD instructions in both phases. We implemented and evaluated the AA‐sort on PowerPC 970MP and Cell Broadband Engine platforms. In summary, a sequential version of the AA‐sort using SIMD instructions outperformed IBM's optimized sequential sorting library by 1.8 times and bitonic mergesort using SIMD instructions by 3.3 times on PowerPC 970MP when sorting 32 million random 32‐bit integers. Also, a parallel version of AA‐sort demonstrated better scalability with increasing numbers of cores than a parallel version of bitonic mergesort on both platforms. Copyright © 2011 John Wiley & Sons, Ltd.
Hiroshi Inoue, Takao Moriyama, Hideaki Komatsu, Toshio Nakatani
Softw. Pract. Exp.1
2011 Improving the performance of trace-based systems by false loop filtering
abstract
Trace-based compilation is a promising technique for language compilers and binary translators. It offers the potential to expand the compilation scopes that have traditionally been limited by method boundaries.Detecting repeating cyclic execution paths and capturing the detected repetitions into traces is a key requirement for trace selection algorithms to achieve good optimization and performance with small amounts of code. One important class of repetition detection is cyclic-path-based repetition detection, where a cyclic execution path (a path that starts and ends at the same instruction address) is detected as a repeating cyclic execution path.However, we found many cyclic paths that are not repeating cyclic execution paths, which we call false loops. A common class of false loops occurs when a method is invoked from multiple call-sites. A cycle is formed between two invocations of the method from different call-sites, but which does not represent loops or recursion. False loops can result in shorter traces and smaller compilation scopes, and degrade the performance.We propose false loop filtering, an approach to reject false loops in the repetition detection step of trace selection, and a technique called false loop filtering by call-stack-comparison, which rejects a cyclic path as a false loop if the call stacks at the beginning and the end of the cycle are different.We applied false loop filtering to our trace-based Java™ JIT compiler that is based on IBM's J9 JVM. We found that false loop filtering achieved an average improvement of 16% and 10% for the DaCapo benchmark when applied to two baseline trace selection algorithms, respectively, with up to 37% improvement for individual benchmarks. In the end, with false loop filtering, our trace-based JIT achieves a performance comparable to that of the method-based J9 JVM/JIT using the corresponding optimization level.
Hiroshige Hayashizaki, Peng Wu 0001, Hiroshi Inoue, Mauricio J. Serrano, Toshio Nakatani
ASPLOS3
2011 A trace-based Java JIT compiler retrofitted from a method-based compiler
abstract
This paper describes our trace-based JIT compiler (trace-JIT) for Java developed from a production-quality method-based JIT compiler (method-JIT). We first describe the design and implementation of our trace-JIT with emphasis on how we retrofitted a method-JIT as a trace-based compiler. Then we show that the trace-JIT often produces better quality code than the method-JIT by extending the compilation scope. Forming longer traces that span multiple methods turns out to be more powerful than method inlining in extending the compilation scope. It reduces method-invocation overhead and also offers more compiler optimization opportunities. However, the trace-JIT incurs additional runtime overhead compared to the method-JIT that may be offset by gains from the improved code quality. Overall, our trace-JIT achieved performance roughly comparable to the baseline method-JIT. We also discuss the issues in trace-based compilation from the viewpoint of compiler optimizations. Our results show the potentials of trace-based compilation as an alternative or complementary approach to compiling languages with mature method-based compilers.
Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu 0001, Toshio Nakatani
CGO1
2011 Reducing trace selection footprint for large-scale Java applications without performance loss
abstract
When optimizing large-scale applications, striking the balance between steady-state performance, start-up time, and code size has always been a grand challenge. While recent advances in trace compilation have significantly improved the steady-state performance of trace JITs for large-scale Java applications, the size control aspect of a trace compilation system remains largely overlooked. For instance, using the DaCapo 9.12 benchmarks, we observe that 40% of traces selected by a state-of-the-art trace selection algorithm are short-lived and, on average, each selected basic block is replicated 13 times in the trace cache.
Peng Wu 0001, Hiroshige Hayashizaki, Hiroshi Inoue, Toshio Nakatani
OOPSLA3
2010 A Default Risk Model in a Fuzzy Framework
Hiroshi Inoue, Masatoshi Miyake
IPMU (2)1
2009 How a Java VM can get more from a hardware performance monitor
abstract
This paper describes our sampling-based profiler that exploits a processor's HPM (Hardware Performance Monitor) to collect information on running Java applications for use by the Java VM. Our profiler provides two novel features: Java-level event profiling and lightweight context-sensitive event profiling. For Java events, we propose new techniques to leverage the sampling facility of the HPM to generate object creation profiles and lock activity profiles. The HPM sampling is the key to achieve a smaller overhead compared to profilers that do not rely on hardware helps. To sample the object creations with the HPM, which can only sample hardware events such as executed instructions or cache misses, we correlate the object creations with the store instructions for Java object headers. For the lock activity profile, we introduce an instrumentation-based technique, called ProbeNOP, which uses a special NOP instruction whose executions are counted by the HPM. For the context-sensitive event profiling, we propose a new technique called CallerChaining, which detects the calling context of HPM events based on the call stack depth (the value of the stack frame pointer). We show that it can detect the calling contexts in many programs including a large commercial application. Our proposed techniques enable both programmers and runtime systems to get more valuable information from the HPM to understand and optimize the programs without adding significant runtime overhead.
Hiroshi Inoue, Toshio Nakatani
OOPSLA1
2009 A study of memory management for web-based applications on multicore processors
abstract
More and more server workloads are becoming Web-based. In these Web-based workloads, most of the memory objects are used only during one transaction. We study the effect of the memory management approaches on the performance of such Web-based applications on two modern multicore processors. In particular, using six PHP applications, we compare a general-purpose allocator (the default allocator of the PHP runtime) and a region-based allocator, which can reduce the cost of memory management by not supporting per-object free. The region-based allocator achieves better performance for all workloads on one processor core due to its smaller memory management cost. However, when using eight cores, the region-based allocator suffers from hidden costs of increased bus traffics and the performance is reduced for many workloads by as much as 27.2% compared to the default allocator. This is because the memory bandwidth tends to become a bottleneck in systems with multicore processors.
Hiroshi Inoue, Hideaki Komatsu, Toshio Nakatani
PLDI1
2009 Dynamic Portfolio Selection with Uncertainty
abstract
How to make a prompt decision for uncertainty investment is always a key problem in financial market. In this paper, we present a new dynamic portfolio selection strategy in stock market. The investor is assumed to seek an investment strategy that will maximize his/her final wealth and minimize the total risk. An analytically optimal strategy in closed form is obtained by solving a dynamic programming problem. Some applications are also presented to illustrate this model.
Mei Yu 0002, Hiroshi Inoue, Satoru Takahashi, Jianming Shi
Int. J. Uncertain. Fuzziness Knowl. Based Syst.2
2007 AA-Sort: A New Parallel Sorting Algorithm for Multi-Core SIMD Processors
Hiroshi Inoue, Takao Moriyama, Hideaki Komatsu, Toshio Nakatani
PACT1
2007 Accelerating Mutual-Information-Based Linear Registration on the Cell Broadband Engine Processor
abstract
Emerging multi-core processors are able to accelerate medical imaging applications by exploiting the parallelism available in their algorithms. We have implemented a mutual-information-based 3D linear registration algorithm on the Cell Broadband Enginetrade processor. By exploiting the highly parallel architecture and its high memory bandwidth, our implementation with two CBE processors can register a pair of 256x256x30 3D images in one second. This implementation is significantly faster than a conventional one on a traditional microprocessor or even faster than a previously reported custom-hardware implementation. In addition to parallelizing the code for multiple cores and organizing the data structure for reducing the amount of the memory traffic, it is also critical to optimize the code for the SIMD pipeline structure. We note that code optimization for the SIMD pipeline alone results in a 4.2x-8.7x acceleration for the computation of small kernels. Further, SIMD optimization alone results in a 4.5x end-end application speedup.
Moriyoshi Ohara, Hangu Yeo, Frank Savino, Giridharan Iyengar, Leiguang Gong, Hiroshi Inoue, Hideaki Komatsu, Vadim Sheinin, Shahrokh Daijavad
ICME6
2007 Vehicle segmentation against heavy occlusion in tunnel images
abstract
Accidents or abnormally stalled vehicles in tunnels are liable to induce additional incidents that would be more fatal. They also would induce heavy traffic congestions by disturbing the following traffics. Therefore, it is important to detect such the primary incidents in tunnels as soon as possible, and to inform traffic management officers about them. However, it is difficult to detect incidents correctly distinguishing from pure congestions. In particular, it will become more difficult to detect incidents from low-angled and seriously occluded images as in tunnels. In this paper, a dedicated method for precise segmentation of such the occluded vehicles is described. The proposed algorithm was examined by experiments using two year video images obtained from three tunnels, and it was proved to be effective for quite ill conditions such as heavy traffics in tunnels.
Shunsuke Kamijo, Hiroshi Inoue
SMC2
2007 Evaluation of sample size effect on the identification of haplotype blocks
abstract
BACKGROUND: Genome-wide maps of linkage disequilibrium (LD) and haplotypes have been created for different populations. Substantial sharing of the boundaries and haplotypes among populations was observed, but haplotype variations have also been reported across populations. Conflicting observations on the extent and distribution of haplotypes require careful examination. The mechanisms that shape haplotypes have not been fully explored, although the effect of sample size has been implicated. We present a close examination of the effect of sample size on haplotype blocks using an original computational simulation. RESULTS: A region spanning 19.31 Mb on chromosome 20q was genotyped for 1,147 SNPs in 725 Japanese subjects. One region of 445 kb exhibiting a single strong LD value (average |D'|; 0.94) was selected for the analysis of sample size effect on haplotype structure. Three different block definitions (recombination-based, LD-based, and diversity-based) were exploited to create simulations for block identification with theta value from real genotyping data. As a result, it was quite difficult to estimate a haplotype block for data with less than 200 samples. Attainment of a reliable haplotype structure with 50 samples was not possible, although the simulation was repeated 10,000 times. CONCLUSION: These analyses underscored the difficulties of estimating haplotype blocks. To acquire a reliable result, it would be necessary to increase sample size more than 725 and to repeat the simulation 3,000 times. Even in one genomic region showing a high LD value, the haplotype block might be fragile. We emphasize the importance of applying careful confidence measures when using the estimated haplotype structure in biomedical research.
Dai Osabe, Toshihito Tanahashi, Kyoko Nomura, Shuichi Shinohara, Naoto Nakamura, Toshikazu Yoshikawa, Hiroshi Shiota, Parvaneh Keshavarz, Yuka Yamaguchi, Kiyoshi Kunika, Maki Moritani, Hiroshi Inoue, Mitsuo Itakura
BMC Bioinform.12
2007 Soft risk maps of natural disasters and their applications to decision-making
Chongfu Huang, Hiroshi Inoue
Inf. Sci.2
2006 A new idiom recognition framework for exploiting hardware-assist instructions
abstract
Modern processors support hardware-assist instructions (such as TRT and TROT instructions on IBM zSeries) to accelerate certain functions such as delimiter search and character conversion. Such special instructions have often been used in high performance libraries, but they have not been exploited well in optimizing compilers except for some limited cases. We propose a new idiom recognition technique derived from a topological embedding algorithm [4] to detect idiom patterns in the input program more aggressively than in previous approaches. Our approach can detect a pattern even if the code segment does not exactly match the idiom. For example, we can detect a code segment that includes additional code within the idiom pattern. We implemented our new idiom recognition approach based on the Java Just-In-Time (JIT) compiler that is part of the J9 Java Virtual Machine, and we supported several important idioms for special hardware-assist instructions on the IBM zSeries and on some models of the IBM pSeries. To demonstrate the effectiveness of our technique, we performed two experiments. The first one is to see how many more patterns we can detect compared to the previous approach. The second one is to see how much performance improvement we can achieve over the previous approach. For the first experiment, we used the Java Compatibility Kit (JCK) API tests. For the second one we used IBM XML parser, SPECjvm98, and SPCjbb2000. In summary, relative to a baseline implementation using exact pattern matching, our algorithm converted 75% more loops in JCK tests. We also observed significant performance improvement of the XML parser by 64%, of SPECjvm98 by 1%, and of SPECjbb2000 by 2% on average on a z990. Finally, we observed the JIT compilation time increases by only 0.32% to 0.44%.
Motohiro Kawahito, Hideaki Komatsu, Takao Moriyama, Hiroshi Inoue, Toshio Nakatani
ASPLOS4
2006 Vehicle Segmentation by Edge Classification Method and the S-T MRF Model
abstract
In this paper, we propose a tracking algorithm, which is based on the collaboration of the S-T MRF model and a dedicated segmentation algorithm. Although the S-T MRF model was designed to be robust against occlusion, it regards vehicles that move in parallel occluding each other from the beginning to the end of the traffic images as a single region. In order to compensate such a defect of S-T MRF, we have developed a dedicated segmentation algorithm which decides boundaries of vehicles contained in such a single region by referring to the difference of edge patterns among the vehicles. By the experiments using traffic video from three different angles at different locations, our method was proved to be very successful.
Hiroshi Inoue, Shunsuke Kamijo
SMC1
2005 Hotaru: Intuitive Manipulation Techniques for Projected Displays of Mobile Devices
Masanori Sugimoto, Kosuke Miyahara, Hiroshi Inoue, Yuji Tsunesada
INTERACT3
2004 Convex maximization on a convex set with fuzzy constraints
abstract
Many people usually work for solving convex-minimization problems with various constraints, even including some fuzzy conditions. In this paper, we present some algorithms for solving convex-maximization problems with some fuzzy constraints. The objective function of the encountered problem is convex, but its feasible region is reverse convex. Even without fuzzy nature, the problem still remains in the category of NP-hardness, which can be solved in typical global optimization. We transform the reverse-convex feasible region to a difference of convex (d.c.) set, then solve the problem by combining the techniques of the d.c. method and the on-line vertices-enumeration method.
Jianming Shi, Hiroshi Inoue
IEEE Trans. Syst. Man Cybern. Part A2
2001 Exchangeability and convergence for random sets
Hiroshi Inoue
Inf. Sci.1