Well, no one said that you can’t do a linked list in CUDA. It is C, so you can do whatever you want. Just don’t expect anyone on these forums to help you because of your insanity.
As a simple example of why linked lists are near impossible: consider this. I want thread [i]i[/b] to read element i from the linked list. This cannot be done in any sort of efficient way. Each thread must read the linked list in it’s entirety up to element i to get at it! That is serial programming. (this is an expansion on tmurray’s point b above).
I will go out on a limb and say that structures of arrays will always be better, easier to program, and faster than the equivalent data in a linked list of structures on the GPU.