Global memory broadcast

I heard that bank conflict is happened when you use local memory only.
Then is there no bank conflict if I use global memory?
Then, what happend if multiple threads access one address? It will be coalsced? or it will be like bank conflict? :)

And is the texture memory global memory? or local memory? I want to ask that bank conflict is appeared or not :(

Actually I have to make a program such that, many threads must read same address and processing it.
I am making the multiple pattern matcher. Multiple thread will read same strings and match with different patterns

Plz help me :)

Bank conflicts happen in shared memory only, neither in local nor in global memory.

What happens when multiple threads of a warp read from the same location in global memory depends on the compute capability of the device:
For compute capability 1.0 or 1.1, the accesses from all threads in the half-warp get serialized (thus incurring a rather large penalty). From compute capability 1.2 onwards, the value is only read once and broadcast to all threads in the half-warp (for 1.2 or 1.3 devices) or warp (for 2.x devices).

Texture memory is in global memory, but has it’s own cache. Thus accesses from multiple threads reading the same location from a texture will always be cached and the value fetched only once.

Check out the Programming Guide. It has detailed information on all this.

Thanks, actually I read the Programming Guide. But I cannot understand the detail well. :) Thanks!!