Monday, March 4, 2013

Chroma sub-sampling on Ambric

During the past week Adam has been learning about programming the Ambric processor in the Embedded Parallel Computing course. This highly parallel architecture (each processor contains over 300 cores) is interesting in that, compared to other common manycore architectures such as GPUs, it is especially designed to support the data flow programming model. Algorithms are programmed using a C-like language called aJava, and the data flow is described using the aStruct language. The application implemented on top of Ambric was Chroma Sub-sampling, which compresses a stream of images by re-using color information in adjacent pixels. Though Adam had issues with the tool chain, which produced some rather cryptic error messages at times, the programming model was significantly easier to grasp than CUDA.