Barrier error, when using __local qualified memory

Barrier error, when using __local qualified memory

 

"aftrer using barrier function the value in memory, which is qualified as __local, is changed."

 

 

I could narrow down the range.

The problem comes from using barrier when I read and write some data in memory(array), which is qualified as __local.

I didn't see there is some limitation  the memory area must be used as only reading or writing.

But it seems to be operated that there is the cache and when local memory is read, that is saved in cache and flush when I use barrier, which argument is  "CLK_LOCAL_MEM_FENCE"

The original descritption of "CLK_LOCAL_MEM_FENCE"is like below

CLK_LOCAL_MEM_FENCE: The barrier function
will either flush any variables stored in local memory or queue a memory fence to ensure
correct ordering of memory operations to local memory.

But I don't know this phonomina is from my mis-operation or potential bug.
Is there anyone who give some solution?

I attached another documents and new test kernel.

file names are "Barrier Error2.docx" and "BitonicSort_Kernels.cl" which is placed in Bitonic_APU.zip file.
and the function for testing is "TEST_BARRIER_0" in BitonicSort_Kernel.cl

2 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

 

Here is my environment

Processor : Intel i-5-2410M @2.3GHz

version of SDK : 2013 R3

and using Visual studio 2010

Faça login para deixar um comentário.