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

区分coreID能否实现多核并行化编程

c语言编程一般都是以串行的方式一步一步执行。

我想知道对于多核编程(C6657,双核),要实现其并行处理,

1、如果不使用SYS/BIOS,通过判断coreID(if…else)区分执行不同操作。由于if…else是串行的一步一步执行,那么如何改变程序结构才能使两个核同时执行,核间还有通讯,共享一个工作,以提高执行效率呢

2、如果用SYS/BIOS,是不是通过两个task,一个task管理一个核,给它们设置相同的优先级,就能实行其并行执行

新手,求指教,由于对SYS/BIOS不熟,我偏向于不使用SYS/BIOS

Jane Lu:

您好,BOIS只能在一个核上运行,多核需要建多个BIOS工程。

目前常用的方法是每个核都独立编程,编程者来考虑多核之间的共享和同步问题。

如果需要多核并行编程,可以看一下openMP的相关资料,TI 7.4.x版本的编译器是支持openMP的。

April April:

回复 Jane Lu:

Jane Lu :

您好!

我看过C6678,VLFFT这个例程,他有vlfft_master和vlfft_slave两个task,vlfft_master中主核(core0)管理和控制从核,vlfft_slave中从核(core1-core7)执行相应程序。它们是建立在一个BIOS工程中的。

openMP支持C6657吗?我看例程里面只有C6670和6678的。

谢谢你的解答!

Jane Lu:

回复 April April:

抱歉,VLFFT的工程我不了解。

openMP支持C66系列DSP,应该也包括C6657

yuanwen dong:

从通用角度上说,程序从单核向多核迁移,打个比方原来干一件事儿是一个人干(单核程序),现在同样一件事情是两个人干(多核),那么就需要对这个事情进行分工,给两个人分配各自具体的工作,给每个人干的事情做好预先定义。

Jane说的没错,因为DSP硬件条件限制,只能实现AMP模式,可以理解为每个核上运行的系统都是独立的,这种模式下你可以理解为多核DSP就是多个单个DSP的组合,即使使用了OpenMP,在DSP上也不是SMP模式,只是AMP模式。

还有即使DSP能支持SMP模式,还是需要用户对原有的应用程序任务进行分工,不然还是跑在一个核上。

Best Regards

William

William.dong@enea.com

赞(0)
未经允许不得转载:TI中文支持网 » 区分coreID能否实现多核并行化编程
分享到: 更多 (0)