c++ - 从多线程 C++ 应用程序调用 GPU 内核?

标签 c++ multithreading cuda pthreads

我正在使用 pthreads 重新实现图像处理库的某些部分,该库是多线程 C++。我希望能够在每个线程中调用 CUDA 内核并信任设备本身来处理内核调度,但我知道最好不要依赖这种行为。有没有人遇到过此类问题?

最佳答案

CUDA 4.0 使从多个线程驱动单个 CUDA 上下文变得更加简单 - 只需调用 cudaSetDevice() 来指定您希望线程提交命令的 CUDA 设备。

请注意,这可能比从单个线程驱动 CUDA 上下文效率低 - 除非 CPU 线程在内核启动之间有其他工作来保持它们被占用,否则它们可能会被 CUDA 内部使用的互斥锁序列化保持其数据结构一致。

关于c++ - 从多线程 C++ 应用程序调用 GPU 内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157210/

相关文章:

c++ - MFC C++ 在主线程上放置 1000 毫秒 sleep ?

cuda - 我的 CUDA 内核中的 printf() 不会产生任何输出

c++ - C/C++ 中的 STL、iostream、new、delete for CUDA

cuda - 使用常量内存和全局内存的程序之间的区别

c++ - 如何为 3D vector 中未使用的元素释放内存?

c++ - 将类传递给它自己的成员函数

c++ - 如何确定 C++ 对象是否为 time_t

c++ - boost 池单例 RequestedSize 设置

java - 如何检查所有任务是否已完成(正常或突然)?

python - 输入停止线程运行