OpenCL:为什么 clCreateContext 创建线程?
OpenCL: Why does clCreateContext creates threads?
我正在调试与 OpenCL 相关的分段错误。使用 gdb 我注意到由于 clCreateContext
创建了几个线程
GDB output:
print Before clCreateContext
[New Thread 0x7ffff299b700 (LWP 10807)]
[New Thread 0x7ffff219a700 (LWP 10808)]
[New Thread 0x7ffff1999700 (LWP 10809)]
[New Thread 0x7ffff1198700 (LWP 10810)]
[New Thread 0x7ffff0997700 (LWP 10811)]
[New Thread 0x7fffebfff700 (LWP 10812)]
[New Thread 0x7fffeb7fe700 (LWP 10813)]
print After clCreateContext
有人知道这是什么原因吗?
[我在 Ubuntu]
上使用 OpenCl 1.2 和 NVIDIA GPU
OpenCL 实现需要在内部生成线程以支持不同的功能,例如监视设备内核执行或内存传输,或执行用户回调。此行为是实现定义的,因此不同的实现可能会产生不同数量的线程。
我正在调试与 OpenCL 相关的分段错误。使用 gdb 我注意到由于 clCreateContext
创建了几个线程GDB output:
print Before clCreateContext
[New Thread 0x7ffff299b700 (LWP 10807)]
[New Thread 0x7ffff219a700 (LWP 10808)]
[New Thread 0x7ffff1999700 (LWP 10809)]
[New Thread 0x7ffff1198700 (LWP 10810)]
[New Thread 0x7ffff0997700 (LWP 10811)]
[New Thread 0x7fffebfff700 (LWP 10812)]
[New Thread 0x7fffeb7fe700 (LWP 10813)]
print After clCreateContext
有人知道这是什么原因吗?
[我在 Ubuntu]
上使用 OpenCl 1.2 和 NVIDIA GPUOpenCL 实现需要在内部生成线程以支持不同的功能,例如监视设备内核执行或内存传输,或执行用户回调。此行为是实现定义的,因此不同的实现可能会产生不同数量的线程。