我同时使用Tesla k40和GTX Titan X,我有Cuda 8.0 我使用的函数是CuBlas和CuSparse库函数: cusparseDcsrsv2_solve();cusparseDcsrmv();cublasDdot();
为什么GTX Titan X比K40更快? 我正在为从 3.0 到 6.0 的所有计算功能编译带有标志的 nvcc 我的程序处理 9 GB/12 GB RAM。 关于我,库函数不使用双精度,因为浮点 GTX TITAN X 有 6.xx Tflops,K40 有 4.xx Tflops,而浮点双精度 GTX TITAN X 有 2xx GFlops,K40 有 1.xx Tflops。理论上,K40必须比GTX TITAN X更快。 我的问题可能是什么?太奇怪了。
首先,这些问题的答案通常是:分析你的内核,你会知道到底是什么运行得更慢。
不过,我会说,K40应该比Maxwell Titan X更快并不是真的:
- 时钟速度: 泰坦 X: 1000 兆赫 , 特斯拉 K40: 745 兆赫.
- 内存带宽:Titan X:336 GB/秒,Tesla K40:288 GB/秒。
- "CUDA 内核"的数量(即多处理器矢量化寄存器中的最大同时执行通道):Titan X 3072,Tesla K40:2888。
因此,Titan X有很多统计数据对它有利,更不用说它是一个不同的微架构,即使使用相同的"原始"统计数据,它也总是可以在性能方面混淆事物。因此,至少对于某些工作负载,Titan X应该更快。
当然,正如其他人所建议的那样,对于双精度浮点性能,K40应该很容易胜过Titan X:K40的硅为1430G FMA操作/秒,而Titan X仅为192(!