流计算模型,是一种将一般应用转化为以流为基本处理对象的流应用的计算模型,其基本思想是把应用组织成流(stream)和计算核心(kernel)两级。从宏观角度看,流计算模型中被处理的基本数据单位是流,各个操作被视为对整条流的操作。在流计算模型中,对整条流的宏观操作包括流聚合(stream gather),流分散(stream scatter)和流计算,其中流计算是以计算核心(kernel)的形式体现的。 流计算模型摒弃了传统计算模型中计算和访存的紧密耦合形式,将应用中的计算和访存进行解耦合,它对一般应用的转化过程在计算和数据组织两个方面展开。在计算方面,流计算模型把应用分解为多个对流进行处理的计算核心,这些计算核心通过流链接起来共同完成整个应用的复杂功能。在数据组织方面,流计算模型通过 stream gather 操作将应用中需要被处理的数据组织成流,流进入计算核心,流中的元素在计算核心内部被处理后形成新的输出流。如此反复,流在计算核心之间不断传递,不断被计算核心处理,最终完成应用的功能,通过 stream scatter操作将输出流转化为应用的输出数据。