opencl基础概念之并行


编程模型:

并行的模型有很多,最简单的是数据并行和任务并行,从上层来讲最容易解决

数据并行例子:输入一个数字返回其平方。。输入的数字就是并行的数据,调用同一任务计算返回。

任务并行例子:

1. 如果任务是相互独立的,那很简单

2. 如果任务是相互关系的,如一个任务的执行依赖于上个任务的完成,那就要考虑负载均衡问题

如下图,一个大工作可以分化为6个任务,但因为任务1的运行时间远远大于其他任务,所以可以将任务1运行在单独一个PE上,而另外几个合成两个PE,从而保持每个PE间的工作时间大致相同,才能发挥多任务的优势。这就是均衡问题了。

opencl基础概念之并行


硬件模型:

本质是影射到实际硬件运行,比较复杂,以后总结