Мой код CUDA должен работать с (уменьшить до среднего/стандартного значения, рассчитать гистограмму) с 4 массивами, каждый из которых имеет длину 2048 чисел с плавающей запятой и уже хранится в памяти устройства из предыдущих ядер.
Вообще советуют запускать как минимум столько блоков, сколько у меня мультипроцессоров. Однако в этом случае я могу загрузить каждый из этих массивов в общую память одного блока и, следовательно, запустить только 4 блока.
Это далеко не «поддерживание загруженности графического процессора», но если я буду использовать больше блоков, мне потребуется больше межблочной связи через глобальную память, и я ожидаю, что любое дополнительное использование мультипроцессоров будет напрасным из-за дополнительного дополнительного времени, затрачиваемого на передачу данных. в глобальной памяти и вне ее.
Каков наилучший способ параллелизации в такой ситуации?