Я хотел перекрыть вычисления ядра и передачи данных в CUDA. Поэтому я разделил свою рабочую нагрузку и распределил их по нескольким ядрам. После этого я получил следующий результат:
Как и ожидалось, выполнение ядра пересекается с передачей данных. Кроме того, исполнения ядра также перекрываются друг с другом. Из-за перекрытия у меня теперь ускорение составляет ~ 1,8 по сравнению с версией без перекрытия.
Как возможно перекрытие выполнений ядра?
Я использую графический процессор NVIDIA Tesla K20m.