The accelerate package

This library defines an embedded language for
regular, multi-dimensional array computations with
multiple backends to facilitate high-performance
implementations. Currently, there are two backends:
(1) an interpreter that serves as a reference
implementation of the intended semantics of the
language and (2) a CUDA backend generating code for
CUDA-capable NVIDIA GPUs.

To use the CUDA backend, you need to have CUDA version 3.x
installed. The CUDA backend currently doesn't support Char
and Bool arrays.