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