Я хочу оптимизировать свою программу CUDA
, перекрывая передачу данных с выполнением ядра.Но пример программы asyncAPI.cu
в CUDA SDK слишком прост, чтобы помочь.
Я выполнил поиск по этой проблеме и обнаружил, что в некоторых руководствах для достижения перекрытия используются два потока CUDA.В моем случае необходимо вычислить огромное количество данных, поэтому мне нужно циклически проходить и отправлять часть данных на GPU
каждую итерацию.Но я не знаю, как написать такой цикл, потому что все операции асинхронные, и я боюсь, что передаваемые данные сотрут / покроют те, которые в настоящее время обрабатываются.
Кто-нибудь сталкивался с этим?
Любойпомощь будет благодарна.