Pechkin80 2 Report post Posted November 4, 2019 Добрый день, Хочу на простом примере распараллеливания операции свёртки понять как выбирать оптимальные значения для числа блоков, числа нитей и кошерно ли делать цикл внутри нити или надо максимально увеличить число блоков и нитей ? Допустим матрица размером M*N Допустим число ядер cuda, известное из документации. Пока понял что для случая большой матрицы(изображения) лучше топить на число нитей в блоке так как всю её за раз не посчитаешь и планировщик нитей в варпе должен работать по идеи быстрей планировщика блоков, но кто быстрей внутренний цикл в ните или планировщик блоков ? Когда матрица маленькая и может посчитаться за один цикл(распараллевание не больше чем число ядер), то я так понимаю надо наоборот число нитей надо брать в 1 варп(32), а число блоков надо брать число ядер/32. Share this post Link to post Share on other sites
erly 0 Report post Posted November 4, 2019 Такая презентация на эту тему встречалась? http://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_website/projects/reduction/doc/reduction.pdf Share this post Link to post Share on other sites