媒体只是单纯地报道了NVIDIA K40 GPU的发布,但是Xcelerit公司的工程师团队已经拿到了一块,并做了测试。Xcelerit是一家为加速器优化代码的商业公司,他们总是会拿到最新的加速器和多核芯片做基准测试
相比先前高端的开普勒K20X,NVIDIA的Tesla K40拥有更多的内存、更高的时钟频率和更多CUDA核心。但是,这些规范如何在真实世界的金融应用中对实际的性能方面造成影响?这就是Xcelerit团队想知道,所以他们进行K40和K20X之间的比较测试,利用Monte-Carlo LIBOR swaption portfolio pricer(一种基于伦敦同业拆借利率市场模拟的询价器)为测试基准。
K40和K20X的硬件规格如下:
|
Tesla K20X |
Tesla K40 |
SMX |
14 |
15 |
CUDA Cores |
2,688 |
2,880 |
Memory |
6 GB |
12 GB |
Core Frequency |
732 MHz |
745 MHz |
Max. Frequency |
784 MHz |
875 MHz |
Memory Bandwidth |
250 GB/s |
288 GB/s |
Xcelerit技术负责人兼共同创始人约尔格·洛采解释说,除了在时钟速度、内核数量和内存方面的不同外,最大的改进是,K40具有可飙升频率的Boost模式。,可以加大CUDA核心上的频率。当温度不超过最大限制时,K40将可提高最多17%的频率,而K20X只能提升最多7%。此外当超过该温度限制将导致它们自动降频。
基准采用蒙特卡洛伦敦银行同业拆借利率掉期期权组合定价。这是用于同业拆息定价的掉期期权的投资组合共同的金融算法。它涉及到数以千计的为LIBOR利率未来可能的发展路径的模拟。对于每一种路径,掉期期权组合的价值是通过运用投资组合收益函数计算。无论是最终的投资组合的价值还是利率敏感度值都是通过计算所有路径值的平均值获得。
由于有大量的路径,此算法需要更多核心和更高的时钟速度来获得更显著的性能提升。
Xcelerit用两个系统来测试基准软件,规格如下:
|
K20X System |
K40 System |
CPU |
2 Intel Xeon E5-2677 (2.9GHz) |
2 Intel Xeon E5-2670 (2.6GHz) |
GPU |
NVIDIA Tesla K20Xm |
NVIDIA Tesla K40m |
OS |
RHEL 6.2 (64bit) |
RHEL 6.2 (64bit) |
RAM |
128GB |
128GB |
GPU driver |
319.72 |
319.58 |
CUDA Toolkit |
5.5 |
5.5 |
Host Compiler |
GCC 4.4 |
GCC 4.4 |
性能测试结果
算法的原理如下:
所有的计算都在GPU上,因此CPU的不同不会对基准测试带来影响。注意,使用的是Xcelerit SDK,代码没有做任何改动。
“默认频率”下的boost结果:
Xcelerit在最大频率下测试了同样的程序(通过nvidia-smi tool提高了时钟频率),测试的性能结果如下图:
为了更好的比较,下表显示了K40对比K20X GPU在不同数量的路径下的加速比:
Paths |
Speedup (def. clock, single) |
Speedup (def. clock, double) |
Speedup (max. clock, single) |
Speedup (max. clock, double) |
16K |
1.15x |
1.17x |
1.21x |
1.21x |
256K |
1.15x |
1.17x |
1.21x |
1.26x |
1024K |
1.15x |
1.18x |
1.22x |
1.28x |