PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Implementation of a portable nested data-parallel language
Journal of Parallel and Distributed Computing - Special issue on data parallel algorithms and programming
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Domain specific embedded compilers
Proceedings of the 2nd conference on Domain-specific languages
Functional reactive robotics: an exercise in principled integration of domain-specific languages
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Generating Netlists from Executable Circuit Specifications
Proceedings of the 1992 Glasgow Workshop on Functional Programming
The Design of a Pretty-printing Library
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Observable Sharing for Functional Circuit Description
ASIAN '99 Proceedings of the 5th Asian Computing Science Conference on Advances in Computing Science
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Journal of Functional Programming
Programming graphics processors functionally
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Why it's nice to be quoted: quasiquoting for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Flask: staged functional programming for sensor networks
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Harnessing the Multicores: Nested Data Parallelism in Haskell
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Unembedding domain-specific languages
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Type-safe observable sharing in Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Obsidian: a domain specific embedded language for parallel programming of graphics processors
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Accelerating Haskell array codes with multicore GPUs
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Simple optimizations for an applicative array language for graphics processors
Proceedings of the sixth workshop on Declarative aspects of multicore programming
Firepile: run-time compilation for GPUs in scala
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Haskell boards the ferry: database-supported program execution for Haskell
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Expressive array constructs in an embedded GPU kernel programming language
DAMP '12 Proceedings of the 7th workshop on Declarative aspects and applications of multicore programming
Synthesising graphics card programs from DSLs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Functional high performance financial IT: the hiperfit research center in copenhagen
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Parallel programming in Haskell almost for free: an embedding of intel's array building blocks
Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computing
Financial software on GPUs: between Haskell and Fortran
Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computing
A meta-scheduler for the par-monad: composable scheduling for the heterogeneous cloud
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Nested data-parallelism on the gpu
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Explicitly heterogeneous metaprogramming with MetaHaskell
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Adaptive data parallelism for internet clients on heterogeneous platforms
Proceedings of the 8th symposium on Dynamic languages
Typed syntactic meta-programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A practical theory of language-integrated query
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Optimising purely functional GPU programs
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Using circular programs for higher-order syntax: functional pearl
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Counting and occurrence sort for GPUs using an embedded language
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing
An EDSL approach to high performance Haskell programming
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Embrace, defend, extend: a methodology for embedding preexisting DSLs
Proceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages
Composition and reuse with compiled domain-specific languages
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
We describe Nikola, a first-order language of array computations embedded in Haskell that compiles to GPUs via CUDA using a new set of type-directed techniques to support re-usable computations. Nikola automatically handles a range of low-level details for Haskell programmers, such as marshaling data to/from the GPU, size inference for buffers, memory management, and automatic loop parallelization. Additionally, Nikola supports both compile-time and run-time code generation, making it possible for programmers to choose when and where to specialize embedded programs.