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.

多核运行只能用建和核数相等的project来实现么?



多核运行只能用建和核数相等的project来实现么?应该不是这样的吧?

可是如果把同一project依次下到各个核上,却发现他们的地址是完全一样的。然后运行的时候,发现他们的同名变量似乎也被分配到同样的存储空间中,读写的时候就超级混乱了!还有就是malloc函数,各个核似乎不知道彼此间的分配情况,所以system段地址是不是也应该分别设置呢?

本人菜鸟一枚,想到的办法是建与核数相等个数的project来解决,但是这样应该是不对的。

请问版上各位专家,还有五湖四海的各位大神们,能否指点一下!万分感激!

  • TI最新的7.4系列编译器支持OPENMP,可以实现1个project的多核算法实现。

    如果不使用OPENMP功能,你的理解部分正确,一种方式是不同的核上有各自的project,内存的分配是需要你自己考虑的,另一种方式是统一到同一个project里,但是通过读取DNUM确定不同的核走不同的程序分支。

  • 您好!谢谢您乐意给予解惑!

    还想补充问一下,7.4系列编译器指的是什么?CCS4.0算几点几呀?

    另外,DNUM是什么东西?指的是获取核号的方式么?

    我尝试过用获取核号的函数uint32_t coreID = CSL_chipReadReg (CSL_CHIP_DNUM);

    但是coreID这个变量似乎相互之间有冲突,因为程序的下载地址是一样的,导致了改变量分配的地址实际上重叠了。

    鉴于这点,我一直想知道除了建几个project的方式,还有没有简单一些的方法,可以让每个核自身的代码段和数据段不交叠?(除了使用OPENMP之外的方法!)

    谢谢!