2013-03-15 71 views
2

特斯拉(费米或开普勒)与TDM模式相比,与Geforce(相同代)与WDDM?与Geforce相比,Tesla的内核开销少了多少?

我编写的程序有一些非常严重的内核开销问题,因为它必须重复启动内核,开销非常巨大,我必须将许多内核合并到一起并交换内存空间,以减少内核启动次数,但它只能由于GPU内存存储的大小,迄今为止工作。

听说TCC模式可以有更少的开销,但它可以带来的开销performane到CPU'level?

由于我读了一些基准测试,至少对于Geforce 280 GTX而言,内核调用开销比CPU的函数调用开销长数千倍,而且对于需要大量重复迭代的方法,它会产生巨大的性能差异这里。

+0

你可以切换到Windows XP吗?您将不会在那里发生WDDM问题。 – Dredok 2013-03-15 08:51:15

回答

0

我推出了16个内核,速度是X,当我将所有内核合并到一起启动时,速度是10倍,合并内核已经投入了开销,但结果非常好。

这是多核心架构,如果你不能使用的是(启动最大作业大小),那么你就是在浪费你趁机推出内核的开销。

我希望这可以帮助你。

1

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

你确定这个问题是推出的开销,而不是别的?你启动多少个独立的内核,这需要多长时间?
它很可能是(特别是在发射的开销将是noticable非常小内核的情况下),其合并所述内核一起允许编译器更好地优化仁,例如以消除写出并将中间结果回读至全局存储器。

+0

如果你的问题是等待时间不是吞吐量,那么配料确实没有帮助,但甚至会适得其反。我看不出如何合并内核也会有帮助。 – tera 2013-03-15 11:53:31

+1

@ user0002128如果您尝试启动1亿个内核,而不是做出错误的操作。你似乎不了解加速器的工作原理以及它们适合的问题类型。 – RoBiK 2013-03-15 12:43:33