Моя программа запускает 2 потока - поток A (для ввода) и B (для обработки).У меня также есть пара указателей на 2 буфера, так что, когда поток A завершит копирование данных в буфер 1, поток B начинает обработку буфера 1, а поток A начинает копирование данных в буфер 2. Затем, когда буфер 2 заполнен, поток A копируетданные в буфер 1, а поток B обрабатывает буфер 2 и т. д.
Моя проблема возникает, когда я пытаюсь cudaMemcpy Buffer [] в d_Buffer (который ранее был cudaMalloc для основного потока, т. е. до создания потока)Буфер [] также был malloc'd основным потоком).Я получаю ошибку «неверный аргумент», но понятия не имею, что является недопустимым аргументом.
Я сократил свою программу до однопоточной, но все еще использую 2 буфера.То есть копирование и обработка происходит один за другим, а не одновременно.Строка cudaMemcpy точно такая же, как и двухпоточная.Однопоточная программа работает нормально.
Я не уверен, в чем заключается ошибка.
Спасибо.
С уважением, Рэйн