采用TCC模式的特斯拉(费米或开普勒)与采用WDDM的Geforce (同一代)相比?
我写的程序有一些非常严重的内核开销问题,因为它必须重复运行内核,开销是如此巨大,我不得不将许多内核合并在一起,并交换内存空间以换取更少的内核启动,然而,由于GPU内存存储的巨大容量,它只能工作到目前为止。
我听说TCC模式可以有较少的开销,但它能将开销性能提高到CPU的水平吗?
因为我读过一些基准测试,至少对于GeForce280GTX,内核调用开销比CPU的函数调用开销长数千倍,并且对于需要大量重复迭代的方法,它在这里产生了巨大的性能差异。
发布于 2013-03-15 19:15:47
WDDM驱动程序将一起批处理内核启动,以减少开销。因此,如果您能够将内核合并在一起以减少启动开销,那么WDDM驱动程序也将如此(除非您在两者之间使用CUDA调用来阻止批处理)。因此,在这个特定的用例中,切换到TCC模式不会给您带来太多好处。
您确定问题出在启动开销而不是其他方面吗?你要启动多少个独立的内核,这需要多长时间?
(特别是在启动开销非常明显的非常小的内核的情况下)将内核合并在一起可以让编译器更好地优化内核,例如消除将中间结果写出和读回全局内存。
发布于 2013-03-15 16:45:55
我启动了16个内核,速度是X,当我合并所有内核一次启动时,速度是10倍,合并内核也有开销,但结果很好。
这是一个多核架构,如果你不能利用它(启动最大的任务大小),那么你就是在浪费启动内核的开销。
我希望这对你有帮助。
https://stackoverflow.com/questions/15427213
复制相似问题