cudaMemcpy2D() fails with a pitch size greater than 2^18 = 262144.
Can anyone tell me the reason behind this seemingly arbitrary limit? As far as I understood, having a pitch for a 2D array just means making sure the rows are the right size so that alignment is the same for every row and you still get coalesced memory access. There is no obvious reason why there should be a size limit.
(I just ran up against this limit, which is barely documented. The number isn’t in the manual, but there is a brief reference to there being a limit in cudaGetDeviceProperties. This is going to cost me a fair bit of rewriting.)
I guess this wasn’t an unreasonable limitation in the graphics world. I imagine all sorts of things like this are popping up now that general purpose computing is starting to take off.