Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Tomofumi Yuki

dblp:14/8025 · DBLP profile ↗
← Back
17ranked-venue papers
3as first author
2since 2021 · last 2025
0000-0002-5737-6178ORCID · corroborated

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

Systems, architecture and hardware · 12 · 3 first-author · 1 since 2021Software engineering, systems software and programming languages · 7 · 1 first-author · 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
4 papers
Memory systems · 26% Electronic design automation · 17% Parallel and multicore computing · 15%
Software engineering, system software, and programming languages
5 papers
Compilers and program optimization · 87% Program analysis · 7% Programming languages and type systems · 4%
Theoretical computer science
1 paper
Computational complexity · 100%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
loop optimization
0.912025
Maximal Simplification of Polyhedral Reductions · Proc. ACM Program. Lang. 2025
Compilers and program optimization › loop transformation
polyhedral compilation
0.912025
Maximal Simplification of Polyhedral Reductions · Proc. ACM Program. Lang. 2025
Compilers and program optimization › loop optimization
reduction optimization
0.912025
Maximal Simplification of Polyhedral Reductions · Proc. ACM Program. Lang. 2025
Computational complexity
reduction
0.912025
Maximal Simplification of Polyhedral Reductions · Proc. ACM Program. Lang. 2025
Reconfigurable computing and FPGAs
FPGA accelerator
0.712023
Increasing FPGA Accelerators Memory Bandwidth With a Burst-Friendly Memory Layout · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2023
Memory systems › memory bandwidth
memory bandwidth optimization
0.712023
Increasing FPGA Accelerators Memory Bandwidth With a Burst-Friendly Memory Layout · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2023
Memory systems
memory layout
0.712023
Increasing FPGA Accelerators Memory Bandwidth With a Burst-Friendly Memory Layout · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2023
Hardware reliability and fault tolerance › error detection › concurrent error detection
algorithm-based error detection
0.412020
Safe Overclocking for CNN Accelerators Through Algorithm-Level Error Detection · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Hardware accelerators and domain-specific architectures › machine learning accelerator
CNN accelerator
0.412020
Safe Overclocking for CNN Accelerators Through Algorithm-Level Error Detection · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Electronic design automation
high-level synthesis
0.412020
Toward Speculative Loop Pipelining for High-Level Synthesis · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Electronic design automation › high-level synthesis › pipeline synthesis
loop pipelining
0.412020
Toward Speculative Loop Pipelining for High-Level Synthesis · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Processor architecture and microarchitecture › speculation
timing speculation
0.412020
Safe Overclocking for CNN Accelerators Through Algorithm-Level Error Detection · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Compilers and program optimization
dependence analysis
0.412019
Sparse computation data dependence simplification for efficient compiler-generated inspectors · PLDI 2019
Parallel and multicore computing › parallel programming models
automatic parallelization
0.412019
Sparse computation data dependence simplification for efficient compiler-generated inspectors · PLDI 2019
Parallel and multicore computing › parallel algorithms › parallel algorithm design
wavefront parallelism
0.412019
Sparse computation data dependence simplification for efficient compiler-generated inspectors · PLDI 2019
Program analysis
static analysis
0.322020
Array dataflow analysis for polyhedral X10 programs · PPoPP 2013
Toward Speculative Loop Pipelining for High-Level Synthesis · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2020
Compilers and program optimization › program transformation
source-to-source transformation
0.212023
Increasing FPGA Accelerators Memory Bandwidth With a Burst-Friendly Memory Layout · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2023
Compilers and program optimization › compiler analysis
array data-flow analysis
0.212013
Array dataflow analysis for polyhedral X10 programs · PPoPP 2013
Programming languages and type systems › language semantics › concurrent language semantics
parallel language semantics
0.212013
Array dataflow analysis for polyhedral X10 programs · PPoPP 2013
Concurrent programming › concurrency bug detection
data race detection
0.012013
Array dataflow analysis for polyhedral X10 programs · PPoPP 2013

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

piece-wise simplification · 1.7constructive proof · 1.7tiling · 1.3burst transfer · 1.3speculative execution · 0.9memory speculation · 0.9control-flow speculation · 0.9run-time dependence testing · 0.8compile-time analysis · 0.8high-level synthesis · 0.4algebraic error detection · 0.4data flow analysis · 0.2
YearPublicationVenuePosition
2025 Maximal Simplification of Polyhedral Reductions
abstract
Reductions combine collections of input values with an associative and often commutative operator to produce collections of results. When the same input value contributes to multiple outputs, there is an opportunity to reuse partial results, enabling reduction simplification . Simplification often produces a program with lower asymptotic complexity. Typical compiler optimizations yield, at best, a constant fold speedup, but a complexity improvement from, say, cubic to quadratic complexity yields unbounded speedup for sufficiently large problems. It is well known that reductions in polyhedral programs may be simplified automatically , but previous methods cannot exploit all available reuse. This paper resolves this long-standing open problem, thereby attaining minimal asymptotic complexity in the simplified program. We propose extensions to prior work on simplification to support any independent commutative reduction. At the heart of our approach is piece-wise simplification, the notion that we can split an arbitrary reduction into pieces and then independently simplify each piece. However, the difficulty of using such piece-wise transformations is that they typically involve an infinite number of choices. We give constructive proofs to deal with this and select a finite number of pieces for simplification.
Louis Narmour, Tomofumi Yuki, Sanjay V. Rajopadhye
Proc. ACM Program. Lang.2
2023 Increasing FPGA Accelerators Memory Bandwidth With a Burst-Friendly Memory Layout
abstract
Offloading compute-intensive kernels to hardware accelerators relies on the large degree of parallelism offered by these platforms. However, the effective bandwidth of the memory interface often causes a bottleneck, hindering the accelerator’s effective performance. Techniques enabling data reuse, such as tiling, lower the pressure on memory traffic but do not fully exploit the bandwidth. A further increase in bandwidth utilization is possible by using burst rather than element-wise accesses, provided the data is contiguous in memory. In this article, we propose a memory allocation technique, and provide a proof-of-concept source-to-source compiler pass, that enables such burst transfers by modifying the data layout in external memory. Our experiments show the new memory allocation yields close to 100% bandwidth utilization while the memory engines occupy less than 5% of the field-programmable gate array (FPGA) logic area.
Corentin Ferry, Tomofumi Yuki, Steven Derrien, Sanjay V. Rajopadhye
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
2020 Towards Generic and Scalable Word-Length Optimization
abstract
In this paper, we propose a method to improve the scalability of Word-Length Optimization (WLO) for large applications that use complex quality metrics such as Structural Similarity (SSIM). The input application is decomposed into smaller kernels to avoid uncontrolled explosion of the exploration time, which is known as noise budgeting. The main challenge addressed in this paper is how to allocate noise budgets to each kernel. This requires capturing the interactions across kernels. The main idea is to characterize the impact of approximating each kernel on accuracy/cost through simulation and regression. Our approach improves the scalability while finding better solutions for Image Signal Processor pipeline.
Van-Phu Ha, Tomofumi Yuki, Olivier Sentieys
DATE2
2020 Toward Speculative Loop Pipelining for High-Level Synthesis
abstract
Loop pipelining (LP) is a key optimization in modern high-level synthesis (HLS) tools for synthesizing efficient hardware datapaths. Existing techniques for automatic LP are limited by static analysis that cannot precisely analyze loops with data-dependent control flow and/or memory accesses. We propose a technique for speculative LP that handles both control-flow and memory speculations in a unified manner. Our approach is entirely expressed at the source level, allowing a seamless integration to development flows using HLS. Our evaluation shows significant improvement in throughput over standard LP.
Steven Derrien, Thibaut Marty, Simon Rokicki, Tomofumi Yuki
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.4
2020 Safe Overclocking for CNN Accelerators Through Algorithm-Level Error Detection
abstract
In this article, we propose a technique for improving the efficiency of convolutional neural network hardware accelerators based on timing speculation (overclocking) and fault tolerance. We augment the accelerator with a lightweight error detection mechanism to protect against timing errors in convolution layers, enabling aggressive timing speculation. The error detection mechanism we have developed works at the algorithm-level, utilizing algebraic properties of the computation, allowing the full implementation to be realized using high-level synthesis tools. Our prototype on ZC706 demonstrated up to 60% higher throughput with negligible area overhead for various wordlength implementations.
Thibaut Marty, Tomofumi Yuki, Steven Derrien
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.2
2019 Sparse computation data dependence simplification for efficient compiler-generated inspectors
abstract
This paper presents a combined compile-time and runtime loop-carried dependence analysis of sparse matrix codes and evaluates its performance in the context of wavefront parallellism. Sparse computations incorporate indirect memory accesses such as x[col[j]] whose memory locations cannot be determined until runtime. The key contributions of this paper are two compile-time techniques for significantly reducing the overhead of runtime dependence testing: (1) identifying new equality constraints that result in more efficient runtime inspectors, and (2) identifying subset relations between dependence constraints such that one dependence test subsumes another one that is therefore eliminated. New equality constraints discovery is enabled by taking advantage of domain-specific knowledge about index arrays, such as col[j]. These simplifications lead to automatically-generated inspectors that make it practical to parallelize such computations. We analyze our simplification methods for a collection of seven sparse computations. The evaluation shows our methods reduce the complexity of the runtime inspectors significantly. Experimental results for a collection of five large matrices show parallel speedups ranging from 2x to more than 8x running on a 8-core CPU.
Mahdi Soltan Mohammadi, Tomofumi Yuki, Kazem Cheshmi, Eddie C. Davis, Mary W. Hall, Maryam Mehri Dehnavi, Payal Nandy, Catherine Mills Olschanowsky, Anand Venkat, Michelle Mills Strout
PLDI2
2018 Enabling Overclocking Through Algorithm-Level Error Detection
abstract
In this paper, we propose a technique for improving the efficiency of hardware accelerators based on timing speculation (overclocking) and fault tolerance. We augment the accelerator with a lightweight error detection mechanism to protect against timing errors, enabling aggressive timing speculation. We demonstrate the validity of our approach for the convolution layers in convolutional neural networks. We present an implementation of a fault-tolerant convolution layer accelerator combined with the lightweight error detection. The error detection mechanism we have developed works at the algorithm-level, utilizing algebraic properties of the computation, allowing the full implementation to be realized using High-Level Synthesis tools. Our prototype on ZC706 demonstrated 68% - 77% higher throughput with negligible overhead.
Thibaut Marty, Tomofumi Yuki, Steven Derrien
FPT2
2017 One size does not fit all: Implementation trade-offs for iterative stencil computations on FPGAs
abstract
Iterative stencils are kernels in various application domains such as numerical simulations and medical imaging, that merit FPGA acceleration. The best architecture depends on many factors such as the target platform, off-chip memory bandwidth, problem size, and performance requirements. We generate a family of FPGA stencil accelerators targeting emerging System on Chip platforms, (e.g., Xilinx Zynq or Intel SoC). Our designs come with design knobs to explore trade-offs. We also propose performance models to hone in on the most interesting design points, and show how they accurately lead to optimal designs. The optimal choice depends on problem sizes and performance goals.
Gaël Deest, Tomofumi Yuki, Sanjay V. Rajopadhye, Steven Derrien
FPL2
2016 Extended lattice-based memory allocation
abstract
This work extends lattice-based memory allocation, an earlier work on memory reuse through array contraction. Such an optimization is used for optimizing high-level programming languages where storage mapping may be abstracted away from programmers and to complement code transformations that introduce intermediate buffers. The main motivation for this extension is to improve the handling of more general forms of specifications we see today, e.g., with loop tiling, pipelining, and other forms of parallelism available in explicitly-parallel languages. Specifically, we handle the case when conflicting constraints (those that describe the array indices that cannot share the same location) are specified as a (non-convex) union of polyhedra. The choice of directions (or basis) of array reuse becomes important when dealing with non-convex specifications. We extend the two dual approaches in the original work to handle unions of polyhedra, and to select a suitable basis. Our final approach relies on a combination of the two, also revealing their links with, on one hand, the construction of multi-dimensional schedules for parallelism and tiling (but with a fundamental difference that we identify) and, on the other hand, the construction of universal reuse vectors (UOV), which was only used so far in a specific context, for schedule-independent mapping.
Alain Darte, Alexandre Isoard, Tomofumi Yuki
CC3
2016 EURECA compilation: Automatic optimisation of cycle-reconfigurable circuits
abstract
EURECA architectures have been proposed as an enhancement to existing FPGAs, to enable cycle-by-cycle reconfiguration. Applications with irregular data accesses, which previously cannot be efficiently supported in hardware, can be efficiently mapped into EURECA architectures. One major challenge to apply the EURECA architectures to practical applications is the intensive design efforts required to analyse and optimise cycle-reconfigurable operations, in order to obtain accurate and high-performance results while underlying circuits reconfigure cycle by cycle. This work proposes novel compiler support for EURECA-based designs. The compiler adopts (a) techniques based on session types to automatically derive a runtime reconfiguration scheduler that guarantees design correctness, and (b) a streaming circuit model to ensure high-performance circuits. Three benchmark applications —large-scale sorting, Memcached, and Sparse Matrix Vector Multiplication (SpMV)— developed with the proposed compiler support show up to 11.2 times (21.8 times when architecture scales) reduction in area-delay product when compared with conventional architectures, and achieve up to 39% improvements compared with manually optimised EURECA designs.
Xinyu Niu, Nicholas Ng, Tomofumi Yuki, Nobuko Yoshida, Wayne Luk
FPL3
2014 Toward scalable source level accuracy analysis for floating-point to fixed-point conversion
abstract
In embedded systems, many numerical algorithms are implemented with fixed-point arithmetic to meet area cost and power constraints. Fixed-point encoding decisions can significantly affect cost and performance. To evaluate their impact on accuracy, designers resort to simulations. Their high running-time prevents thorough exploration of the design-space. To address this issue, analytical modeling techniques have been proposed, but their applicability is limited by scalability issues. In this paper, we extend these techniques to a larger class of programs. We use polyhedral methods to extract a more compact, graph-based representation of the program. We validate our approach with a several image and signal processing algorithms.
Gaël Deest, Tomofumi Yuki, Olivier Sentieys, Steven Derrien
ICCAD2
2013 Coarse-Grain Optimization and Code Generation for Embedded Multicore Systems
abstract
As processors and systems-on-chip increasingly become multicore, parallel programming remains a difficult, time-consuming and complicated task. End users who are not parallel programming experts have a need to exploit such processors and architectures, using state of the art fourth generation of high programming languages, like Scilab or MATLAB. The ALMA toolset addresses this problem by receiving Scilab code as input and produces parallel code for embedded multiprocessor systems on chip, using platform quasi-agnostic optimisations. In this paper, coarse grain parallelism extraction and optimization issues as well as parallel code generation for the ALMA toolset are discussed.
George Goulas, Christos Valouxis, Panayiotis Alefragis, Nikos S. Voros, Christos Gogos, Oliver Wolf, Timo Stripf, Thomas Bruckschlögl, Jürgen Becker 0001, Ali El Moussawi, Maxime Naullet, Tomofumi Yuki
DSD12
2013 Derivation of efficient FSM from loop nests
abstract
Pipelined execution is one of the most important optimizations in hardware design to improve hardware utilization rate, and hence the throughput. Loop pipelining is a transformation available in High Level Synthesis tools to execute multiple iterations of a loop in a pipeline. Nested loop pipelining is a related technique that improves hardware utilization rate when the iteration count of the innermost loop is small. However, it is also known to increase the complexity of the control, and hence degrading frequency. In this paper, we present an automatic transformation targeting HLS that improves the effectiveness of nested loop pipelining, by efficient implementations of the control-path. Specifically, we present (i) an analytical model that captures the trade-off between gain in cycles and loss in frequency, (ii), automatic derivation of efficient Finite State Machine from loop nests, and (iii) an efficient implementation of the derived FSM that improves the performance of synthesized hardware.
Tomofumi Yuki, Antoine Morvan, Steven Derrien
FPT1
2013 Array dataflow analysis for polyhedral X10 programs
abstract
This paper addresses the static analysis of an important class of X10 programs, namely those with finish/async parallelism, and affine loops and array reference structure as in the polyhedral model. For such programs our analysis can certify whenever a program is deterministic or flags races.
Tomofumi Yuki, Paul Feautrier, Sanjay V. Rajopadhye, Vijay A. Saraswat
PPoPP1
2013 GeCoS: A framework for prototyping custom hardware design flows
abstract
GeCoS is an open source framework that provide a highly productive environment for hardware design. GeCoS primarily targets custom hardware design using High Level Synthesis, distinguishing itself from classical compiler infrastructures. Compiling for custom hardware makes use of domain specific semantics that are not considered by general purpose compilers. Finding the right balance between various performance criteria, such as area, speed, and accuracy, is the goal, contrary to the typical goal in high performance context to maximize speed. The GeCoS infrastructure facilitates the prototyping of hardware design flows, going beyond compiler analyses and transformations. Hardware designers must interact with the compiler for design space exploration, and it is important to be able to give instant feedback to the users.
Antoine Floch, Tomofumi Yuki, Ali El Moussawi, Antoine Morvan, Kevin J. M. Martin, Maxime Naullet, Mythri Alle, Ludovic L'Hours, Nicolas Simon, Steven Derrien, François Charot, Christophe Wolinski, Olivier Sentieys
SCAM2
2011 Model-Driven Engineering and Optimizing Compilers: A Bridge Too Far?
Antoine Floch, Tomofumi Yuki, Clément Guy, Steven Derrien, Benoît Combemale, Sanjay V. Rajopadhye, Robert B. France
MoDELS2
2010 Automatic creation of tile size selection models
abstract
Tiling is a widely used loop transformation for exposing/exploiting parallelism and data locality. Effective use of tiling requires selection and tuning of the tile sizes. This is usually achieved by hand-crafting tile size selection (TSS) models that characterize the performance of the tiled program as a function of tile sizes. The best tile sizes are selected by either directly using the TSS model or by using the TSS model together with an empirical search. Hand-crafting accurate TSS models is hard, and adapting them to different architecture/compiler, or even keeping them up-to-date with respect to the evolution of a single compiler is often just as hard. Instead of hand-crafting TSS models, can we automatically learn or create them? In this paper, we show that for a specific class of programs fairly accurate TSS models can be automatically created by using a combination of simple program features, synthetic kernels, and standard machine learning techniques. The automatic TSS model generation scheme can also be directly used for adapting the model and/or keeping it up-to-date. We evaluate our scheme on six different architecture-compiler combinations (chosen from three different architectures and four different compilers). The models learned by our method have consistently shown near-optimal performance (within 5% of the optimal on average) across all architecture-compiler combinations.
Tomofumi Yuki, Lakshminarayanan Renganarayanan, Sanjay V. Rajopadhye, Charles W. Anderson, Alexandre E. Eichenberger, Kevin O'Brien
CGO1