【问题标题】:OpenCL: Why does clCreateContext creates threads?OpenCL:为什么 clCreateContext 会创建线程?
【发布时间】:2017-06-08 18:52:12
【问题描述】:

我正在调试与 OpenCL 相关的分段错误。使用 gdb 我注意到由于 clCreateContext 而创建了几个线程

GDB 输出:

在 clCreateContext 之前打印

[新线程 0x7ffff299b700 (LWP 10807)]

[新线程 0x7ffff219a700 (LWP 10808)]

[新线程 0x7ffff1999700 (LWP 10809)]

[新线程 0x7ffff1198700 (LWP 10810)]

[新线程 0x7ffff0997700 (LWP 10811)]

[新线程 0x7fffebffff700 (LWP 10812)]

[新线程 0x7fffeb7fe700 (LWP 10813)]

在 clCreateContext 之后打印

有人知道这是什么原因吗?

[我在 Ubuntu 上使用 OpenCl 1.2 和 NVIDIA GPU]

【问题讨论】:

    标签: opencl


    【解决方案1】:

    OpenCL 实现需要在内部生成线程以支持不同的功能,例如监控设备内核执行或内存传输,或执行用户回调。此行为是由实现定义的,因此不同的实现可能会产生不同数量的线程。

    【讨论】:

    • 感谢您的回答。产生的线程数与主机拥有的 CPU 数有关吗?
    • 这完全取决于实现,并且随着时间的推移可能会因驱动程序版本而异。它通常不是由他们定义的。总之,不用太担心。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多