在学习OpenMP,加载的是omp中带的openMP的例程"hello world",编译没有错误,但是在运行的时候出现错误如下:ti.omp.utils.ThreadLocal: line 132: assertion failure: A_invalidKey: Invalid key encountered xdc.runtime.Error.raise: terminating execution。请教下可能出现的问题在哪里。另外关于openMP的资料比较少啊,有没有什么推荐的,多谢
Thomas Yang1:
有可能是XDC配置的版本不对。
更多OpenMP信息可以参考如下链接:
http://openmp.org/
http://processors.wiki.ti.com/index.php/OpenMP_on_C6000
http://processors.wiki.ti.com/index.php/MCSDK_HPC_3.x_OpenMP
http://processors.wiki.ti.com/index.php/Category:OpenMP
http://processors.wiki.ti.com/index.php/Porting_OpenMP_2.x_to_KeyStone_1
di zhu2:
回复 Thomas Yang1:
您的意思是版本的问题,还是可能是具体的配置出现问题,我是直接导入的omp下的hello world的例子,应该是配置好的文件吧?
Thomas Yang1:
回复 di zhu2:
要检查下OPEN MP和XDC的版本依赖关系,这个和你CCS环境有没有装相应的XDC版本有关吗,和例子没有关系,例子是配置好的,但你没装相应软件包,就可能出问题,建议先仔细看下readme的要求
Port YC:
加载openMP的例程"hello world",编译没有错误,但是在运行的时候出现错误如下:ti.omp.utils.ThreadLocal: line 132: assertion failure: A_invalidKey: Invalid key encountered xdc.runtime.Error.raise: terminating execution。
修改xxx_config.cfg文件:
var OpenMp = xdc.useModule('ti.omp.utils.OpenMP');
OpenMP.setNumProcessors(8);
修改NumProcessors为平台对应核数,如TMS320C6678为8核。 (我这边使用这个Demo的时候,平台为6678,但是这个核数是4,改成8后就好使了)