【问题标题】:cuda sdk example simpleStreams in SDK 4.1 not workingSDK 4.1 中的 cuda sdk 示例 simpleStreams 不起作用
【发布时间】:2012-05-10 19:01:50
【问题描述】:

我将CUDA GPU计算SDK和CUDA计算工具包升级到4.1。我正在测试 simpleStreams 程序,但始终需要比非流式执行更多的时间。我的设备具有计算能力 2.1,我使用的是 VS2008,Windows 操作系统。

【问题讨论】:

  • Windows 7 和 CUDA 驱动程序是目前在现场提供的一种
  • 我确认 Windows 是问题的一部分 - 虽然我暂时无法解释原因。我的桌面上并排安装了 Win8 32 位和 Ubuntu 12.04 32 位,带有 2 个 GPU(8800GTS 和 GTX660)。该示例在 Ubuntu 上完美运行(跟踪显示 memCopy 和内核之间有明显的重叠),而它们在 Win8 上无法重叠。

标签: cuda


【解决方案1】:

此示例经常出现问题。如果您调整样本以使内核和内存副本具有相同的持续时间,则重叠将得到改善。通常广度优先提交更适合并发;但是,在 WDDM OS 上,如果您在内核启动后立即发出内存副本,此示例通常会有更好的重叠。

【讨论】:

    【解决方案2】:

    我也注意到了这一点。我以为只是我的问题,但我没有发现任何改善,并尝试搜索论坛但没有找到其他人有此问题。

    我还运行了 Cuda By Example 一书中的源代码(这真的很有帮助,如果您对 GPU 编程很认真,我建议您选择它)。

    第 10 章的示例有一系列示例,展示了应该如何使用流。 http://developer.nvidia.com/content/cuda-example-introduction-general-purpose-gpu-programming-0

    但是比较一下, 1.非流版本(基本上是单流版本) 2. 流式传输(错误地排队 asyncmemcpy 和内核启动) 3. 流式传输(正确排队 asyncmemcpy 和内核启动)

    我发现使用 cuda 流没有任何好处。这可能是一个 win7 问题,因为我在网上找到了一些讨论 win vista 不正确支持 cuda 流的资源。

    让我知道您在我链接的示例中发现了什么。我的设置是:Win7 64bit Pro、Cuda 4.1、双 Geforce GTX460 卡、8GB RAM。

    【讨论】:

    • 没想到可能是Win7的问题,让我在Linux上看看
    【解决方案3】:

    我对 Cuda 还很陌生,所以可能无法提供帮助,但如果没有您发布任何代码,通常很难提供帮助。如果无法发布,那么我建议您查看Nvidia's visual profiler。它是跨平台的,可以向您展示您的瓶颈所在。

    【讨论】:

    • 我正在尝试从示例目录运行..所以不是我的代码..我认为新代码中存在一些错误
    • 查看代码文档。我不确定您使用的是哪个示例目录,但“cuda by example”书中包含的示例目录中的代码包含 cpu 版本和 gpu 版本,也许您错误地运行了 cpu 版本?
    • 在 src 文件夹中没有,我正在运行 simpleStreams 示例...流式版本比非流式版本花费更多时间,我不知道为什么会这样?
    • @Lostsoul OP提到的示例程序包含在CUDA SDK中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2015-11-18
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多