Lock-free algorithms, in which threads synchronise not via coarse-grained mutual exclusion but via fine-grained atomic operations ('atomics'), have been shown empirically to be the fastest class of multi-threaded algorithms in the realm of conventional processors. This paper explores how these algorithms can be compiled from C to reconfigurable hardware via high-level synthesis (HLS). We focus on the scheduling problem, in which software instructions are assigned to hardware clock cycles. We first show that typical HLS scheduling constraints are insufficient to implement atomics, because they permit some instruction reorderings that, though sound in a single-threaded context, demonstrably cause erroneous results when synthesising multi-thre...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Despite the conceptual simplicity of sequential consistency (SC), the semantics of SC atomic operati...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
When mapping C programs to hardware, high-level synthesis (HLS) tools seek to reorder instructions s...
When mapping C programs to hardware, high-level synthesis (HLS) tools reorder independent instructio...
<p>Hardware Synthesis of Weakly Consistency C Concurrency</p> <p>This webpage contains additional m...
This collection contains the companion material of "Concurrency-Aware Thread Scheduling for High-Lev...
High-level synthesis (HLS) can automatically synthesize software to hardware. With the design specif...
The multi-core revolution has pushed programmers and algorithm designers to build algorithms that le...
One solution to the timing closure problem is to perform infrequent operations in more than one cloc...
Conventional High-Level Synthesis (HLS) tools exploit parallelism mostly at the Instruction Level (I...
Modern architectures implement relaxed memory models which may reorder memory operations or execute ...
High-level synthesis (HLS) is an increasingly popular method for generating hardware from a descript...
Strictness analysis is crucial for the efficient implementation of the lazy functional languages. A ...
Copyright is held by the owner/author(s). Despite much research on concurrent programming languages,...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Despite the conceptual simplicity of sequential consistency (SC), the semantics of SC atomic operati...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...
When mapping C programs to hardware, high-level synthesis (HLS) tools seek to reorder instructions s...
When mapping C programs to hardware, high-level synthesis (HLS) tools reorder independent instructio...
<p>Hardware Synthesis of Weakly Consistency C Concurrency</p> <p>This webpage contains additional m...
This collection contains the companion material of "Concurrency-Aware Thread Scheduling for High-Lev...
High-level synthesis (HLS) can automatically synthesize software to hardware. With the design specif...
The multi-core revolution has pushed programmers and algorithm designers to build algorithms that le...
One solution to the timing closure problem is to perform infrequent operations in more than one cloc...
Conventional High-Level Synthesis (HLS) tools exploit parallelism mostly at the Instruction Level (I...
Modern architectures implement relaxed memory models which may reorder memory operations or execute ...
High-level synthesis (HLS) is an increasingly popular method for generating hardware from a descript...
Strictness analysis is crucial for the efficient implementation of the lazy functional languages. A ...
Copyright is held by the owner/author(s). Despite much research on concurrent programming languages,...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
Despite the conceptual simplicity of sequential consistency (SC), the semantics of SC atomic operati...
We present a computer-aided programming approach to concurrency. The approach allows programmers to ...