我在6678开发板上运行了MCSDK中图像处理的openmp demo:/image_processing_openmp_evmc6678l,加载的时候只需要将程序加载在一个核上就可以运行openmp的功能。而当我运行openmp examplemple中的例程时,它提示我必须要将程序全部加载到0-3。
我想问一下,为什么image_processing 这个例程只需要加载一个核的程序就可以运行openmp?
Nancy Wang:
只需要加载一个核的程序?操作说明部分是需要加载多个核的。
Run image_processing_evmc6678l_master.out on C66xx_0
Group C66x Core 1-N into a group (Group 1, Slave)
Connect to Group 1
Load image_processing_evmc6678l_slave.out to Group 1 using JTAG
software-dl.ti.com/…/index_examples_demos.html
user3457176:
回复 Nancy Wang:
我使用仿真器的确只加载了一个核就可以运行了,另外我刚刚发现openmp example 里面的例程只加载一个核也可以成功运行,只是其他核的printf信息没有输出,但是我通过计算结果的值可以看出,openmp的确运行了。在openmp的模式下,是否是核0自动给其他核进行了配置?
Nancy Wang:
回复 user3457176:
你应该是想问主线程怎么调用其它核心来工作,我没有仔细研究过这个demo,但是一般会有一些编译指令来调动其它核心来工作。可以看一下这个文档。
5808.06 KeyStone OpenMP.pdf