Results 1  10
of
14
Obsidian: A Domain Specific Embedded Language for GeneralPurpose Parallel Programming of Graphics Processors
 In Proc. of Implementation and Applications of Functional Languages (IFL), Lecture Notes in Computer Science
, 2008
"... Abstract. We present a domain specific language, embedded in Haskell, for general purpose parallel programming on GPUs. Our intention is to explore the use of connection patterns in parallel programming. We briefly present our earlier work on hardware generation, and outline the current state of GPU ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Abstract. We present a domain specific language, embedded in Haskell, for general purpose parallel programming on GPUs. Our intention is to explore the use of connection patterns in parallel programming. We briefly present our earlier work on hardware generation, and outline the current state of GPU architectures and programming models. Finally, we present the current status of the Obsidian project, which aims to make GPU programming easier, without relinquishing detailed control of GPU resources. Both a programming example and some details of the implementation are presented. This is a report on work in progress. 1
A Sound and Complete Abstraction for Reasoning about Parallel Prefix Sums ∗
"... Prefix sums are key building blocks in the implementation of many concurrent software applications, and recently much work has gone into efficiently implementing prefix sums to run on massively parallel graphics processing units (GPUs). Because they lie at the heart of many GPUaccelerated applicat ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
(Show Context)
Prefix sums are key building blocks in the implementation of many concurrent software applications, and recently much work has gone into efficiently implementing prefix sums to run on massively parallel graphics processing units (GPUs). Because they lie at the heart of many GPUaccelerated applications, the correctness of prefix sum implementations is of prime importance. We introduce a novel abstraction, the interval of summations, that allows scalable reasoning about implementations of prefix sums. We present this abstraction as a monoid, and prove a soundness and completeness result showing that a generic sequential prefix sum implementation is correct for an array of length n if and only if it computes the correct result for a specific test case when instantiated with the interval of summations monoid. This allows correctness to be established by running a single test where the in
Coquet: A Coq library for verifying hardware
 In Proceedings of the 1st International Conference on Certified Programs and Proofs (CPP ’11), J.P.Jouannaudand Z. Shao, Eds. LNCS
"... Abstract. We propose a new library to model and verify hardware circuits in the Coq proof assistant. This library allows one to easily build circuits by following the usual penandpaper diagrams. We define a deepembedding: we use a (dependently typed) datatype that models the architecture of cir ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
Abstract. We propose a new library to model and verify hardware circuits in the Coq proof assistant. This library allows one to easily build circuits by following the usual penandpaper diagrams. We define a deepembedding: we use a (dependently typed) datatype that models the architecture of circuits, and a meaning function. We propose tactics that ease the reasoning about the behavior of the circuits, and we demonstrate that our approach is practicable by proving the correctness of various circuits: a textbook divide and conquer adder of parametric size, some higherorder combinators of circuits, and some sequential circuits: a buffer, and a register.
about Programs General Terms
"... This pearl develops a statement about parallel prefix computation in the spirit of Knuth’s 01Principle for oblivious sorting algorithms. It turns out that 01 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity. Categories and Subject Des ..."
Abstract
 Add to MetaCart
(Show Context)
This pearl develops a statement about parallel prefix computation in the spirit of Knuth’s 01Principle for oblivious sorting algorithms. It turns out that 01 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity. Categories and Subject Descriptors D.1.1 [Programming Techniques]:
ΠWare: Hardware Description and Verification in
"... There is a long tradition of modelling digital circuits using functional programming languages. This paper demonstrates that by employing dependently typed programming languages, it becomes possible to define circuit descriptions that may be simulated, tested, verified and synthesized using a singl ..."
Abstract
 Add to MetaCart
There is a long tradition of modelling digital circuits using functional programming languages. This paper demonstrates that by employing dependently typed programming languages, it becomes possible to define circuit descriptions that may be simulated, tested, verified and synthesized using a single language. The resulting domain specific embedded language, ΠWare, makes it possible to define and verify entire families of circuits at once. We demonstrate this by defining an algebra of parallel prefix circuits, proving their correctness and further algebraic properties.
Performance Analysis and Design Aids
"... We develop a Haskell library for functionallogic programming, motivated by the implementation of Wired, a relational embedded domainspecific language for describing and analysing digital circuits at the VLSIlayout level. Compared to a previous library for logic programming by Claessen and Ljunglö ..."
Abstract
 Add to MetaCart
(Show Context)
We develop a Haskell library for functionallogic programming, motivated by the implementation of Wired, a relational embedded domainspecific language for describing and analysing digital circuits at the VLSIlayout level. Compared to a previous library for logic programming by Claessen and Ljunglöf, we support residuation, easier creation of logical data types, and pattern matching. We discuss other applications of our library, including testdata generation, and various extensions, including lazy narrowing.
Nonnumerical Algorithms and Problems; F.3.1 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programs
"... This pearl develops a statement about parallel prefix computation in the spirit of Knuth’s 01Principle for oblivious sorting algorithms. It turns out that 01 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity. ..."
Abstract
 Add to MetaCart
(Show Context)
This pearl develops a statement about parallel prefix computation in the spirit of Knuth’s 01Principle for oblivious sorting algorithms. It turns out that 01 is not quite enough here. The perfect hammer for the nails we are going to drive in is relational parametricity.
Parallel Prefix Network Generation: an Application of Functional Programming
"... Parallel prefix networks are used in priority encoders, and to compute carries in fast adders. A typical microprocessor contains many such networks, and often they are hotspots. Although parallel prefix (or scan) has been much studied, surprisingly many questions remain unanswered. As geometries shr ..."
Abstract
 Add to MetaCart
(Show Context)
Parallel prefix networks are used in priority encoders, and to compute carries in fast adders. A typical microprocessor contains many such networks, and often they are hotspots. Although parallel prefix (or scan) has been much studied, surprisingly many questions remain unanswered. As geometries shrink, it is not at all clear how to make low power prefix networks with the desired timing properties. Here, I develop a method of writing very highly parameterised parallel prefix network generators in which we specify the combinators used to build the networks and then search for a topology that matches the given delay constraints. This first case study indicates that, in this functional setting, combinators and search fit well together. The resulting prefix networks are both small and shallow, and likely to be useful in low power applications. 1