cud多gpu编程问题请教
用俩个gpu卡写一个利用字典进行字符串验证的程序,字符串大约为1000万条,每次导入gpu1一万多条,导入gpu2同样多的条数,
导入数据用的
cudaMemcpyAsync(..., Stream1);
cudaMemcpyAsync(..., Stream2);
然后执行核函数:
set(gpu1),kernel<<< blocksum, threads, Stream1 >>>;
set(gpu2), kernel<<< blocksum, threads, Stream2 >>>;
最后将结果分别用cudaMemcpyAsync拷贝到两个数组中,
再利用函数等每个Stream操作结束:
cudaStreamSychronize( Stream1 ),
cudaStremSynchronize( Stream2 ).
在cpu中对两个数组结果进行比对,但在后续的调试过程中发现:
如果正确的字符串在gpu1中进行运算时,可以得到正确的比对验证,如果分配到gpu2中则不能正确验证
请问这是因为什么情况?