What is the minimum memory transfer size for reads and writes on ATI/AMD cards ?
Specifications for graphics cards mention "bus width" which is 64 bit or 128 bit or 256 bit or 384 bit or 512 bit and so forth.
Does this mean that if 1 byte is read or written from/to memory that all the other bytes on the bus lines are wasted ?!?
Or are ATI/AMD cards capable of reading/writing multiple bytes/fields from different address with one bus transfer ?
I am not interested in coalesced reads/writes since the application I have in mind would be heavily random access with small fields so is the expectation.
Coalescing with garbage or filling cache lines with unnecessary bytes would just be wastefull.
So I guess what I am asking is what is the "granularity" of memory access for ATI/AMD cards over the memory bus ?
AFAIK, this is true. You cannot write just multiple bytes at different locations by a single write.
Although I feel you may be able to use LDS for such random reads\writes and only doing data transfer once to the global memory when you are done.