用户
 找回密码
 立即注册
发表于 2021-4-26 11:42:14
67520
我有两块GPU,并在这两块GPU上开启一个异步的数据传输(cudaDeviceEnablePeerAccess()),同时多次运行一个自定义的kernel。然后发生了一个意外的现象:这两个操作可以并行,但是在这两个操作重叠的时候,两个自定义kernel间的间隔变大了。如下图。

我是在第二个设备上的stream启动的cudaDeviceEnablePeerAccess(),所以第二个设备出现了这个现象。
如果我在第一个设备上的stream启动的cudaDeviceEnablePeerAccess(),则第一个设备出现这个现象,第二个设备正常。
如果我在第三个设备上的stream启动的cudaDeviceEnablePeerAccess(),则设备1和设备2都不会出现这个现象。


因此我怀疑是同一个GPU上不同stream间的相互影响导致的这个问题,有人知道究竟为什么会出现这个情况吗,以及要怎么解决呢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册