大家好!
我现在在用TMDSEVM6678L做开发。我想请教一下8个核怎么并行用起来?是否可以只写一个整个的程序,然后load到每个核中,DSP自己(或者通过一些设置)决定哪个核执行程序的哪个部分,从而做到8核合作处理一个程序。还是需要先把程序分块,不同的块load到不同的核中,每个核实现相应块的功能,然后再用一个核做协调通讯,使得其他执行子程序的各核可以交换信息,也就是8个核形成一个主从结构。
期待大牛解答!
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.
大家好!
我现在在用TMDSEVM6678L做开发。我想请教一下8个核怎么并行用起来?是否可以只写一个整个的程序,然后load到每个核中,DSP自己(或者通过一些设置)决定哪个核执行程序的哪个部分,从而做到8核合作处理一个程序。还是需要先把程序分块,不同的块load到不同的核中,每个核实现相应块的功能,然后再用一个核做协调通讯,使得其他执行子程序的各核可以交换信息,也就是8个核形成一个主从结构。
期待大牛解答!
是否可以只写一个整个的程序,然后load到每个核中,DSP自己(或者通过一些设置)决定哪个核执行程序的哪个部分,从而做到8核合作处理一个程序。
- 可以。写一个程序,然后读取核的ID,并据此决定执行或不执行某些代码,
coreNum = CSL_chipReadReg (CSL_CHIP_DNUM);
if(coreNum == xxx)
{
......
}
代码编成一个.out文件,download到shared memory。
还是需要先把程序分块,不同的块load到不同的核中,每个核实现相应块的功能,然后再用一个核做协调通讯,使得其他执行子程序的各核可以交换信息,也就是8个核形成一个主从结构。
- 也可以。
你好,
非常感谢你的回复。还有一些问题想进一步请教一下。
对于上面提到的第一种方式,CSL_chipReadReg (CSL_CHIP_DNUM)函数的使用是已经集成好的了吗,需要包括哪些头文件?
对第二种主从结构方式,我看了TI提供的image processing的例子,但是没有太搞懂master core是怎样控制协调slave core的。请否是否有比较简单的例子可以说明这一点?
另外,我的应用是每一个slave core并行的迭代做一定次数的运算,比如迭代做100次,每一次每个核得出一些数据,这些数据需要放在一起形成维数更高的数据并输入给每个核用于下一次运算。比如,两个slave core分别得出一个5维的向量数据,这两个5维向量放在一起形成10维的向量,然后把10维的向量分别输入给两个slave core以进行下一次运算。我想是否可以专门开辟一个内存区域以存放每一次迭代各个slave core产生的数据,这些数据依次放在该特定内存里便形成了更高维数的数据,然后每个slave core读取该内存中的数据即可,这样各个核之间就不需要相互通讯了。请问这样做是否可以?如果可以,这个特定的内存空间需要如何开辟以及如何存放数据和被读取数据,该内存空间是否应该设置在master core中?
非常感谢!