gpt4 book ai didi

c++ - 使用 CUDA 7.0/VS2012 C++/CLI/OpenCV 的多线程 CPU 到 GPU

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:20 25 4
gpt4 key购买 nike

我有一个基本的 VS2012 C++/CLI 应用程序,它从多个网络摄像头中提取图像,然后使用 OpenCV 对它们进行对象识别。目前,每个网络摄像头都有自己的线程。这有效,但我没有得到我想要的帧速率。

我想在我的 NVidia GPU 上实现一些代码。因此,我希望我的每个 CPU 线程都能够异步调用 GPU 并执行一系列功能。

我是 GPU 新手,所以我想知道哪个更有意义:

1) 一次将对 GPU 的访问锁定到一个 CPU 线程;或

2) 每个 CPU 线程都可以调用 GPU,并且只有某些内核在该线程上工作(而其他内核在其他线程上工作);或

3) 缓存作业的地方。

如果#2 是一个不错的选择,是否有关于如何操作的某种指南?我需要在 GPU 内存中保留特定于每个 CPU 线程的内容。

感谢您的指导。

最佳答案

下一步可能是使用 CUDA-Streams。因此独立线程可以在 GPU 上并发运行。但要小心,查看使用过的内存、寄存器和核心变得越来越复杂。这意味着您需要额外的代码来避免过度分配或耗尽寄存器。任何时候都请记住,GPU 上的每个资源都是有限的。对于开普勒,请查看 Kepler Whitepaper在第 6 - 8 页和 CUDA Programming Guide 中的性能指南中在第 79 和 80 页。

关于c++ - 使用 CUDA 7.0/VS2012 C++/CLI/OpenCV 的多线程 CPU 到 GPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31685346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com