общий вопрос: количество потоков должно быть равно размеру элементов, с которыми я хочу иметь дело? exmaple: если у меня есть матрица M [a] [b]. я должен выделять (aXb) потоки, или я могу выделить больше потоков, чем мне нужно (больше, чем ab)? потому что поток, который будет сосредоточен на элементе aXb + 1, вышвырнет нас, не так ли? или решение состоит в том, чтобы поставить условие (только если в диапазоне (ab))?об организации нитей в cuda
конкретный вопрос: пусть будет M [x] [y] матрица с x строками и y столбцами. что 1000 < = x < = 300000 и y < = 100. Как я могу организовать потоки таким образом, чтобы он был общим для каждого входа для x и y. Я хочу, чтобы каждый поток фокусировался на одном элементе в матрице. CC = 2.1 спасибо!
Вы можете выделить больше или вы даже можете выделить меньше. Любой подход может быть выполнен для работы. Если вы выделяете больше потоков, чем необходимо, ваше ядро должно включать условный тест, чтобы убедиться, что каждый поток работает с действительными данными. Если вы выделяете меньше потоков, чем необходимо, ваше ядро должно включать [какой-то цикл] (https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/) для охвата всех элементов данных. –