futhark: An optimising compiler for a functional, array-oriented language.
Futhark is a small programming language designed to be compiled to efficient parallel code. It is a statically typed, data-parallel, and purely functional array language in the ML family, and comes with a heavily optimising ahead-of-time compiler that presently generates GPU code via CUDA and OpenCL, although the language itself is hardware-agnostic.
For more information, see the website at https://futhark-lang.org
For introductionary information about hacking on the Futhark compiler, see the hacking guide. Regarding the internal design of the compiler, the following modules make good starting points:
Futhark.IR.Syntax explains the basic design of the intermediate representation (IR).
Futhark.Construct explains how to write code that manipulates and creates AST fragments.
Modules
[Index] [Quick Jump]
- Futhark
- Futhark.Actions
- Analysis
- Futhark.Bench
- Futhark.Builder
- CLI
- Futhark.CLI.Autotune
- Futhark.CLI.Bench
- Futhark.CLI.C
- Futhark.CLI.CUDA
- Futhark.CLI.Check
- Futhark.CLI.Datacmp
- Futhark.CLI.Dataset
- Futhark.CLI.Dev
- Futhark.CLI.Doc
- Futhark.CLI.Literate
- Futhark.CLI.Misc
- Futhark.CLI.Multicore
- Futhark.CLI.MulticoreWASM
- Futhark.CLI.OpenCL
- Futhark.CLI.Pkg
- Futhark.CLI.PyOpenCL
- Futhark.CLI.Python
- Futhark.CLI.Query
- Futhark.CLI.REPL
- Futhark.CLI.Run
- Futhark.CLI.Test
- Futhark.CLI.WASM
- CodeGen
- Backends
- Futhark.CodeGen.Backends.CCUDA
- Futhark.CodeGen.Backends.COpenCL
- Futhark.CodeGen.Backends.GenericC
- Futhark.CodeGen.Backends.GenericPython
- Futhark.CodeGen.Backends.GenericWASM
- Futhark.CodeGen.Backends.MulticoreC
- Futhark.CodeGen.Backends.MulticoreWASM
- Futhark.CodeGen.Backends.PyOpenCL
- Futhark.CodeGen.Backends.SequentialC
- Futhark.CodeGen.Backends.SequentialPython
- Futhark.CodeGen.Backends.SequentialWASM
- Futhark.CodeGen.Backends.SimpleRep
- Futhark.CodeGen.ImpCode
- Futhark.CodeGen.ImpGen
- Futhark.CodeGen.ImpGen.CUDA
- Futhark.CodeGen.ImpGen.GPU
- Futhark.CodeGen.ImpGen.Multicore
- Futhark.CodeGen.ImpGen.OpenCL
- Futhark.CodeGen.ImpGen.Sequential
- Futhark.CodeGen.ImpGen.Transpose
- OpenCL
- RTS
- Futhark.CodeGen.SetDefaultSpace
- Backends
- Futhark.Compiler
- Futhark.Construct
- Doc
- Futhark.Error
- Futhark.FreshNames
- Futhark.IR
- Futhark.Internalise
- Futhark.Internalise.AccurateSizes
- Futhark.Internalise.Bindings
- Futhark.Internalise.Defunctionalise
- Futhark.Internalise.Defunctorise
- Futhark.Internalise.Exps
- Futhark.Internalise.FreeVars
- Futhark.Internalise.Lambdas
- Futhark.Internalise.LiftLambdas
- Futhark.Internalise.Monad
- Futhark.Internalise.Monomorphise
- Futhark.Internalise.TypesValues
- Futhark.MonadFreshNames
- Optimise
- Futhark.Optimise.BlkRegTiling
- Futhark.Optimise.CSE
- Futhark.Optimise.DoubleBuffer
- Futhark.Optimise.Fusion
- Futhark.Optimise.InPlaceLowering
- Futhark.Optimise.InliningDeadFun
- Futhark.Optimise.MemoryBlockMerging
- Futhark.Optimise.Simplify
- Futhark.Optimise.Sink
- Futhark.Optimise.TileLoops
- Futhark.Optimise.Unstream
- Futhark.Pass
- Futhark.Pass.ExpandAllocations
- Futhark.Pass.ExplicitAllocations
- Futhark.Pass.ExtractKernels
- Futhark.Pass.ExtractKernels.BlockedKernel
- Futhark.Pass.ExtractKernels.DistributeNests
- Futhark.Pass.ExtractKernels.Distribution
- Futhark.Pass.ExtractKernels.ISRWIM
- Futhark.Pass.ExtractKernels.Interchange
- Futhark.Pass.ExtractKernels.Intragroup
- Futhark.Pass.ExtractKernels.StreamKernel
- Futhark.Pass.ExtractKernels.ToGPU
- Futhark.Pass.ExtractMulticore
- Futhark.Pass.FirstOrderTransform
- Futhark.Pass.KernelBabysitting
- Futhark.Pass.Simplify
- Futhark.Passes
- Futhark.Pipeline
- Pkg
- Futhark.Script
- Futhark.Test
- Futhark.Tools
- Transform
- Futhark.TypeCheck
- Futhark.Util
- Futhark.Version
- Language
- Language.Futhark
- Language.Futhark.Core
- Language.Futhark.Interpreter
- Language.Futhark.Parser
- Language.Futhark.Prelude
- Language.Futhark.Pretty
- Language.Futhark.Prop
- Language.Futhark.Query
- Language.Futhark.Semantic
- Language.Futhark.Syntax
- Language.Futhark.Traversals
- Language.Futhark.TypeChecker
- Language.Futhark.Warnings
- Language.Futhark
Downloads
- futhark-0.20.5.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.7.3, 0.7.4, 0.8.1, 0.9.1, 0.10.1, 0.10.2, 0.11.1, 0.11.2, 0.12.1, 0.12.2, 0.12.3, 0.13.1, 0.13.2, 0.14.1, 0.15.1, 0.15.2, 0.15.3, 0.15.4, 0.15.5, 0.15.6, 0.15.7, 0.15.8, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.17.1, 0.17.2, 0.17.3, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.18.5, 0.18.6, 0.19.1, 0.19.2, 0.19.3, 0.19.4, 0.19.5, 0.19.6, 0.19.7, 0.20.1, 0.20.2, 0.20.3, 0.20.4, 0.20.5, 0.20.6, 0.20.7, 0.20.8, 0.21.1, 0.21.2, 0.21.3, 0.21.4, 0.21.5, 0.21.6, 0.21.7, 0.21.8, 0.21.9, 0.21.10, 0.21.11, 0.21.12, 0.21.13, 0.21.14, 0.21.15, 0.22.1, 0.22.2, 0.22.3, 0.22.4, 0.22.5, 0.22.6, 0.22.7, 0.23.1, 0.24.1, 0.24.2, 0.24.3 |
---|---|
Dependencies | aeson (<2), ansi-terminal (>=0.6.3.1), array (>=0.4), base (>=4.13 && <5), base16-bytestring, binary (>=0.8.3), blaze-html (>=0.9.0.1), bmp (>=1.2.6.3), bytestring (>=0.10.8), bytestring-to-vector (>=0.3.0.1), cmark-gfm (>=0.2.1), containers (>=0.6.2.1), cryptohash-md5, directory (>=1.3.0.0), directory-tree (>=0.12.1), dlist (>=0.6.0.1), file-embed (>=0.0.14.0), filepath (>=1.4.1.1), free (>=4.12.4), futhark, futhark-data (>=1.0.2.0), futhark-server (>=1.1.1.0), githash (>=0.1.6.1), half (>=0.3), haskeline, language-c-quote (>=0.12), mainland-pretty (>=0.7.1), megaparsec (>=9.0.0), mtl (>=2.2.1), neat-interpolation (>=0.3), parallel (>=3.2.1.0), process (>=1.4.3.0), process-extras (>=0.7.2), random (>=1.2.0), regex-tdfa (>=1.2), srcloc (>=0.4), template-haskell (>=2.11.1), temporary, terminal-size (>=0.3), text (>=1.2.2.2), time (>=1.6.0.1), transformers (>=0.3), unordered-containers (>=0.2.7), vector (>=0.12), vector-binary-instances (>=0.2.2.0), versions (>=5.0.0), zip-archive (>=0.3.1.1), zlib (>=0.6.1.2) [details] |
License | ISC |
Author | |
Maintainer | Troels Henriksen athas@sigkill.dk |
Category | Futhark |
Home page | https://futhark-lang.org |
Bug tracker | https://github.com/diku-dk/futhark/issues |
Source repo | head: git clone https://github.com/diku-dk/futhark |
Uploaded | by TroelsHenriksen at 2021-10-19T12:38:33Z |
Distributions | NixOS:0.24.3 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | futhark |
Downloads | 24577 total (217 in the last 30 days) |
Rating | 2.25 (votes: 2) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |