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

Simon Moll 0001

dblp:150/7043-1 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 3 · 2 first-author · 1 since 2021Systems, architecture and hardware · 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.

Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 66% Program analysis · 26% Program verification · 8%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Processor architecture and microarchitecture · 40% Parallel and multicore computing · 30% GPUs and heterogeneous computing · 30%

Topics — the 10 heaviest of 12, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › static analysis
abstract interpretation
0.512021
An abstract interpretation for SPMD divergence on reducible control flow graphs · Proc. ACM Program. Lang. 2021
Compilers and program optimization › program transformation › control flow transformation
if-conversion
0.312018
Partial control-flow linearization · PLDI 2018
Compilers and program optimization
vectorization
0.312018
Partial control-flow linearization · PLDI 2018
Parallel and multicore computing › parallel programming models
data-parallel language
0.312018
Partial control-flow linearization · PLDI 2018
Processor architecture and microarchitecture
SIMD
0.312018
Partial control-flow linearization · PLDI 2018
GPUs and heterogeneous computing
control flow divergence
0.212014
The Impact of the SIMD Width on Control-Flow and Memory Divergence · ACM Trans. Archit. Code Optim. 2014
GPUs and heterogeneous computing › GPU memory access
memory divergence
0.212014
The Impact of the SIMD Width on Control-Flow and Memory Divergence · ACM Trans. Archit. Code Optim. 2014
Processor architecture and microarchitecture › SIMD
SIMD processor
0.212014
The Impact of the SIMD Width on Control-Flow and Memory Divergence · ACM Trans. Archit. Code Optim. 2014
Program verification › formal proof
mechanized proof
0.112021
An abstract interpretation for SPMD divergence on reducible control flow graphs · Proc. ACM Program. Lang. 2021
Parallel and multicore computing › data parallelism
data-parallel program
0.112014
The Impact of the SIMD Width on Control-Flow and Memory Divergence · ACM Trans. Archit. Code Optim. 2014

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

partial linearization · 0.7coq mechanization · 0.5abstract interpretation · 0.5thread regrouping · 0.2
YearPublicationVenuePosition
2021 An abstract interpretation for SPMD divergence on reducible control flow graphs
abstract
Vectorizing compilers employ divergence analysis to detect at which program point a specific variable is uniform, i.e. has the same value on all SPMD threads that execute this program point. They exploit uniformity to retain branching to counter branch divergence and defer computations to scalar processor units. Divergence is a hyper-property and is closely related to non-interference and binding time. There exist several divergence, binding time, and non-interference analyses already but they either sacrifice precision or make significant restrictions to the syntactical structure of the program in order to achieve soundness. In this paper, we present the first abstract interpretation for uniformity that is general enough to be applicable to reducible CFGs and, at the same time, more precise than other analyses that achieve at least the same generality. Our analysis comes with a correctness proof that is to a large part mechanized in Coq. Our experimental evaluation shows that the compile time and the precision of our analysis is on par with LLVM's default divergence analysis that is only sound on more restricted CFGs. At the same time, our analysis is faster and achieves better precision than a state-of-the-art non-interference analysis that is sound and at least as general as our analysis.
Julian Rosemann, Simon Moll 0001, Sebastian Hack
Proc. ACM Program. Lang.2
2018 Partial control-flow linearization
abstract
If-conversion is a fundamental technique for vectorization. It accounts for the fact that in a SIMD program, several targets of a branch might be executed because of divergence. Especially for irregular data-parallel workloads, it is crucial to avoid if-converting non-divergent branches to increase SIMD utilization. In this paper, we present partial linearization, a simple and efficient if-conversion algorithm that overcomes several limitations of existing if-conversion techniques. In contrast to prior work, it has provable guarantees on which non-divergent branches are retained and will never duplicate code or insert additional branches. We show how our algorithm can be used in a classic loop vectorizer as well as to implement data-parallel languages such as ISPC or OpenCL. Furthermore, we implement prior vectorizer optimizations on top of partial linearization in a more general way. We evaluate the implementation of our algorithm in LLVM on a range of irregular data analytics kernels, a neutronics simulation benchmark and NAB, a molecular dynamics benchmark from SPEC2017 on AVX2, AVX512, and ARM Advanced SIMD machines and report speedups of up to 146 % over ICC, GCC and Clang O3.
Simon Moll 0001, Sebastian Hack
PLDI1
2016 Input space splitting for OpenCL
abstract
The performance of OpenCL programs suffers from memory and control flow divergence. Therefore, OpenCL compilers employ static analyses to identify non-divergent control flow and memory accesses in order to produce faster code. However, divergence is often input-dependent, hence can be observed for some, but not all inputs. In these cases, vectorizing compilers have to generate slow code because divergence can occur at run time. In this paper, we use a polyhedral abstraction to partition the input space of an OpenCL kernel. For each partition, divergence analysis produces more precise results i.e., it can classify more code parts as non-divergent. Consequently, specializing the kernel for the input space partitions allows for generating better SIMD code because of less divergence. We implemented our technique in an OpenCL driver for the AVX instruction set and evaluate it on a range of OpenCL benchmarks. We observe speed ups of up to 9x for irregular kernels over a state-of-the-art vectorizing OpenCL driver.
Simon Moll 0001, Johannes Doerfert, Sebastian Hack
CC1
2014 The Impact of the SIMD Width on Control-Flow and Memory Divergence
abstract
Power consumption is a prevalent issue in current and future computing systems. SIMD processors amortize the power consumption of managing the instruction stream by executing the same instruction in parallel on multiple data. Therefore, in the past years, the SIMD width has steadily increased, and it is not unlikely that it will continue to do so. In this article, we experimentally study the influence of the SIMD width to the execution of data-parallel programs. We investigate how an increasing SIMD width (up to 1024) influences control-flow divergence and memory-access divergence, and how well techniques to mitigate them will work on larger SIMD widths. We perform our study on 76 OpenCL applications and show that a group of programs scales well up to SIMD width 1024, whereas another group of programs increasingly suffers from control-flow divergence. For those programs, thread regrouping techniques may become increasingly important for larger SIMD widths. We show what average speedups can be expected when increasing the SIMD width. For example, when switching from scalar execution to SIMD width 64, one can expect a speedup of 60.11, which increases to 62.46 when using thread regrouping. We also analyze the frequency of regular (uniform, consecutive) memory access patterns and observe a monotonic decrease of regular memory accesses from 82.6 at SIMD width 4 to 43.1% at SIMD width 1024.
Thomas Schaub, Simon Moll 0001, Ralf Karrenberg, Sebastian Hack
ACM Trans. Archit. Code Optim.2