Ayal Zaks

dblp:80/2347 · DBLP profile ↗
← Back
22ranked-venue papers
1as first author
2since 2021 · last 2024
0009-0008-8238-3135ORCID · corroborated

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

Systems, architecture and hardware · 12 · 1 since 2021Software engineering, systems software and programming languages · 9 · 1 first-author · 2 since 2021Theory of computation · 3
YearPublicationVenuePosition
2024 If-Convert as Early as You Must
abstract
Optimizing compilers employ a rich set of transformations that generate highly efficient code for a variety of source languages and target architectures. These transformations typically operate on general control flow constructs which trigger a range of optimization opportunities, such as moving code to less frequently executed paths, and more. Regular loop nests are specifically relevant for accelerating certain domains, leveraging architectural features including vector instructions, hardware-controlled loops and data flows, provided their internal control-flow is eliminated. Compilers typically apply predicating if-conversion late, in their backend, to remove control-flow undesired by the target. Until then, transformations triggered by control-flow constructs that are destined to be removed may end up doing more harm than good. We present an approach that leverages the existing powerful and general optimization flow of LLVM when compiling for targets without control-flow in loops. Rather than trying to teach various transformations how to avoid misoptimizing for such targets, we propose to introduce an aggressive if-conversion pass as early as possible, along with carefully addressing pass-ordering implications. This solution outperforms the traditional compilation flow with only a modest tuning effort, thereby offering a robust and promising compilation approach for branch-restricted targets.
Dorit Nuzman, Ayal Zaks, Ziv Ben-Zion
CC2
2021 Message from the Program Chairs
abstract
We are pleased to welcome you to CGO 2021, the first virtual CGO Conference. In addition, the Program Committee was virtual due to the worldwide infection rate of the coronavirus. On behalf of the Program Committee, we are pleased to present an exciting and stimulating program for the 2021 International Symposium on Code Generation and Optimization Conference.
Mary Lou Soffa, Ayal Zaks
CGO2
2018 MemoDyn: exploiting weakly consistent data structures for dynamic parallel memoization
abstract
Several classes of algorithms for combinatorial search and optimization problems employ memoization data structures to speed up their serial convergence. However, accesses to these data structures impose dependences that obstruct program parallelization. Such programs often continue to function correctly even when queries into these data structures return a partial view of their contents. Weakening the consistency of these data structures can unleash new parallelism opportunities, potentially at the cost of additional computation. These opportunities must, therefore, be carefully exploited for overall speedup. This paper presents MemoDyn, a framework for parallelizing loops that access data structures with weakly consistent semantics. MemoDyn provides programming abstractions to express weak semantics, and consists of a parallelizing compiler and a runtime system that automatically and adaptively exploit the semantics for optimized parallel execution. Evaluation of MemoDyn shows that it achieves efficient parallelization, providing significant improvements over competing techniques in terms of both runtime performance and solution quality.
Prakash Prabhu, Stephen R. Beard, Sotiris Apostolakis, Ayal Zaks, David I. August
PACT4
2013 Fast condensation of the program dependence graph
abstract
Aggressive compiler optimizations are formulated around the Program Dependence Graph (PDG). Many techniques, including loop fission and parallelization are concerned primarily with dependence cycles in the PDG. The Directed Acyclic Graph of Strongly Connected Components (DAGSCC) represents these cycles directly. The naive method to construct the DAGSCC first computes the full PDG. This approach limits adoption of aggressive optimizations because the number of analysis queries grows quadratically with program size, making DAGSCC construction expensive. Consequently, compilers optimize small scopes with weaker but faster analyses.
Nick P. Johnson, Taewook Oh, Ayal Zaks, David I. August
PLDI3
2012 Parallelizing more Loops with Compiler Guided Refactoring
abstract
The performance of many parallel applications relies not on instruction-level parallelism but on loop-level parallelism. Unfortunately, automatic parallelization of loops is a fragile process, many different obstacles affect or prevent it in practice. To address this predicament we developed an interactive compilation feedback system that guides programmers in iteratively modifying their application source code. This helps leverage the compiler's ability to generate loop-parallel code. We employ our system to modify two sequential benchmarks dealing with image processing and edge detection, resulting in scalable parallelized code that runs up to 8.3 times faster on an eight-core Intel Xeon 5570 system and up to 12.5 times faster on a quad-core IBM POWER6 system. Benchmark performance varies significantly between the systems. This suggests that semi-automatic parallelization should be combined with target-specific optimizations. Furthermore, comparing the first benchmark to manually-parallelized, hand-optimized pthreads and OpenMP versions, we find that code generated using our approach typically outperforms the pthreads code (within 93-339%). It also performs competitively against the OpenMP code (within 75-111%). The second benchmark outperforms manually-parallelized and optimized OpenMP code (within 109-242%).
Per Larsen, Razya Ladelsky, Jacob Lidman, Sally A. McKee, Sven Karlsson, Ayal Zaks
ICPP6
2012 Speculative separation for privatization and reductions
abstract
Automatic parallelization is a promising strategy to improve application performance in the multicore era. However, common programming practices such as the reuse of data structures introduce artificial constraints that obstruct automatic parallelization. Privatization relieves these constraints by replicating data structures, thus enabling scalable parallelization. Prior privatization schemes are limited to arrays and scalar variables because they are sensitive to the layout of dynamic data structures. This work presents Privateer, the first fully automatic privatization system to handle dynamic and recursive data structures, even in languages with unrestricted pointers. To reduce sensitivity to memory layout, Privateer speculatively separates memory objects. Privateer's lightweight runtime system validates speculative separation and speculative privatization to ensure correct parallel execution. Privateer enables automatic parallelization of general-purpose C/C++ applications, yielding a geomean whole-program speedup of 11.4x over best sequential execution on 24 cores, while non-speculative parallelization yields only 0.93x.
Nick P. Johnson, Hanjun Kim 0001, Prakash Prabhu, Ayal Zaks, David I. August
PLDI4
2012 Parcae: a system for flexible parallel execution
abstract
Workload, platform, and available resources constitute a parallel program's execution environment. Most parallelization efforts statically target an anticipated range of environments, but performance generally degrades outside that range. Existing approaches address this problem with dynamic tuning but do not optimize a multiprogrammed system holistically. Further, they either require manual programming effort or are limited to array-based data-parallel programs.
Arun Raman, Ayal Zaks, Jae W. Lee, David I. August
PLDI2
2011 Vapor SIMD: Auto-vectorize once, run everywhere
abstract
Just-in-Time (JIT) compiler technology offers portability while facilitating target- and context-specific specialization. Single-Instruction-Multiple-Data (SIMD) hardware is ubiquitous and markedly diverse, but can be difficult for JIT compilers to efficiently target due to resource and budget constraints. We present our design for a synergistic auto-vectorizing compilation scheme. The scheme is composed of an aggressive, generic offline stage coupled with a lightweight, target-specific online stage. Our method leverages the optimized intermediate results provided by the first stage across disparate SIMD architectures from different vendors, having distinct characteristics ranging from different vector sizes, memory alignment and access constraints, to special computational idioms. We demonstrate the effectiveness of our design using a set of kernels that exercise innermost loop, outer loop, as well as straight-line code vectorization, all automatically extracted by the common offline compilation stage. This results in performance comparable to that provided by specialized monolithic offline compilers. Our framework is implemented using open-source tools and standards, thereby promoting interoperability and extendibility.
Dorit Nuzman, Sergei Dyshel, Erven Rohou, Ira Rosen, Kevin Williams 0001, David Yuste, Albert Cohen 0001, Ayal Zaks
CGO8
2011 Speculatively vectorized bytecode
abstract
Diversity is a confirmed trend of computing systems, which present a complex and moving target to software developers. Virtual machines and just-in-time compilers have been proposed to mitigate the complexity of these systems. They do so by offering a single and stable abstract machine model thereby hiding architectural details from programmers.
Erven Rohou, Sergei Dyshel, Dorit Nuzman, Ira Rosen, Kevin Williams 0001, Albert Cohen 0001, Ayal Zaks
HiPEAC7
2011 Tolerant Value Speculation in Coarse-Grain Streaming Computations
abstract
Streaming applications are the subject of growing interest, as the need for fast access to data continues to grow. In this work, we present the design requirements and implementation of coarse-grain value speculation in streaming applications. We explain how this technique can be useful in cases where serial parts of applications constitute bottlenecks, and when slower I/O favors using available prefixes of the data. Contrary to previous work, we show how allowing some tolerance can justify early predictions on a scale of a large window of values. We suggest a methodology for runtime support of speculation, along with the mechanisms required for rollback. We present resource management issues consequent to our technique. We study how validation and speculation frequencies impact the performance of the program. Finally, we present our implementation in the context of the Huffman encoder benchmark, running it in different configurations and on different architectures.
Nathaniel Azuelos, Idit Keidar, Ayal Zaks
IPDPS3
2010 Practical aggregation of semantical program properties for machine learning based optimization
abstract
Iterative search combined with machine learning is a promising approach to design optimizing compilers harnessing the complexity of modern computing systems. While traversing a program optimization space, we collect characteristic feature vectors of the program, and use them to discover correlations across programs, target architectures, data sets, and performance. Predictive models can be derived from such correlations, effectively hiding the time-consuming feedback-directed optimization process from the application programmer.
Mircea Namolaru, Albert Cohen 0001, Grigori Fursin, Ayal Zaks, Ari Freund 0001
CASES4
2010 Trace-Based Data Layout Optimizations for Multi-core Processors
Olga Golovanevsky, Alon Dayan, Ayal Zaks, David Edelsohn
HiPEAC3
2009 Polyhedral-Model Guided Loop-Nest Auto-Vectorization
abstract
Optimizing compilers apply numerous interdependent optimizations, leading to the notoriously difficult phase-ordering problem - that of deciding which transformations to apply and in which order. Fortunately, new infrastructures such as the polyhedral compilation framework host a variety of transformations, facilitating the efficient exploration and configuration of multiple transformation sequences. Many powerful optimizations, however, remain external to the polyhedral framework, including vectorization. The low-level, target-specific aspects of vectorization for fine-grain SIMD has so far excluded it from being part of the polyhedral framework. In this paper we examine the interactions between loop transformations of the polyhedral framework and subsequent vectorization. We model the performance impact of the different loop transformations and vectorization strategies, and then show how this cost model can be integrated seamlessly into the polyhedral representation. This predictive modelling facilitates efficient exploration and educated decision making to best apply various polyhedral loop transformations while considering the subsequent effects of different vectorization schemes. Our work demonstrates the feasibility and benefit of tuning the polyhedral model in the context of vectorization. Experimental results confirm that our model has accurate predictions, providing speedups of over 2.0times on average over traditional innermost-loop vectorization on PowerPC970 and Cell-SPU SIMD platforms.
Konrad Trifunovic, Dorit Nuzman, Albert Cohen 0001, Ayal Zaks, Ira Rosen
PACT4
2008 Outer-loop vectorization: revisited for short SIMD architectures
abstract
Vectorization has been an important method of using data-level parallelism to accelerate scientific workloads on vector machines such as Cray for the past three decades. In the last decade it has also proven useful for accelerating multi-media and embedded applications on short SIMD architectures such as MMX, SSE and AltiVec. Most of the focus has been directed at innermost loops, effectively executing their iterations concurrently as much as possible. Outer loop vectorization refers to vectorizing a level of a loop nest other than the innermost, which can be beneficial if the outer loop exhibits greater data-level parallelism and locality than the innermost loop. Outer loop vectorization has traditionally been performed by interchanging an outer-loop with the innermost loop, followed by vectorizing it at the innermost position. A more direct unroll-and-jam approach can be used to vectorize an outer-loop without involving loop interchange, which can be especially suitable for short SIMD architectures.
Dorit Nuzman, Ayal Zaks
PACT2
2008 Topic 4: High Performance Architectures and Compilers
Koen De Bosschere, Ayal Zaks, Michael C. Huang 0001, Luis Piñuel
Euro-Par2
2007 New Algorithms for SIMD Alignment
Liza Fireman, Erez Petrank, Ayal Zaks
CC3
2006 Auto-vectorization of interleaved data for SIMD
abstract
Most implementations of the Single Instruction Multiple Data (SIMD) model available today require that data elements be packed in vector registers. Operations on disjoint vector elements are not supported directly and require explicit data reorganization manipulations. Computations on non-contiguous and especially interleaved data appear in important applications, which can greatly benefit from SIMD instructions once the data is reorganized properly. Vectorizing such computations efficiently is therefore an ambitious challenge for both programmers and vectorizing compilers. We demonstrate an automatic compilation scheme that supports effective vectorization in the presence of interleaved data with constant strides that are powers of 2, facilitating data reorganization. We demonstrate how our vectorization scheme applies to dominant SIMD architectures, and present experimental results on a wide range of key kernels, showing speedups in execution time up to 3.7 for interleaving levels (stride) as high as 8.
Dorit Nuzman, Ira Rosen, Ayal Zaks
PLDI3
2005 Computing the minimum DNF representation of Boolean functions defined by intervals
Baruch Schieber, Daniel Geist, Ayal Zaks
Discret. Appl. Math.3
2003 Vectorizing for a SIMdD DSP architecture
abstract
The Single Instruction Multiple Data (SIMD) model for finegrained parallelism was recently extended to support SIMD operations on disjoint vector elements. In this paper we demonstrate how SIMdD (SIMD on disjoint data) supports e#ective vectorization of digital signal processing (DSP) benchmarks, by facilitating data reorganization and reuse. In particular we show that this model can be adopted by a compiler to achieve nearoptimal performance for important classes of kernels.
Dorit Naishlos, Marina Biberstein, Shay Ben-David, Ayal Zaks
CASES4
2002 Algorithmic Aspects of Acyclic Edge Colorings
Noga Alon, Ayal Zaks
Algorithmica2
2000 Sealed calls in Java packages
abstract
Ø�Ö��Ø×�ÙÖ�Ø�ÐÝÌ��ÔÖÓ�Ð�Ñ�×�×Ô���ÐÐÝ��ÆÙÐØ�ÓÖ �ÝÒ�Ñ�Ð�Ò�Ù���××Ù��×Â�Ú����Ù×�����Ø�ÓÒ�ÐØ�Ö��Ø × ��Ø�ÖÑ�Ò�Ò�Ø��ÔÓØ�ÒØ��ÐØ�Ö��Ø×Ó�Ú�ÖØÙ�ÐÑ�Ø�Ó��ÒÚÓ � Ø�ÓÒ×�×�××�ÒØ��Ð�ÓÖ�ÒØ�ÖÔÖÓ��ÙÖ�ÐÓÔØ�Ñ�Þ�Ø�ÓÒ×Ó�Ó���Ø ÓÖ��ÒØ��ÔÖÓ�Ö�Ñ×ÁØ�×��Ò�Ö�ÐÐÝ��Ö�ØÓ��Ø�ÖÑ�Ò�×Ù � Â�Ú�Ó���ØÓÖ��ÒØ��ÔÖÓ�Ö�ÑÑ�Ò��ÒØ�ÖÔÖÓ��ÙÖ�Ð�Ò�Ð �Ù���×Ö�Ô��Ø��ÐÝÚ�Ð���Ø�Ø��ÓÔØ�Ñ�Þ�Ø�ÓÒ×�ØÖÙÒØ�Ñ � Ø��Ø�Ò��Ð��ÒØ�ÖÔÖÓ��ÙÖ�ÐÓÔØ�Ñ�Þ�Ø�ÓÒ×�ÓÖ�ÝÒ�Ñ�Ð�Ò Ó�Ú�ÖØÙ�Ð�ÐÐ×Ñ�Ý�ÔÔ��Ö�ØÖÙÒØ�Ñ��ÙÖÖ�ÒØÑ���Ò�×Ñ × Ý×�×�ÐÐ��Ú�ÖØÙ�Ð�Þ�Ø�ÓÒÑ�Ø�Ó��ÒÐ�Ò�Ò�Ð�××���Ö�Ö�Ý �Ö�Ô��ÐÐ�Ö�Ô�×��Ð��Ô����� Ì��×Ô�Ô�Ö���Ö�××�ר��×ÔÖ����Ñ�ÒØ�ÝÔÖÓÔÓ×�Ò��ÒÓÚ�Ð Ø��Ò�ÕÙ��ÓÖÓÒ×�ÖÚ�Ø�Ú���Ú�ÖØÙ�Ð�Þ�Ø�ÓÒ�Ò�ÐÝ×�×Û�� � �ÔÔÐ��רÓ�×��Ò�¬�ÒØÒÙÑ��ÖÓ�Ú�ÖØÙ�Ð�ÐÐ×�ÒÂ�Ú�ÔÖÓ Ö�Ð�Ø��×�ÙÖ�ØÝ���ØÙÖ�Ó�Â�Ú�¬Ð��Ö��Ú�×ÇÒ�Ú�Ö���ÓÙÖ �Ö�Ñ×ÍÒÐ���ÔÖ�Ú�ÓÙ×ÛÓÖ�ÓÙÖØ��Ò�ÕÙ�Ö�ÕÙ�Ö�×Ò��Ø��Ö �Ö���×��ÓÒØ����Ø�ÖÑ�Ò�Ø�ÓÒÓ�Ø��ÔÓØ�ÒØ��ÐØ�Ö��Ø×Ó � ÁÒØ�ÖÔÖÓ��ÙÖ�ÐÓÔØ�Ñ�Þ�Ø�ÓÒ×Ó�Ó���ØÓÖ��ÒØ��ÔÖÓ�Ö�Ñ×
Ayal Zaks, Vitaly Feldman, Nava Aizikowitz
OOPSLA1
1998 T-choosability in Graphs
Noga Alon, Ayal Zaks
Discret. Appl. Math.2