是否有任何基准测试,例如"NAS并行基准测试",但是对于CUDA-GPU,MPI-CPU + CUDA-GPU或(OpenCL GPU + CPU),我可以在哪里使用它?
据我所知,一个例子是用于MPI-CPU + CUDA-GPU的HPL(高性能计算Linpack Benchmark for CUDA)。这是"HPL - 用于分布式内存计算机的高性能Linpack基准测试的便携式实现"的修改版本。
MAGMA是一个基于CUDA的BLAS库。
http://icl.utk.edu/magma/
它的源代码包含大量针对 BLAS1、2、3 和 LAPACK rotines 的测试程序,可以用作 SMP-CPU 与 CUDA-GPU 的基准测试。
通过使用不同的makefile,它可以比较SMP-CPU和CUDA-GPU上几个BLAS/LAPACK库的性能。
- CPU 库:MKL、GotoBLAS、ATLAS、ACML
- GPU 库:CUBLAS,MAGMA
MAGMA还支持多GPU功能。
下面是其testing_dgemm
的示例输出
$ ./testing_dgemm -l
MAGMA 1.4.0 , capability 3.0
device 0: Tesla K20m, 705.5 MHz clock, 4799.6 MB memory, capability 3.5
Usage: ./testing_dgemm [options] [-h|--help]
If running lapack (option --lapack), MAGMA and CUBLAS error are both computed
relative to CPU BLAS result. Else, MAGMA error is computed relative to CUBLAS result.
transA = N, transB = N
M N K MAGMA Gflop/s (ms) CUBLAS Gflop/s (ms) CPU Gflop/s (ms) MAGMA error CUBLAS error
=========================================================================================================
1088 1088 1088 542.60 ( 4.75) 885.12 ( 2.91) 16.09 ( 160.07) 4.02e-15 4.02e-15
2112 2112 2112 594.08 ( 31.72) 1013.63 ( 18.59) 17.80 (1058.40) 5.58e-15 5.58e-15
3136 3136 3136 595.65 ( 103.55) 1014.95 ( 60.77) 67.72 ( 910.87) 7.64e-15 7.64e-15
4160 4160 4160 591.86 ( 243.27) 1030.00 ( 139.79) 86.60 (1662.71) 8.79e-15 8.96e-15
5184 5184 5184 589.67 ( 472.52) 1035.98 ( 268.95) 91.06 (3059.81) 1.06e-14 1.06e-14
6208 6208 6208 583.73 ( 819.73) 1044.25 ( 458.23) 95.69 (5000.59) 1.18e-14 1.19e-14
7232 7232 7232 585.58 (1291.86) 1044.57 ( 724.21) 99.09 (7634.04) 1.15e-14 1.15e-14
8256 8256 8256 586.20 (1919.98) 1045.94 (1076.05) 98.31 (11447.84) 1.21e-14 1.21e-14
9280 9280 9280 585.82 (2728.40) 1046.96 (1526.67) 99.49 (16064.95) 1.54e-14 1.54e-14
10304 10304 10304 586.37 (3731.41) 1048.27 (2087.26) 100.38 (21797.19) 1.67e-14 1.67e-14