Accelerate

Hi Ben,
> At this stage we're focusing on implementing a new computer vision algorithms (face matching) which has many similarities to AutoMap. Fortunately the largest stencil size it uses is 8x8, so an 8-tuple of 8-tuples will suffice.
Ok.
> Of course, in the future we would require larger stencils (e.g. 36x36 in AutoMap) to be supported. Is there a penalty for using tuples to specify stencil patterns when the stencil size is large? Had you envisaged an upper limit to stencil size?
Large tuples are tedious because —in principle— each argument of a tuple could be of a different type. That capability is not used by stencils (where all arguments are of the element type of the source array). However, in order to do the reflection of the EDSL, we need a datatype where the type fixes the size of the structure — that is the case for tuples, where the arity of the type matches the arity of the values. To support larger stencils conveniently, we ideally need a datatype that constrains all elements to be of the same type (like an array) *and* where the size is explicit in the type (like with a tuple) — ie, we want a form of statically sized array.
I'm sure we can work that out, but it keeps matters simpler if we can do that at a later point (after we have small stencils and sharing efficiently implemented).
Cheers,
Manuel