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.

OpenMP的使用是需要7.4以上的编译器支持吗



OpenMP的使用是需要7.4以上的编译器支持吗

因为在BIOS MCSDK 2.0 User Guide中看到“Combined with the TI compiler (version 7.4 or greater) a user can create OpenMP programs for TI's multicore DSPs.”,而且我的7.3.4总是编译报错

  • 是的,CCS5.4以后的版本已经集成了7.4编译器,或者你也可以下载一个最新的编译器安装。

  • 谢谢Andy的回答!刚刚更新到CCS 5.5。
    另外是否有一些专门与OpenMP相关的文档呢,主要是在6678上做一些开发,想从OpenMP入手又不知从何下手。

    还有一个问题,OpenMP可以在6678 Functional Simulator上模拟运行吗?

  • 在OpenMP的安装目录下有相关的文档,包括TI的OpenMP调度机制等信息。你还可以参考这个的链接 http://processors.wiki.ti.com/index.php/OpenMP_on_C6000

  • 谢谢Zhan的回答!我已经在模拟器上成功运行了例程。

    另外想问一下,如果想修改其他的程序做一些OpenMP的优化,那么cfg文件应该不用改动很多吧?

  • OpenMP使用BIOS进行任务调度,你能把你具体的需求写详细点吗,我们可以一起讨论的。

  • 我现在希望将一个从FFmpeg移植过来的264解码程序做一些OpenMP的优化,原移植程序已经可以在6678上运行,因为在http://processors.wiki.ti.com/index.php/OpenMP_on_C6000中看到“Modifications to the omp_config.cfg file are not required for base functionality.”,所以想问一下是不是用例程的cfg文件就基本可以了呢?然后去针对代码中的主要的循环执行语句做优化......因为对于OpenMP刚刚起步,所以很多方面还不是很了解,还请多多见谅。

  • 例程中的omp_config.cfg文件做了基本的omp环境配置,该配置文件为了运行OpenMP需要对memory进行一些预留,这主要是由于OpenMP本身就是基于共享内存的一种编程模型,你在修改的时候只要不破坏那些用于运行OpenMP的memory section,那么就可以正常工作。

    对于你的代码,修改点应该在将可以拆分的计算用OpenMP进行调度即可,这样可以不用修改cfg文件。