【问题标题】:How much less kernel overhead Tesla is, comparing to Geforce?与 Geforce 相比,Tesla 的内核开销要少多少?
【发布时间】:2013-03-03 20:39:54
【问题描述】:

使用 TCC 模式的特斯拉(Fermi 或 Kepler)与使用 WDDM 的 Geforce(同代)相比?

我编写的程序在内核开销方面存在一些非常严重的问题,因为它必须重复启动内核,开销如此巨大,我必须将许多内核合并在一起并交换内存空间以减少内核启动,但是它只能工作到目前为止,这要归功于 GPU 内存存储的庞大规模。

我听说 TCC 模式可以减少开销,但它可以将开销性能提升到 CPU 级别吗?

自从我阅读了一些基准测试以来,至少对于 Geforce 280 GTX,内核调用开销是 CPU 的函数调用开销的数千倍,并且对于需要大量重复迭代的方法,它在这里产生了巨大的性能差异.

【问题讨论】:

  • 可以切换到 Windows XP 吗?那里不会有 WDDM 问题。

标签: c cuda kernel nvidia


【解决方案1】:

我正在启动 16 个内核,当我合并所有要立即启动的内核时速度为 X,速度为 10X,合并内核也增加了开销,但结果很好。

这是多核架构,如果您不能利用它(启动最大的作业大小),那么您就是在浪费启动内核所花费的开销。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    WDDM 驱动程序将一起批量启动内核以减少开销。因此,如果您能够将内核合并在一起以减少启动开销,那么 WDDM 驱动程序也将如此(除非您在两者之间使用 CUDA 调用来防止批处理)。因此,在这个特定用例中切换到 TCC 模式不会给您带来太多好处。

    您确定问题是启动开销而不是其他问题吗?您要启动多少个单独的内核?这需要多长时间?
    很可能(特别是在启动开销非常小的内核的情况下)将内核合并在一起可以让编译器更好地优化内核,例如消除将中间结果写出和读回全局内存。

    【讨论】:

    • 如果您的问题是延迟而不是吞吐量,那么批处理确实无济于事,甚至会适得其反。我也看不出合并内核会有什么帮助。
    • @user0002128 如果您尝试启动 1 亿个内核,那么您做错了什么。您似乎不了解加速器的工作原理以及它们适用于哪些类型的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多