У меня есть ядро, которое производит массив значений результата, и я хочу эффективно найти максимум этих значений. Массив инициализируется в начале ядра с некоторым отрицательным значением (например, -1). Ядро выполняется, например, по 5 блоков с 256 потоками.CUDA найти максимальное значение в общей памяти
Вот проблемы:
Из-за моих данных, я должен прекратить потоки, которые не являются допустимыми, так что я иногда работаю с 256 нитями, иногда 50, 20 и так далее.
В общей памяти записаны результаты из блока, но, как я уже упоминал, некоторый массив имеет 50 результатов, некоторые из которых имеют 256 результатов ... (так что общий массив выглядит так) 8,6,4,9,1, -1, -1, -1 ...
В этом случае, как эффективно найти максимум в одном блоке?
Параллельное восстановление будет сложным на этих типах массивов, не так ли? Как это сделать?
Done, sry Я совершенно новый :) – Hlavson
Что вы имеете в виду с «прекратить» потоки? Сделайте «возврат» для этой темы? Потому что это не рекомендуется – pQB
Рассматривали ли вы использование одной из бесплатных библиотек для поиска максимального значения (например, ArrayFire)? – arrayfire