Зависит от того, является ли длина строк вашей матрицы кратной половине размера основы для устройств с вычислительной способностью 1.x или кратной размеру основы для устройств с вычислительной способностью 2.x.Если это не так, вы можете использовать заполнение, чтобы сделать его полностью объединенным.Для этого можно использовать функцию cudaMallocPitch.
edit: извините за путаницу.Вы пишете «смещенные» элементы за один раз, который я интерпретировал как строки матрицы.
Я имею в виду, что после каждой итерации вашего цикла вы увеличиваете idx на offset.Если смещение кратно половине размера основы для устройств с вычислительной способностью 1.x или кратно размеру основы для устройств с вычислительной возможностью 2.x, то вы объединяетесь, если нет, то для этого нужно заполнение.
Возможно, он уже объединен, потому что вы должны выбрать количество потоков в блоке и, следовательно, blockDim, кратное размеру деформации.