English
Related papers

Related papers: A Tiling Perspective for Register Optimization

200 papers

Register allocation (mapping variables to processor registers or memory) and instruction scheduling (reordering instructions to increase instruction-level parallelism) are essential tasks for generating efficient assembly code in a…

Programming Languages · Computer Science 2019-06-10 Roberto Castañeda Lozano , Christian Schulte

This paper introduces a combinatorial optimization approach to register allocation and instruction scheduling, two central compiler problems. Combinatorial optimization has the potential to solve these problems optimally and to exploit…

Programming Languages · Computer Science 2019-06-21 Roberto Castañeda Lozano , Mats Carlsson , Gabriel Hjort Blindell , Christian Schulte

Register allocation is one of the most important problems for modern compilers. With a practically unlimited number of user variables and a small number of CPU registers, assigning variables to registers without conflicts is a complex task.…

Machine Learning · Computer Science 2024-01-24 Chase Cummins , Richard Veras

Mining and exploring databases should provide users with knowledge and new insights. Tiles of data strive to unveil true underlying structure and distinguish valuable information from various kinds of noise. We propose a novel Boolean…

Artificial Intelligence · Computer Science 2019-06-25 Sibylle Hess , Katharina Morik , Nico Piatkowski

The aggressive application of scalar replacement to array references substantially reduces the number of memory operations at the expense of a possibly very large number of registers. In this paper we describe a register allocation…

Programming Languages · Computer Science 2011-11-09 Nastaran Baradaran , Pedro C. Diniz

Given a basic block of instructions, finding a schedule that requires the minimum number of registers for evaluation is a well-known problem. The problem is NP-complete when the dependences among instructions form a directed-acyclic graph…

Programming Languages · Computer Science 2023-11-22 Gang Chen

In a compiler, an essential component is the register allocator. Two main algorithms have dominated implementations, graph coloring and linear scan, differing in how live values are modeled. Graph coloring uses an edge in an `interference…

Programming Languages · Computer Science 2020-11-12 Ian Rogers

Partitioning large matrices is an important problem in distributed linear algebra computing (used in ML among others). Briefly, our goal is to perform a sequence of matrix algebra operations in a distributed manner (whenever possible) on…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-06-30 Avah Banerjee , Guoli Ding , Maxwell Reeser

In modern digital circuit back-end design, designers heavily rely on electronic-design-automoation (EDA) tool to close timing. However, the heuristic algorithms used in the place and route tool usually does not result in optimal solution.…

Machine Learning · Computer Science 2018-01-10 Karthik Airani , Rohit Guttal

Tiering is an essential technique for building large-scale information retrieval systems. While the selection of documents for high priority tiers critically impacts the efficiency of tiering, past work focuses on optimizing it with respect…

Information Retrieval · Computer Science 2020-05-19 Hyokun Yun , Michael Froh , Roshan Makhijani , Brian Luc , Alex Smola , Trishul Chilimbi

During compilation of a program, register allocation is the task of mapping program variables to machine registers. During register allocation, the compiler may introduce shuffle code, consisting of copy and swap operations, that transfers…

Data Structures and Algorithms · Computer Science 2015-05-19 Sebastian Buchwald , Manuel Mohr , Ignaz Rutter

Placement Optimization is an important problem in systems and chip design, which consists of mapping the nodes of a graph onto a limited set of resources to optimize for an objective, subject to constraints. In this paper, we start by…

Artificial Intelligence · Computer Science 2020-03-20 Anna Goldie , Azalia Mirhoseini

Optimization pipelines targeting polyhedral programs try to maximize the compute throughput. Traditional approaches favor reuse and temporal locality; while the communicated volume can be low, failure to optimize spatial locality may cause…

Programming Languages · Computer Science 2023-12-07 Corentin Ferry , Steven Derrien , Sanjay Rajopadhye

Reducing communication - either between levels of a memory hierarchy or between processors over a network - is a key component of performance optimization (in both time and energy) for many problems, including dense linear algebra, particle…

Data Structures and Algorithms · Computer Science 2020-03-03 Grace Dinh , James Demmel

Bringing high-level machine learning models to efficient and well-suited machine implementations often invokes a bunch of tools, e.g.~code generators, compilers, and optimizers. Along such tool chains, abstractions have to be applied. This…

Machine Learning · Computer Science 2024-04-11 Daniel Biebert , Christian Hakert , Kuan-Hsun Chen , Jian-Jia Chen

In the Tutor Allocation Problem, the objective is to assign a set of tutors to a set of workshops in order to maximize tutors' preferences. The problem is solved every year by many universities, each having its own specific set of…

Computers and Society · Computer Science 2020-05-20 Giulia Caselli , Maxence Delorme , Manuel Iori

Finding optimal configurations in a geometric space is a key challenge in many technological disciplines. Current approaches either rely heavily on human domain expertise and are difficult to scale. In this paper we show it is possible to…

Artificial Intelligence · Computer Science 2023-03-06 Shuai Xiao , Zaifan Jiang , Shuang Yang

This thesis addresses the complexities of compiler optimizations, such as register allocation and Lifetime-optimal Speculative Partial Redundancy Elimination (LOSPRE), which are often handled using tree decomposition algorithms. However,…

Programming Languages · Computer Science 2025-07-23 Xuran Cai

In the context of mapping high-level algorithms to hardware, we consider the basic problem of generating an efficient hardware implementation of a single threaded program, in particular, that of an inner loop. We describe a control-flow…

Hardware Architecture · Computer Science 2014-11-05 Madhav Desai

Computations, where the number of results is much smaller than the input data and are produced through some sort of accumulation, are called Reductions. Reductions appear in many scientific applications. Usually, reductions admit an…

Programming Languages · Computer Science 2018-01-19 Nirmal Prajapati
‹ Prev 1 2 3 10 Next ›