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.

Caroline Collange

dblp:251/2068 · DBLP profile ↗
← Back
26ranked-venue papers
5as first author
0since 2021 · last 2020
0000-0003-0603-3789ORCID · corroborated

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

Systems, architecture and hardware · 16 · 5 first-authorSoftware engineering, systems software and programming languages · 5Artificial intelligence and machine learning · 1Graphics, computer vision, multimedia, augmented reality and games · 1Theory of computation · 1Applied, 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.

Computer architecture, parallel and distributed computing, and storage systems
5 papers
Processor architecture and microarchitecture · 59% GPUs and heterogeneous computing · 20% Parallel and multicore computing · 10%
Theoretical computer science
1 paper
Quantum computing and quantum information · 33% Graph algorithms and graph theory · 33% Algorithms and data structures · 33%
Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 84% Programming languages and type systems · 16%

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

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture
SIMD
0.622020
SIMT-X: Extending Single-Instruction Multi-Threading to Out-of-Order Cores · ACM Trans. Archit. Code Optim. 2020
Divergence analysis · ACM Trans. Program. Lang. Syst. 2013
Processor architecture and microarchitecture
instruction set architecture
0.412020
SIMT-X: Extending Single-Instruction Multi-Threading to Out-of-Order Cores · ACM Trans. Archit. Code Optim. 2020
Processor architecture and microarchitecture
out-of-order execution
0.412020
SIMT-X: Extending Single-Instruction Multi-Threading to Out-of-Order Cores · ACM Trans. Archit. Code Optim. 2020
Quantum computing and quantum information
quantum computer architecture
0.412019
Qubit allocation as a combination of subgraph isomorphism and token swapping · Proc. ACM Program. Lang. 2019
Graph algorithms and graph theory
subgraph isomorphism
0.412019
Qubit allocation as a combination of subgraph isomorphism and token swapping · Proc. ACM Program. Lang. 2019
Compilers and program optimization › vectorization
SIMD vectorization
0.312017
Function Call Re-Vectorization · PPoPP 2017
Parallel and multicore computing › data-parallel programming
SIMD programming
0.312017
Function Call Re-Vectorization · PPoPP 2017
Compilers and program optimization
register allocation
0.212013
Divergence analysis · ACM Trans. Program. Lang. Syst. 2013
GPUs and heterogeneous computing
control flow divergence
0.212013
Divergence analysis · ACM Trans. Program. Lang. Syst. 2013
GPUs and heterogeneous computing
GPU microarchitecture
0.112012
Simultaneous branch and warp interweaving for sustained GPU performance · ISCA 2012
GPUs and heterogeneous computing › GPU microarchitecture
SIMT execution
0.112012
Simultaneous branch and warp interweaving for sustained GPU performance · ISCA 2012
Integrated circuit design › digital circuit design
arithmetic circuit design
0.112011
A Real/Complex Logarithmic Number System ALU · IEEE Trans. Computers 2011
Integrated circuit design › digital circuit design › arithmetic circuit design
logarithmic number system
0.112011
A Real/Complex Logarithmic Number System ALU · IEEE Trans. Computers 2011
Programming languages and type systems › language semantics › concurrent language semantics
parallel language semantics
0.112017
Function Call Re-Vectorization · PPoPP 2017
GPUs and heterogeneous computing › GPU scheduling
warp scheduling
0.012012
Simultaneous branch and warp interweaving for sustained GPU performance · ISCA 2012

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

formal semantics · 0.6ISPC compilation · 0.6microarchitectural simulation · 0.4approximation algorithm · 0.4static analysis · 0.3rematerialization · 0.3warp interweaving · 0.1thread reconvergence · 0.1lane shuffling · 0.1branch interweaving · 0.1CORDIC · 0.1
YearPublicationVenuePosition
2020 SIMT-X: Extending Single-Instruction Multi-Threading to Out-of-Order Cores
abstract
This work introduces Single Instruction Multi-Thread Express (SIMT-X), a general-purpose Central Processing Unit (CPU) microarchitecture that enables Graphics Processing Units (GPUs)-style SIMT execution across multiple threads of the same program for high throughput, while retaining the latency benefits of out-of-order execution, and the programming convenience of homogeneous multi-thread processors. SIMT-X leverages the existing Single Instruction Multiple Data (SIMD) back-end to provide CPU/GPU-like processing on a single core with minimal overhead. We demonstrate that although SIMT-X invokes a restricted form of Out-of-Order (OoO), the microarchitecture successfully captures a majority of the benefits of aggressive OoO execution using at most two concurrent register mappings per architectural register, while addressing issues of partial dependencies and supporting a general-purpose Instruction Set Architecture (ISA).
Anita Tino, Caroline Collange, André Seznec
ACM Trans. Archit. Code Optim.2
2019 Compressed Cache Layout Aware Prefetching
abstract
The speed gap between CPU and memory is impairing performance. Cache compression and hardware prefetching are two techniques that could confront this bottleneck by decreasing last level cache misses. However, compression and prefetching have positive interactions, as prefetching benefits from higher cache capacity and compression increases the effective cache size. This paper proposes Compressed cache Layout Aware Prefetching (CLAP) to leverage the recently proposed sector-based compressed cache layouts such as SCC or YACC to create a synergy between compressed cache and prefetching. The idea of this approach is to prefetch contiguous blocks that can be compressed and co-allocated together with the requested block on a miss access. Prefetched blocks that share storage with existing blocks do not need to evict a valid existing entry; therefore, CLAP avoids cache pollution. In order to decide the co-allocatable blocks to prefetch, we propose a compression predictor. Based on our experimental evaluations, CLAP reduces the number of cache misses by 12% and improves performance by 4% on average, comparing to a compressed cache.
Niloofar Charmchi, Caroline Collange, André Seznec
SBAC-PAD2
2019 Qubit allocation as a combination of subgraph isomorphism and token swapping
abstract
In 2016, the first quantum processors have been made available to the general public. The possibility of programming an actual quantum device has elicited much enthusiasm. Yet, such possibility also brought challenges. One challenge is the so called Qubit Allocation problem: the mapping of a virtual quantum circuit into an actual quantum architecture. There exist solutions to this problem; however, in our opinion, they fail to capitalize on decades of improvements on graph theory. In contrast, this paper shows how to model qubit allocation as the combination of Subgraph Isomorphism and Token Swapping. This idea has been made possible by the publication of an approximative solution to the latter problem in 2016. We have compared our algorithm against five other qubit allocators, all independently designed in the last two years, including the winner of the IBM Challenge. When evaluated in "Tokyo", a quantum architecture with 20 qubits, our technique outperforms these state-of-the-art approaches in terms of the quality of the solutions that it finds and the amount of memory that it uses, while showing practical runtime.
Marcos Yukio Siraichi, Vinícius Fernandes dos Santos, Caroline Collange, Fernando Magno Quintão Pereira
Proc. ACM Program. Lang.3
2018 Qubit allocation
abstract
In May of 2016, IBM Research has made a quantum processor available in the cloud to the general public. The possibility of programming an actual quantum device has elicited much enthusiasm. Yet, quantum programming still lacks the compiler support that modern programming languages enjoy today. To use universal quantum computers like IBM's, programmers must design low-level circuits. In particular, they must map logical qubits into physical qubits that need to obey connectivity constraints. This task resembles the early days of programming, in which software was built in machine languages. In this paper, we formally introduce the qubit allocation problem and provide an exact solution to it. This optimal algorithm deals with the simple quantum machinery available today; however, it cannot scale up to the more complex architectures scheduled to appear. Thus, we also provide a heuristic solution to qubit allocation, which is faster than the current solutions already implemented to deal with this problem.
Marcos Yukio Siraichi, Vinícius Fernandes dos Santos, Caroline Collange, Fernando Magno Quintão Pereira
CGO3
2018 DITVA: Dynamic Inter-Thread Vectorization Architecture
Sajith Kalathingal, Caroline Collange, Bharath Narasimha Swamy, André Seznec
J. Parallel Distributed Comput.2
2017 Function Call Re-Vectorization
abstract
Programming languages such as C for CUDA, OpenCL or ISPC have contributed to increase the programmability of SIMD accelerators and graphics processing units. However, these languages still lack the flexibility offered by low-level SIMD programming on explicit vectors. To close this expressiveness gap while preserving performance, this paper introduces the notion of \ourinvention{} (CREV). CREV allows changing the dimension of vectorization during the execution of a kernel, exposing it as a nested parallel kernel call. CREV affords programmability close to dynamic parallelism, a feature that allows the invocation of kernels from inside kernels, but at much lower cost. In this paper, we present a formal semantics of CREV, and an implementation of it on the ISPC compiler. We have used CREV to implement some classic algorithms, including string matching, depth first search and Bellman-Ford, with minimum effort. These algorithms, once compiled by ISPC to Intel-based vector instructions, are as fast as state-of-the-art implementations, yet much simpler. Thus, CREV gives developers the elegance of dynamic programming, and the performance of explicit SIMD programming.
Rubens E. A. Moreira, Caroline Collange, Fernando Magno Quintão Pereira
PPoPP2
2016 Parallel floating-point expansions for extended-precision GPU computations
abstract
GPUs are an important hardware development platform for problems where massive parallel computations are needed. Many of these problems require a higher precision than the standard double floating-point (FP) available. One common way of extending the precision is the multiple-component approach, in which real numbers are represented as the unevaluated sum of several standard machine precision FP numbers. This representation is called a FP expansion and it offers the simplicity of using directly available and highly optimized FP operations. In this article we present new data-parallel algorithms for adding and multiplying FP expansions specially designed for extended precision computations on GPUs. These are generalized algorithms that can manipulate FP expansions of different sizes (from double-double up to a few tens of doubles) and ensure a certain worst case error bound on the results.
Caroline Collange, Mioara Joldes, Jean-Michel Muller, Valentina Popescu
ASAP1
2016 Dynamic Inter-Thread Vectorization Architecture: Extracting DLP from TLP
abstract
Threads of Single-Program Multiple-Data (SPMD) applications often execute the same instructions on different data. We propose the Dynamic Inter-Thread Vectorization Architecture (DITVA) to leverage this implicit data-level parallelism in SPMD applications by assembling dynamic vector instructions at runtime. DITVA extends an SIMD-enabled in-order SMT processor with an inter-thread vectorization execution mode. In this mode, multiple scalar threads running in lockstep share a single instruction stream and their respective instruction instances are aggregated into SIMD instructions. To balance thread-and data-level parallelism, threads are statically grouped into fixed-size independently scheduled warps. DITVA leverages existing SIMD units and maintains binary compatibility with existing CPU architectures. Our evaluation on the SPMD applications from the PARSEC and Rodinia OpenMP benchmarks shows that a 4-warp × 4-lane 4-issue DITVA architecture with a realistic bank-interleaved cache achieves 1.55× higher performance than a 4-thread 4-issue SMT architecture with AVX instructions while fetching and issuing 51% fewer instructions, achieving an overall 24% energy reduction.
Sajith Kalathingal, Caroline Collange, Bharath Narasimha Swamy, André Seznec
SBAC-PAD2
2015 Reproducible floating-point atomic addition in data-parallel environment
abstract
Floating-point additions in concurrent execution environment are known to be hazardous, as the result depends on the order in which operations are performed.This problem is encountered in data parallel execution environments such as GPUs, where reproducibility involving floating-point atomic addition is challenging.This problem is due to the rounding error or cancellation that appears for each operation, combined with the lack of control over execution order.In this article we propose two solutions to address this problem: work reassignment and fixed-point accumulation.Work reassignment consists in enforcing an execution order that leads to weak reproducibility.Fixed-point accumulation consists in avoiding rounding errors altogether thanks to a long accumulator and enables strong reproducibility.
David Defour, Caroline Collange
FedCSIS2
2015 Fusion of Calling Sites
abstract
The increasing popularity of Graphics Processing Units (GPUs), has brought renewed attention to old problems related to the Single Instruction, Multiple Data execution model. One of these problems is the reconvergence of divergent threads. A divergence happens at a conditional branch when different threads disagree on the path to follow upon reaching this split point. Divergences may impose a heavy burden on the performance of parallel programs. In this paper we propose a compiler level optimization to mitigate this performance loss. This optimization consists in merging function call sites located at different paths that sprout from the same branch. We show that our optimization adds negligible overhead on the compiler. It does not slowdown programs in which it is not applicable, and accelerates substantially those in which it is. As an example, we have been able to speed up the well known SPLASH Fast Fourier Transform benchmark by 11%.
Douglas do Couto Teixeira, Caroline Collange, Fernando Magno Quintão Pereira
SBAC-PAD2
2015 Numerical reproducibility for the parallel reduction on multi- and many-core architectures
Caroline Collange, David Defour, Stef Graillat, Roman Iakymchuk
Parallel Comput.1
2014 Thread scheduling and memory coalescing for dynamic vectorization of SPMD workloads
Teo Milanez, Caroline Collange, Fernando Magno Quintão Pereira, Wagner Meira Jr., Renato Ferreira 0001
Parallel Comput.2
2013 The Denormal Logarithmic Number System
abstract
Economical hardware often uses a FiXed-point Number System (FXNS), whose constant absolute precision is acceptable for many signal-processing algorithms. The almost-constant relative precision of the more expensive Floating-Point (FP) number system simplifies design, for example, by eliminating worries about FXNS overflow because the range of FP is much larger than FXNS for the same wordsize; however, primitive FP introduces another problem: underflow. The conventional Signed Logarithmic Number System (SLNS) offers similar range and precision as FP with much better performance (in terms of power, speed and area) for multiplication, division, powers and roots. Moderate-precision addition in SLNS uses table lookup with properties similar to FP (including underflow). This paper proposes a new number system, called the Denormal LNS (DLNS), which is a hybrid of the properties of FXNS and SLNS. The inspiration for DLNS comes from the denormal numbers found in IEEE-754 (that provide better, gradual underflow) and the μ-law often used for speech encoding; the novel DLNS circuit here allows arithmetic to be performed directly on such encoded data. The proposed approach allows customizing the range in which gradual underflow occurs. A wide gradual underflow range acts like FXNS; a narrow one acts like SLNS. Simulation of an FFT application illustrates a moderate gradual underflow decreasing bit-switching activity 15% compared to underflow-free SLNS, at the cost of increasing application error by 30%. DLNS reduces switching activity 5% to 20% more than an abruptly-underflowing SLNS with one-half the error. Synthesis shows the novel circuit primarily consists of traditional SLNS addition and subtraction tables, with additional datapaths that allow the novel ALU to act on conventional SLNS as well as DLNS and mixed data, for a worst-case area overhead of 26%.
Mark G. Arnold, Caroline Collange
ASAP2
2013 Divergence analysis
abstract
Growing interest in graphics processing units has brought renewed attention to the Single Instruction Multiple Data (SIMD) execution model. SIMD machines give application developers tremendous computational power; however, programming them is still challenging. In particular, developers must deal with memory and control-flow divergences. These phenomena stem from a condition that we call data divergence, which occurs whenever two processing elements (PEs) see the same variable name holding different values. This article introduces divergence analysis, a static analysis that discovers data divergences. This analysis, currently deployed in an industrial quality compiler, is useful in several ways: it improves the translation of SIMD code to non-SIMD CPUs, it helps developers to manually improve their SIMD applications, and it also guides the automatic optimization of SIMD programs. We demonstrate this last point by introducing the notion of a divergence-aware register spiller. This spiller uses information from our analysis to either rematerialize or share common data between PEs. As a testimony of its effectiveness, we have tested it on a suite of 395 CUDA kernels from well-known benchmarks. The divergence-aware spiller produces GPU code that is 26.21% faster than the code produced by the register allocator used in the baseline compiler.
Diogo Sampaio, Rafael Martins de Souza, Caroline Collange, Fernando Magno Quintão Pereira
ACM Trans. Program. Lang. Syst.3
2012 Simultaneous branch and warp interweaving for sustained GPU performance
abstract
Instruction Multiple-Thread (SIMT) micro-architectures implemented in Graphics Processing Units (GPUs) run fine-grained threads in lockstep by grouping them into units, referred to as warps, to amortize the cost of instruction fetch, decode and control logic over multiple execution units. As individual threads take divergent execution paths, their processing takes place sequentially, defeating part of the efficiency advantage of SIMD execution. We present two complementary techniques that mitigate the impact of thread divergence on SIMT micro-architectures. Both techniques relax the SIMD execution model by allowing two distinct instructions to be scheduled to disjoint subsets of the the same row of execution units, instead of one single instruction. They increase flexibility by providing more thread grouping opportunities than SIMD, while preserving the affinity between threads to avoid introducing extra memory divergence. We consider (1) co-issuing instructions from different divergent paths of the same warp and (2) co-issuing instructions from different warps. To support (1), we introduce a novel thread reconvergence technique that ensures threads are run back in lockstep at control-flow reconvergence points without hindering their ability to run branches in parallel. We propose a lane shuffling technique to allow solution (2) to benefit from inter-warp correlations in divergence patterns. The combination of all these techniques improves performance by 23% on a set of regular GPGPU applications and by 40% on irregular applications, while maintaining the same instruction-fetch and processing-unit resource requirements as the contemporary Fermi GPU architecture.
Nicolas Brunie, Caroline Collange, Gregory Frederick Diamos
ISCA2
2012 Data and Instruction Uniformity in Minimal Multi-threading
abstract
Simultaneous Multi-Threading (SMT) is a hardware model in which different threads share the same instruction fetching unit. This model is a compromise between high parallelism and low hardware cost. Minimal Multi-Threading (MMT) is a technique recently proposed to share instructions and execution between threads in a SMT machine. In this paper we propose new ways to explore redundancies in the MMT execution model. First, we propose and evaluate a new thread reconvergence heuristics that handles function calls better than previous approaches. Second, we demonstrate the existence of substantial regularity in inter-thread memory access patterns. We validate our results on the four data-parallel applications present in the PARSEC benchmark suite. The new thread reconvergence heuristics is, on the average, 82% more efficient than MMT's original reconvergence method. Furthermore, about 69% to 87% of all the memory addresses are either the same for all the threads, or are affine expressions of the thread identifier. This observation motivates the design of newly proposed hardware that benefits from regularity in inter-thread memory accesses.
Teo Milanez, Caroline Collange, Fernando Magno Quintão Pereira, Wagner Meira Jr., Renato Ferreira 0001
SBAC-PAD2
2012 Divergence Analysis with Affine Constraints
abstract
The rising popularity of graphics processing units is bringing renewed interest in code optimization techniques for SIMD processors. Many of these optimizations rely on divergence analyses, which classify variables as uniform, if they have the same value on every thread, or divergent, if they might not. This paper introduces a new kind of divergence analysis, that is able to represent variables as affine functions of thread identifiers. We have implemented this analysis in Ocelot, an open source compiler, and use it to analyze a suite of 177 CUDA kernels from well-known benchmarks. We can mark about one fourth of all program variables as affine functions of thread identifiers. In addition to the novel divergence analysis, we also introduce the notion of a divergence aware register allocator. This allocator uses information from our analysis to either rematerialize affine variables, or to move uniform variables to shared memory. As a testimony of its effectiveness, our divergence aware allocator produces GPU code that is 29.70% faster than the code produced by Ocelot's register allocator. Divergence analysis with affine constraints is publicly available in the Ocelot compiler since June/2012.
Diogo Sampaio, Rafael Martins de Souza, Caroline Collange, Fernando Magno Quintão Pereira
SBAC-PAD3
2011 A Real/Complex Logarithmic Number System ALU
abstract
The real Logarithmic Number System (LNS) offers fast multiplication but uses more expensive addition. Cotransformation and higher order table methods allow real LNS ALUs with reasonable precision on Field-Programmable Gate Arrays (FPGAs). The Complex LNS (CLNS) is a generalization of LNS, which represents complex values in log-polar form. CLNS is a more compact representation than traditional rectangular methods, reducing bus and memory cost in the FFT; however, prior CLNS implementations were either slow CORDIC-based or expensive 2D-table-based approaches. Instead, we reuse real LNS hardware for CLNS, with specialized hardware (including a novel \log \sin that overcomes singularity problems) that is smaller than the real-valued LNS ALU to which it is attached. All units were derived from the Floating-Point-Cores (FloPoCo) library. FPGA synthesis shows our CLNS ALU is smaller than prior fast CLNS units. We also compare the accuracy of prior and proposed CLNS implementations. The most accurate of the proposed methods increases the error in radix-two FFTs by less than half a bit, and a more economical FloPoCo-based implementation increases the error by only one bit.
Mark G. Arnold, Caroline Collange
IEEE Trans. Computers2
2010 Implementing LNS using filtering units of GPUs
abstract
Current GPUs offer specialized graphics hardware in addition to generic floating-point processing units. We propose a method which reuses specialized texture filtering units to perform piecewise polynomial evaluations, which helps accelerate LNS computations and can be used in combination with hardware-based transcendental functions.
Mark G. Arnold, Caroline Collange, David Defour
ICASSP2
2010 Barra: A Parallel Functional Simulator for GPGPU
abstract
We present Barra, a simulator of Graphics Processing Units (GPU) tuned for general purpose processing (GPGPU). It is based on the UNISIM framework and it simulates the native instruction set of the Tesla architecture at the functional level. The inputs are CUDA executables produced by NVIDIA tools. No alterations are needed to perform simulations. As it uses parallelism, Barra generates detailed statistics on executions in about the time needed by CUDA to operate in emulation mode. We use it to understand and explore the micro-architecture design spaces of GPUs.
Caroline Collange, Marc Daumas, David Defour, David Parello
MASCOTS1
2009 A Dual-Purpose Real/Complex Logarithmic Number System ALU
abstract
The real Logarithmic Number System (LNS) allows fast and inexpensive multiplication and division but more expensive addition and subtraction as precision increases. Recent advances in higher-order and multipartite table methods, together with cotransformation, allow real LNS ALUs to be implemented effectively on FPGAs for a wide variety of medium-precision special-purpose applications. The Complex LNS (CLNS) is a generalization of LNS which represents complex values in log-polar form. CLNS is a more compact representation than traditional rectangular methods, reducing the cost of busses and memory in intensive complex-number applications like the FFT; however, prior CLNS implementations were either slow CORDIC-based or expensive 2D-table-based approaches. This paper attempts to leverage the recent advances made in real-valued LNS units for the more specialized context of CLNS. This paper proposes a novel approach to reduce the cost of CLNS addition by re-using a conventional real-valued LNS ALU with specialized CLNS hardware that is smaller than the real-valued LNS ALU to which it is attached. The resulting ALU is much less expensive than prior fast CLNS units at the cost of some extra delay. The extra hardware added to the ALU is for trigonometric-related functions, and may be useful in LNS applications other than CLNS. The novel algorithm proposed here is implemented using the FloPoCo library (which incorporates recent HOTBM advances in function-unit generation), and FPGA synthesis results are reported.
Mark G. Arnold, Caroline Collange
IEEE Symposium on Computer Arithmetic2
2007 Graphic processors to speed-up simulations for the design of high performance solar receptors
abstract
Graphics processing units (GPUs) are now powerful and flexible systems adapted and used for other purposes than graphics calculations (general purpose computation on GPU — GPGPU). We present here a prototype to be integrated into simulation codes that estimate temperature, velocity and pressure to design next generations of solar receptors. Such codes will delegate to our contribution on GPUs the computation of heat transfers due to radiations. We use Monte-Carlo line-by-line ray-tracing through finite volumes. This means data-parallel arithmetic transformations on large data structures. Our prototype is inspired on the source code of GPUBench. Our performances on two recent graphics cards (Nvidia 7800GTX and ATI RX1800XL) show some speed-up higher than 400 compared to CPU implementations leaving most of CPU computing resources available. As there were some questions pending about the accuracy of the operators implemented in GPUs, we start this report with a survey and some contributed tests on the various floating point units available on GPUs.
Caroline Collange, Marc Daumas, David Defour
ASAP1
2007 LNS Subtraction Using Novel Cotransformation and/or Interpolation
abstract
The Logarithmic Number System (LNS) makes multiplication, division and powering easy, but subtraction is expensive. Cotransformation converts the difficult operation of logarithmic subtraction into the easier operation of logarithmic addition. In this paper, a new variant of cotransformation is proposed, which is simpler to design and more economical in hardware than previous cotransformation methods. The novel method commutes operands differently for addition than for subtraction. Simulation results show how many guard bits are required by the new cotransformation to guarantee faithful rounding and that, even without guard bits, cotransformation produces an LNS unit more accurate than a previously published Hardware-Description-Language (HDL) library for LNS arithmetic that uses only multipartite tables or 2nd-order interpolation.
Panagiotis D. Vouzis, Caroline Collange, Mark G. Arnold
ASAP2
2007 Cotransformation Provides Area and Accuracy Improvement in an HDL Library for LNS Subtraction
Panagiotis D. Vouzis, Caroline Collange, Mark G. Arnold
DSD2
2007 Monte Carlo Logarithmic Number System for Model Predictive Control
abstract
Simple algorithms can be analytically characterized, but such analysis is questionable or even impossible for more complicated algorithms, such as Model Predictive Control (MPC). Instead, Monte Carlo Arithmetic (MCA) enables statistical experimentation with an algorithm during runtime for detection and mitigation of numerical anomalies. Previous studies of MCA have been limited to software floating point. This paper studies how MCA can be used in an FPGA implementation of the Logarithmic Number System (LNS), forming the Monte Carlo Logarithmic Number System (MCLNS). Simulation studies present how MCLNS affects the accuracy vs. performance of an MPC implementation, and synthesis results give an estimate of the cost of utilizing MCLNS in a Xilinx Virtex-IV FPGA.
Panagiotis D. Vouzis, Caroline Collange, Mark G. Arnold, Mayuresh V. Kothare
FPL2
2006 Floating Point or LNS: Choosing the Right Arithmetic on an Aapplication Basis
abstract
For applications requiring a large dynamic range, real numbers may be represented either in floating-point (FP), or in the logarithm number system (LNS). Which system is best for a given application is difficult to know in advance, because the cost and performance of LNS operators depend on the target accuracy in a highly non linear way. In doubt, designers will choose floating-point. This article demonstrates a methodology for a better informed choice thanks to FPLibrary, a freely available, dual FP/LNS arithmetic operator library. FPLibrary may be used in the prototype phase of an application to obtain, with low design effort, accurate measures of performance, cost and accuracy of both LNS and FP approaches. Two case studies demonstrate the benefits of this methodology.
Caroline Collange, Jérémie Detrey, Florent de Dinechin
DSD1