我的程序运行了两个线程——线程A(用于输入)和线程B(用于处理)。我还有一对指针指向两个缓冲区,这样当线程A完成将数据复制到缓冲区1时,线程B开始处理缓冲区1,线程A开始将数据复制到缓冲区2。然后当缓冲区2满时,线程A将数据复制到缓冲区1,线程B处理缓冲区2,以此类推。
我的问题出现在尝试将Buffer[] cudaMemcpy到d_Buffer中时(之前由主线程cudaMalloc'd,即在线程创建之前。Buffer[]也是由主线程malloc'd)。我得到一个“无效参数”错误,但不知道哪个是无效参数。
我将程序简化为单线程程序,但仍然使用两个缓冲区。也就是说,复制和处理是依次进行的,而不是同时进行的。cudaMemcpy行与双线程行完全相同。单线程程序可以正常工作。
我不确定错误出在哪里。
谢谢。
问候, Rayne
我的问题出现在尝试将Buffer[] cudaMemcpy到d_Buffer中时(之前由主线程cudaMalloc'd,即在线程创建之前。Buffer[]也是由主线程malloc'd)。我得到一个“无效参数”错误,但不知道哪个是无效参数。
我将程序简化为单线程程序,但仍然使用两个缓冲区。也就是说,复制和处理是依次进行的,而不是同时进行的。cudaMemcpy行与双线程行完全相同。单线程程序可以正常工作。
我不确定错误出在哪里。
谢谢。
问候, Rayne