Is there any heuristic on when to use constant memory and when to pass constant values as kernel parameters (which I believe are stored in shared memory)?
For example, my application is not bound by shared memory and has only a few hundred bytes of constant parameters. I first copied my data to constant memory, but later ran into unrelated issues and started passing these as parameters. How expensive is copying to constant memory? Should constant memory be used often, or only when shared memory must be reserved for other purposes?