如何销毁在特定设备上创建的流?

劳拉·阿特金斯(Lorah Attkins)

device通过以下特定路径创建CUDA流时

int device = 1; // Example number
cudaSetDevice(device);
cudaStream_t cudaStream;
cudaStreamCreate(&cudaStream); // Similar with cudaStreamCreateWithFlags

在删除设备之前是否必须重新设置设备,还是可以打电话?

// cudaSetDevice(device); // Is this needed ???
cudaStreamDestroy(cudaStream);
阿卜杜勒·阿齐兹·阿卜杜勒·拉特夫

不,您不必。至于CUDA文档
“如果是颁发给没有关联到当前设备的存储副本会成功,即使它被颁发给没有关联到当前设备的流的内核启动将失败。
cudaEventRecord()将失败如果输入事件和输入流关联到不同的设备,cudaEventElapsedTime()则将两个输入事件关联到不同的设备将失败,
cudaEventSynchronize()并且cudaEventQuery()即使输入事件关联到与当前设备不同的设备
cudaStreamWaitEvent()也将成功如果输入流和输入事件与不同的设备相关联,cudaStreamWaitEvent()则可以用于将多个设备彼此同步。”

因此,这里没有提及任何问题cudaStreamDestroy(),我使用两个GPU设备对其进行了测试,设置了第一个设备,在其上创建了一个流,然后设置了第二个设备并在其上创建了另一个流。之后,我在第二个设备上运行了一个内核,然后销毁了第二个流和第一个流而没有错误,并且不需要再次设置第一个设备。

cudaStatus = cudaSetDevice(0);
cudaStream_t s0;
cudaStreamCreate(&s0);
cudaStatus = cudaSetDevice(1);
cudaStream_t s1;
cudaStreamCreate(&s1);
addKernel<<<1, size, 1, s1>>>(dev_c, dev_a, dev_b);
cudaDeviceSynchronize();
cudaStatus = cudaStreamDestroy(s1);
fprintf(stderr, "%s\n", cudaGetErrorString(cudaStatus));
cudaStatus = cudaStreamDestroy(s0);
fprintf(stderr, "%s\n", cudaGetErrorString(cudaStatus));

这是的结果cudaStatus

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何刷新或销毁在 tkinter python 画布中创建的框架?

来自分类Dev

销毁在运行时中创建的TADODataset

来自分类Dev

销毁在Java中不起作用

来自分类Dev

在哪个设备上创建流与在哪个设备上执行代码之间是否存在关系?

来自分类Dev

在哪个设备上创建流与在哪个设备上执行代码之间是否存在关系?

来自分类Dev

如何在Android设备上创建新的虚拟鼠标设备?

来自分类Dev

销毁在Ruby on Rails中不起作用的路径

来自分类Dev

销毁在Ruby on Rails中不起作用的路径

来自分类Dev

为什么实例化/销毁在性能方面很糟糕?

来自分类Dev

使用Linux上的ZFS,如何列出设备(vdev)的特定属性?

来自分类Dev

如何在特定设备上运行命令“ ionic run android”?

来自分类Dev

如何在OpenNIGrabber上设置特定的设备ID?

来自分类Dev

使用Linux上的ZFS,如何列出设备(vdev)的特定属性?

来自分类Dev

如何在Android设备上运行特定的应用程序

来自分类Dev

如何防止特定功能在移动设备上运行

来自分类Dev

HLS流无法在Apple设备上运行

来自分类Dev

创建DirectShow类别后如何销毁它?

来自分类Dev

如何销毁动态角度8创建的组件

来自分类Dev

如何创建和销毁wx.App?

来自分类Dev

如何使用滑块创建和销毁对象?

来自分类Dev

如何从中创建流?

来自分类Dev

如何从 For 循环创建流

来自分类Dev

如何使用ID销毁特定用户的会话?

来自分类Dev

如何在Microsoft Azure流分析上从多个设备中分离数据

来自分类Dev

如何将 udp 上的流数据转换为视频设备?

来自分类Dev

如果模型 A 有_许多 B 的实例,通过另一个模型 C,我如何创建一条路线来销毁 A 的特定实例上的 B 实例?

来自分类Dev

我如何查看Midi设备流

来自分类Dev

如何创建<Interface>对象流?

来自分类Dev

如何直接在GPU上创建张量,或者在另一个张量的设备上更好地创建张量?

Related 相关文章

  1. 1

    如何刷新或销毁在 tkinter python 画布中创建的框架?

  2. 2

    销毁在运行时中创建的TADODataset

  3. 3

    销毁在Java中不起作用

  4. 4

    在哪个设备上创建流与在哪个设备上执行代码之间是否存在关系?

  5. 5

    在哪个设备上创建流与在哪个设备上执行代码之间是否存在关系?

  6. 6

    如何在Android设备上创建新的虚拟鼠标设备?

  7. 7

    销毁在Ruby on Rails中不起作用的路径

  8. 8

    销毁在Ruby on Rails中不起作用的路径

  9. 9

    为什么实例化/销毁在性能方面很糟糕?

  10. 10

    使用Linux上的ZFS,如何列出设备(vdev)的特定属性?

  11. 11

    如何在特定设备上运行命令“ ionic run android”?

  12. 12

    如何在OpenNIGrabber上设置特定的设备ID?

  13. 13

    使用Linux上的ZFS,如何列出设备(vdev)的特定属性?

  14. 14

    如何在Android设备上运行特定的应用程序

  15. 15

    如何防止特定功能在移动设备上运行

  16. 16

    HLS流无法在Apple设备上运行

  17. 17

    创建DirectShow类别后如何销毁它?

  18. 18

    如何销毁动态角度8创建的组件

  19. 19

    如何创建和销毁wx.App?

  20. 20

    如何使用滑块创建和销毁对象?

  21. 21

    如何从中创建流?

  22. 22

    如何从 For 循环创建流

  23. 23

    如何使用ID销毁特定用户的会话?

  24. 24

    如何在Microsoft Azure流分析上从多个设备中分离数据

  25. 25

    如何将 udp 上的流数据转换为视频设备?

  26. 26

    如果模型 A 有_许多 B 的实例,通过另一个模型 C,我如何创建一条路线来销毁 A 的特定实例上的 B 实例?

  27. 27

    我如何查看Midi设备流

  28. 28

    如何创建<Interface>对象流?

  29. 29

    如何直接在GPU上创建张量,或者在另一个张量的设备上更好地创建张量?

热门标签

归档