This kind of textures are cached? i.e have the benefits of standard texture memory and can be used as cached read-only global device mem…
Assuming it’s cached, how and when to expect that the cache is cleared or updated and consistent with the modified values? I suspect that situation similar to global synchronization that needs kernel finalization and these updates get “usable” in the next kernel invocation… then I assume that one kernel can’t read and write the same positions of memory because of issues with the cache… Also I suspect that from OpenCL spec:
“OpenCL 1.0 supports 2D image memory objects that can be read or written by kernels. Reads and writes to the same 2D image memory object are not supported in a kernel”.
I think that this type of “write textures” are only 2D currently and not 3D write textures are exposed… It’s currenty a hardware limitation or it’s just that’s it’s not exposed in CUDA 2.2.