使用OpenMP多核编程处理图片,相同大小的图片执行同样的含有#ppragma omp parallel for函数,处理第一张图片时没问题,处理第二张图片时,在执行并行for循环之前遇到ti.sdo.ipc.heaps.HeapMemMP:line 628:assertion failure:A_internal:An interal error has occurred错误。
大家谁遇到过啊?怎么解决的?烦请赐教!谢谢!
Thomas Yang1:
请问第2张图片的分辨率,大小是多少?是不是比第一张图片大?若是可能和heap memory分配有关
Teng Zhang3:
回复 Thomas Yang1:
您好,非常感谢您的回答!
我的问题非常奇怪,两张图片是完全一样的,函数是调用同一个函数,在这个函数里我使用了两次#pragma omp parrallel for 指令去处理图片。在处理第一张图片时,两次并行处理都能通过,但是第二张图片处理时,就都不能通过。另外我将这个函数的两次#pragma omp parrallel for 屏蔽掉第二个。也就是我一张图片只并行处理一次。那么,也是第一张图片的并行处理能通过,但是第二张图片处理的时候就会报错。我用的TMS320C6678
在cfg script中是这样配置heapomp的 heapomp.localheapsize=0x20000;
heapomp.sharedheapsize=0x1000000;
base:0x90000000,len:heapomp.sharedheapsize
图片为256*256
fei lau:
回复 Teng Zhang3:
您好,这个问题您解决了吗?求问问题在哪?
user6303188:
回复 Thomas Yang1:
我也遇到了这问题,我猜想是SRIO的数据存放地址或者EDMA搬移的地址与OpenMP的地址冲突了,导致核abort()。
但是我在.cfg里面没有设置DDR:0xA0000000,共享地址:0x0C100000这两个地址给OpenMP,请问TI专家怎么解释?
TI中文支持网