gpt4 book ai didi

opencv - NVIDIA CUDA Toolkit 5.0 Visual Profiler "Enable concurrent kernels profiling"应用程序要求

转载 作者:行者123 更新时间:2023-12-02 17:53:44 24 4
gpt4 key购买 nike

操作系统:Windows 7 64 位
编译器:Visual Studio 2010 Professional
司机:306.23
设备:GeForce GTX 680 或 GeForce GT 650M
我正在使用 CUDA Toolkit 5.0,因为我需要使用此 Toolkit 的 NVIDIA Visual Profiler 的新功能,该功能允许在时间轴中查看异步执行的并发内核(这在 CUDA Toolkit 4.2 中是不可能的)。出于这个原因,我使用安装在我的电脑上的这个工具包(5.0)构建(成功)OpenCV 2.4.2 的源代码(这是在 OpenCV 博客上向我建议的),并且我能够正确编译和执行我的具有并发内核的应用程序:其中一些是由模块 OpenCV_GPU 的函数调用的,另一些是我直接在 CUDA 中编写的内核。
不幸的是,如果我启用以下功能,CUDA 5.0 NVIDIA Visual Profiler 将无法跟踪我的应用程序的时间线:“启用并发内核分析”。
它为仅使用 OpenCV 函数编写的代码和仅使用 CUDA 函数编写的代码正确创建时间线。事实上,当我在同一个应用程序中混合两者时,它会停止工作。
我认为这可能是由于 OpenCV 调用应该使用与其余 CUDA 代码相同的 CUDA 上下文。
如何管理 CUDA 上下文以允许 Profiler 跟踪时间线?

感谢您的关注。

最佳答案

好吧,为了解决我的问题,我尝试了这不是 CUDA 上下文的问题:使用 CUDA 和 OpenCV 编写的应用程序可以被 Profiler 很好地跟踪。相反,这是一个内存问题:简单地说,在包含我的算法的 CUDA 版本和 OpenCV 版本的应用程序中,我使用的流数量是我在只有一个版本的应用程序中使用的大小的两倍算法,这超出了 Profiler 的内存容量。我认为这是 Profiler 的问题,因为使用这两种方法的应用程序运行正常,并且只有当我从 Profiler 以“启用并发内核执行”模式运行它以跟踪时间线时,它才会停止。这必须通过 Profiler 使用更多内存来跟踪此模式中的时间线这一事实来解释,因此流数量的限制低于同步模式中的限制。但是,我是初学者,所以我最好不要冒险提出假设。我用更少的流解决了它。我为这个误导性的问题道歉。

关于opencv - NVIDIA CUDA Toolkit 5.0 Visual Profiler "Enable concurrent kernels profiling"应用程序要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705153/

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