У меня есть память, которая была выделена на устройстве, которая представляет собой всего лишь один маллок размером H * W * sizeof (float).
Это представляет матрицу H * W.
У меня есть код, где мне нужно поменять квадранты матрицы. Могу ли я использовать cudaMemcpy2D для достижения этой цели? Должен ли я просто указать spitch и dpitch равными W * sizeof (float) и просто использовать указатели на каждый квадрант матрицы для достижения этой цели?
Кроме того, когда эти cudaMemcpy говорят о том, что области памяти не перекрываются - значит ли это, что src и dst вообще не могут перекрываться? Например, если бы у меня был 10-байтовый массив, который я хотел сдвинуть влево один раз - он потерпит неудачу?
Спасибо