TI中文支持网
TI专业的中文技术问题搜集分享网站

程序的多核运行问题

最近一个任务,要求将一个算法利用8个核进行运行,测试8个核的算法处理性能。在Windows下,CCS5.0.3,TMS320C6678l,本人是DSP初学者,现在主要任务是测试6678的性能。

对于6678的多核处理是不是要用到IPC和中断的问题?

如何实现程序的多核运行(例如将(for(i=0;i<64;i++)a[i]=2*a[i];)这个循环分配到8个核中进行)?能否就那个for循环建立个简单的实例工程,能够将循环内的乘法分配到8个核上?

在哪可以找到多核处理的例程?

King Wang1:

conghu 你好:

是否涉及到多核是根据用户来设定的,IPC只是提供多核之间的中断问题。

从你的算法角度来说,可以使用IPC,也可以不使用IPC。

比如你固定将 0-7 的循环分配给核0,结果写到 a[0]-a[7],将 8-15 的循环分配给核1,结果写到 a[8]-a[15]。这种方法核之间并没有冲突,因此不需要使用IPC进行核间通信。

而如果你想做动态分配任务到多核,这种往往涉及到操作系统OS,比较复杂。简单的方法是同一份代码,不同的核处理不同的分支,依据宏DNUM来区分核。

多核编程的例子也有的,请参考置顶页面,谢谢!

www.deyisupport.com/…/955.aspx

conghu zhu:

回复 King Wang1:

“比如你固定将 0-7 的循环分配给核0,结果写到 a[0]-a[7],将 8-15 的循环分配给核1,结果写到 a[8]-a[15]。这种方法核之间并没有冲突,因此不需要使用IPC进行核间通信。”

请问核的分配是DSP自动分配的,还是需要人为指定分配?

conghu zhu:

回复 King Wang1:

上面的方式好像是每个核各自将程序运行一次,但是如何将任务分配到8个核中并行处理呢?

King Wang1:

回复 conghu zhu:

所有核都运行这段代码,那么core0就会处理funcA,core1就处理funcB。

funcA的功能: 0-7 的循环计算,结果写到 a[0]-a[7],

funcB的功能:8-15 的循环计算,结果写到 a[8]-a[15]。

不知这样处理是否能够达到你的要求。谢谢

赞(0)
未经允许不得转载:TI中文支持网 » 程序的多核运行问题
分享到: 更多 (0)