Я использую Keystone II от TI, который имеет ARM как хост и 8 ядер ускорителя DSP. Эти ядра DSP не разговаривают друг с другом, поскольку у них нет общей памяти.Проблема чтения/записи памяти OpenCL
Я получаю эту странную проблему, которую я не могу переписать в этот массив «cum», в котором я вычисляю кумулятивную частоту. Я только могу прочитать все, что я написал в первый раз. После этого записи не регистрируются. Какие-либо решения этой проблемы?
Устройство имеет архитектуру единой памяти. Также 'cum' и 'frequency' имеют тип CL_MEM_READ_WRITE.
Этот фрагмент кода работает на ядрах DSP
...
//upscan
for(i=0; i < 32; i++)
{
if(pid<4)
{
localvar1 = frequency[(i*8)+(2*pid)];
localvar2 = frequency[(i*8)+(2*pid)+1];
cum[(i*8)+(2*pid)+1] = localvar1 + localvar2;
}
}
for(i=0; i < 32; i++)
{
if(pid<2)
{
localvar1 = cum[(i*8)+(4*pid)+3];
localvar2 = cum[(i*8)+(4*pid)+1];
cum[(i*8)+(4*pid)+3] = localvar1 + localvar2;
}
}
for(i=0; i < 32; i++)
{
if(pid<1)
{
localvar1 = cum[(i*8)+(pid)+7];
localvar2 = cum[(i*8)+(pid)+3];
cum[(i*8)+(pid)+7] = localvar1 + localvar2;
}
}
...
Если вы пишете кумулятивные частоты, если это не похоже на 'cum [(i * 8) + (2 * pid) +1] + = localvar1 + localvar2;' – Christian
@Christian 'localvar1' - это сам элемент , Поэтому я уже читаю его, чтобы получить кумулятивную сумму. –