4
« 于: 六月 28, 2021, 10:32:15 pm »
您好!设定cudaEventBlockingSync标志,这个阻塞host方法粒度更小,应该是更好的选择。但是我尝试过:pytorch封装了Event和Stream对象,但是我尝试了调用,并不能解决,我已在pytorch官网提了issue(详情见:https://github.com/pytorch/pytorch/issues/60541),并没有得到回复。关于ctypes调用cudart64.dll里面的函数,我认为他应该是调用失败了,cudaSetDeviceFlags之后调用cudaGetDeviceFlags返回的结果并不正确。我现在尝试先用C++调用cudaSetDeviceFlags然后重新封装为dll,再到python中调用。然后我还有一个疑问万望解答,pytorch中CPU()方法用于将GPU数据复制回CPU,我不确定他是异步还是同步。如果使用cudaEventSynchronize()应该在CPU()之前还是之后呢。代码可以在issue中看到。感谢您的回复!