Во-первых, потоки совершенно не имеют отношения к вашему вопросу, они не имеют отношения к тому, о чем вы спрашиваете.
Если вы фактически выделили массив указателей устройств, то у вас уже должен быть массив узлов, содержащий указатели строк или столбцов устройства.Если ваш алгоритм работает так, что каждый запуск ядра (или блок внутри запуска) обрабатывает память, содержащуюся в одном выделении (то есть строке или столбце), то вы можете передавать указатель на каждую строку или столбец в качестве аргумента при каждом запуске.Если для данного запуска требуется доступ к памяти через несколько строк или столбцов, единственное решение состоит в том, чтобы передать весь массив указателей вместе с кортежем, содержащим точки входа в массив для каждого запуска ядра.
Имейте в виду, чтоИспользование массивов указателей в CUDA - очень плохая идея в 90% реальных приложений.Производительность в нетривиальных случаях значительно хуже, чем при использовании линейной тональной памяти (вы фактически удваиваете задержку доступа к памяти для каждого дополнительного уровня перенаправления указателя, который вы добавляете к данным, которые будут считываться и записываться в ядре).Несколько IOP, необходимых для индексации внутри ядра, намного дешевле.Использование массивов указателей также делает хост и устройство гораздо более сложным, чем это требуется в большинстве случаев.