【问题标题】:Compute Prof's fields for incoherent and coherent gst/gld? (CUDA/OpenCL)计算教授的非连贯和连贯 gst/gld 场? (CUDA/OpenCL)
【发布时间】:2010-10-04 15:02:15
【问题描述】:

我正在使用 Compute Prof 3.2 和 Geforce GTX 280。我相信我的计算能力是 1.3。

This file,似乎表明我应该能够看到这些字段,因为我使用的是 1.x 计算设备。好吧,我看不到它们,3.2 工具包的用户指南说我看不到它们,但称它们为 gst_uncoalescedgst_coalesced

总之,如果我从全局内存中进行非合并读取,我应该如何从分析器中弄清楚我很困惑。看起来费米卡也不会说,但我现在并不担心它们。如果有人能详细说明情况,我将不胜感激。

另外,我被告知要查看我的内核程序集以解决这些问题,因此任何有关如何执行此操作的详细说明也值得赞赏。我也刚刚开始尝试弄清楚这些东西:)

【问题讨论】:

    标签: memory cuda global opencl nvidia


    【解决方案1】:

    我在分析输出时遇到了类似的问题。虽然在 8600(计算能力 1.0)上显示合并和未合并的读/写,但它仅在 GTX280 上显示合并。我认为这是由于 gtx 280 上更好的合并使剪切变得不那么清晰(是不是一个除了一个单词之外的所有单词都不需要未合并的内存读取?)。但是,您可以查看汇总表。在那里,您可以找到每个内核的加载和存储效率。如果所有访问都被合并,那么效率应该是 1,否则它小于 1(0.5 意味着只使用了一半的加载字节)。

    当然,因为这并不能帮助您确定未合并的访问在内核中的确切位置,所以最好的方法仍然是了解合并的工作原理(每个半扭曲的地址被收集到 32、64 和 128 字节的访问中,无论如何,该区域内未访问的值都会被传输)并且分析您的访问模式仍然是最终的方法。

    【讨论】:

    • 感谢您的回复。我认为您对 gld_efficiency 和 gst_efficiency 的看法一定是正确的。我仍在寻找有关哪种 CUDA 或 OpenCL 代码生成非合并读/写的具体示例。银行冲突也是如此。 Nvidia 的文档显示了不错的图表,但没有显示与之相关的代码。有具体的例子吗?
    • @user464095:NVIDIA OpenCL 最佳实践指南有一些示例(Matrixmultiply 有几个变体,内存性能差异很大)。我会发布我的一些代码以及相应的推理,但由于其中大部分与工作相关,我无法分享它。所以也许以后
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多