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 contains a basic architectural overview of the compiler.
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
- AD
- 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.Defs
- Futhark.CLI.Dev
- Futhark.CLI.Doc
- Futhark.CLI.LSP
- Futhark.CLI.Literate
- Futhark.CLI.Main
- 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.IR.Aliases
- Futhark.IR.GPU
- Futhark.IR.GPUMem
- Futhark.IR.MC
- Futhark.IR.MCMem
- Futhark.IR.Mem
- Futhark.IR.Parse
- Futhark.IR.Pretty
- Futhark.IR.Primitive
- Futhark.IR.Prop
- Futhark.IR.Rep
- Futhark.IR.RetType
- Futhark.IR.SOACS
- Futhark.IR.SegOp
- Futhark.IR.Seq
- Futhark.IR.SeqMem
- Futhark.IR.Syntax
- Futhark.IR.Traversals
- Futhark.IR.TypeCheck
- 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
- LSP
- Futhark.MonadFreshNames
- Optimise
- Futhark.Optimise.BlkRegTiling
- Futhark.Optimise.CSE
- Futhark.Optimise.DoubleBuffer
- Futhark.Optimise.Fusion
- Futhark.Optimise.GenRedOpt
- Futhark.Optimise.HistAccs
- Futhark.Optimise.InPlaceLowering
- Futhark.Optimise.InliningDeadFun
- Futhark.Optimise.MemoryBlockMerging
- Futhark.Optimise.MergeGPUBodies
- Futhark.Optimise.ReduceDeviceSyncs
- Futhark.Optimise.Simplify
- Futhark.Optimise.Sink
- Futhark.Optimise.TileLoops
- Futhark.Optimise.Unstream
- Futhark.Pass
- Futhark.Pass.AD
- 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.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.21.12.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
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, 0.25.1, 0.25.2, 0.25.3, 0.25.4, 0.25.5 |
---|---|
Dependencies | aeson (>=2.0.0.0), 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, Diff (>=0.4.1), 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.1.0.0), futhark-manifest (==1.0.0.1), futhark-server (>=1.2.0.0), githash (>=0.1.6.1), half (>=0.3), haskeline, hslogger, language-c-quote (>=0.12), lens, lsp (>=1.4 && <1.5), mainland-pretty (>=0.7.1), megaparsec (>=9.0.0), mtl (>=2.2.1), mwc-random, 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), statistics, template-haskell (>=2.11.1), temporary, terminal-size (>=0.3), text (>=1.2.2.2), time (>=1.6.0.1), transformers (>=0.3), vector (>=0.12), 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 |
Revised | Revision 2 made by TroelsHenriksen at 2022-06-27T18:31:40Z |
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 2022-05-19T13:38:37Z |
Distributions | NixOS:0.24.3 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | futhark |
Downloads | 25339 total (103 in the last 30 days) |
Rating | 2.25 (votes: 2) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2022-05-20 [all 1 reports] |