This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何多核实现算法?



本人菜鸟,C6678学了一个多月,至今想不出LMS算法如何多核实现?

看多核实现的IMAGE PROCESSING的例程,这个处理比较复杂,数据量也大,

个人理解:这个图像处理的例程是不是基于数据分块的,就是SLAVE核是对不同的数据块做相同的处理?

可是LMS算法中循环:y(n)=w(n)x(n);

                                  e(n)=d(n)-y(n);

                                  w(n+1)=w(n)+2ue(n)x(n);

算法是迭代的,紧密联系,是闭环结构,要是代码分块执行,感觉块与块之间总要传递数据?不是破坏了高内聚低耦合性,实在是不太懂,还请专家给些指导!非常感谢!

  • 你好:

    通常对于闭环结构不是很好进行多核分割,特别是闭环中的每个步骤都比较简短的情况下。

    但是简短的闭环在单个core看来更好完成,TI的编译器可以进行软件的pipeline,这样效率得到很大的提升。

    所以如果你的算法真是上面公式所示的话,建议你用不同的核去处理不同的x,比如同时有4路输入,那么你就可以同时用4个核去做,这样也能达到并行的效果,而且核间没有耦合,代码更好。

    谢谢!

  • 非常感谢!对我有很大的启发性帮助!

    导师给的任务一定要用多核提高该算法执行效率。

    要做的又不是多输入的情况,正在考虑能不能通过延时更改算法,打破反馈回路的限制。

    谢谢你的回答,有问题希望可以再向您请教!