diff options
Add basic benchmark scripts, K2200 results
-rw-r--r-- | ldc_2d_benchmark.py | 97 | ||||
-rw-r--r-- | ldc_3d_benchmark.py | 97 | ||||
-rw-r--r-- | result/ldc_2d_benchmark.k2200.data | 1 | ||||
-rw-r--r-- | result/ldc_2d_benchmark.k2200.log | 128 | ||||
-rw-r--r-- | result/ldc_3d_benchmark.k2200.data | 1 | ||||
-rw-r--r-- | result/ldc_3d_benchmark.k2200.log | 112 |
6 files changed, 436 insertions, 0 deletions
diff --git a/ldc_2d_benchmark.py b/ldc_2d_benchmark.py new file mode 100644 index 0000000..af2dfa6 --- /dev/null +++ b/ldc_2d_benchmark.py @@ -0,0 +1,97 @@ +import numpy +import time +from string import Template + +from simulation import Lattice, Geometry +from symbolic.generator import LBM + +import symbolic.D2Q9 as D2Q9 + +import itertools + +lid_speed = 0.1 +relaxation_time = 0.52 + +def MLUPS(cells, steps, time): + return cells * steps / time * 1e-6 + +def cavity(geometry, x, y): + if x == 1 or y == 1 or x == geometry.size_x-2: + return 2 + elif y == geometry.size_y-2: + return 3 + else: + return 1 + +boundary = Template(""" + if ( m == 2 ) { + u_0 = 0.0; + u_1 = 0.0; + } + if ( m == 3 ) { + u_0 = $lid_speed; + u_1 = 0.0; + } +""").substitute({ + 'lid_speed': lid_speed +}) + +sizes = [32, 64, 96, 128, 256, 512, 1024] + +precisions = [ 'single', 'double' ] + +layouts = [ + ( 16, 1), + ( 24, 1), + ( 32, 1), + ( 48, 1), + ( 64, 1), + ( 96, 1), + ( 128, 1), + ( 256, 1), + ( 512, 1), + (1024, 1), +] + +configs = list(filter( + lambda config: config[0] % config[1][0] == 0 and config[0] % config[1][1] == 0, + itertools.product(*[sizes, layouts, precisions, [True, False]]) +)) + +lbm = LBM(D2Q9) + +measurements = [] + +for size, layout, precision, opti in configs: + lattice = Lattice( + descriptor = D2Q9, + geometry = Geometry(size, size), + precision = precision, + layout = layout, + moments = lbm.moments(optimize = opti), + collide = lbm.bgk(f_eq = lbm.equilibrium(), tau = relaxation_time, optimize = opti), + boundary_src = boundary) + lattice.setup_geometry(cavity) + + nUpdates = 1000 + nStat = 100 + + stats = [] + + lastStat = time.time() + + for i in range(1,nUpdates+1): + lattice.evolve() + + if i % nStat == 0: + lattice.sync() + mlups = round(MLUPS(lattice.geometry.volume, nStat, time.time() - lastStat)) + stats.append(mlups) + lastStat = time.time() + + print('%s: ~%d MLUPS' % ((size, layout, precision, opti), numpy.average(stats))) + measurements.append(((size, layout, precision, opti), stats)) + del lattice + +with open('result/ldc_2d_benchmark.data', 'w') as f: + f.write(str(measurements)) diff --git a/ldc_3d_benchmark.py b/ldc_3d_benchmark.py new file mode 100644 index 0000000..d066d87 --- /dev/null +++ b/ldc_3d_benchmark.py @@ -0,0 +1,97 @@ +import numpy +import time +from string import Template + +from simulation import Lattice, Geometry +from symbolic.generator import LBM + +import symbolic.D3Q19 as D3Q19 +import symbolic.D3Q27 as D3Q27 + +import itertools + +lid_speed = 0.1 +relaxation_time = 0.52 + +def MLUPS(cells, steps, time): + return cells * steps / time * 1e-6 + +def cavity(geometry, x, y, z): + if x == 1 or y == 1 or z == 1 or x == geometry.size_x-2 or y == geometry.size_y-2: + return 2 + elif z == geometry.size_z-2: + return 3 + else: + return 1 + +boundary = Template(""" + if ( m == 2 ) { + u_0 = 0.0; + u_1 = 0.0; + u_2 = 0.0; + } + if ( m == 3 ) { + u_0 = $lid_speed; + u_1 = 0.0; + u_2 = 0.0; + } +""").substitute({ + 'lid_speed': lid_speed +}) + +sizes = [16, 32, 48, 64, 96] + +layouts = [ + ( 16, 1, 1), + ( 24, 1, 1), + ( 32, 1, 1), + ( 48, 1, 1), + ( 64, 1, 1), + ( 96, 1, 1) +] + +descriptors = [ D3Q19, D3Q27 ] + +precisions = [ 'single', 'double' ] + +configs = list(filter( + lambda config: config[0] % config[1][0] == 0 and config[0] % config[1][1] == 0, + itertools.product(*[sizes, layouts, descriptors, precisions, [True, False]]) +)) + +measurements = [] + +for size, layout, descriptor, precision, opti in configs: + lbm = LBM(descriptor) + lattice = Lattice( + descriptor = descriptor, + geometry = Geometry(size, size, size), + precision = precision, + layout = layout, + moments = lbm.moments(optimize = opti), + collide = lbm.bgk(f_eq = lbm.equilibrium(), tau = relaxation_time, optimize = opti), + boundary_src = boundary) + lattice.setup_geometry(cavity) + + nUpdates = 1000 + nStat = 100 + + stats = [] + + lastStat = time.time() + + for i in range(1,nUpdates+1): + lattice.evolve() + + if i % nStat == 0: + lattice.sync() + mlups = round(MLUPS(lattice.geometry.volume, nStat, time.time() - lastStat)) + stats.append(mlups) + lastStat = time.time() + + print('%s: ~%d MLUPS' % ((size, layout, descriptor.__name__, precision, opti), numpy.average(stats))) + measurements.append(((size, layout, descriptor.__name__, precision, opti), stats)) + del lattice, lbm + +with open('result/ldc_3d_benchmark.data', 'w') as f: + f.write(str(measurements)) diff --git a/result/ldc_2d_benchmark.k2200.data b/result/ldc_2d_benchmark.k2200.data new file mode 100644 index 0000000..8079473 --- /dev/null +++ b/result/ldc_2d_benchmark.k2200.data @@ -0,0 +1 @@ +[((32, (16, 1), 'single', True), [15, 16, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (16, 1), 'single', False), [16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (16, 1), 'double', True), [16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (16, 1), 'double', False), [13, 13, 13, 13, 13, 13, 13, 13, 13, 13]), ((32, (32, 1), 'single', True), [16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (32, 1), 'single', False), [16, 16, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (32, 1), 'double', True), [14, 14, 16, 16, 16, 16, 16, 16, 16, 16]), ((32, (32, 1), 'double', False), [14, 14, 14, 14, 14, 14, 14, 14, 14, 14]), ((64, (16, 1), 'single', True), [63, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (16, 1), 'single', False), [63, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (16, 1), 'double', True), [62, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (16, 1), 'double', False), [13, 13, 13, 13, 13, 14, 14, 14, 14, 14]), ((64, (32, 1), 'single', True), [63, 64, 63, 63, 63, 63, 62, 63, 63, 63]), ((64, (32, 1), 'single', False), [63, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (32, 1), 'double', True), [62, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (32, 1), 'double', False), [28, 28, 28, 27, 28, 28, 28, 28, 28, 28]), ((64, (64, 1), 'single', True), [62, 63, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (64, 1), 'single', False), [62, 63, 63, 63, 63, 62, 63, 63, 63, 63]), ((64, (64, 1), 'double', True), [63, 64, 63, 63, 63, 63, 63, 63, 63, 63]), ((64, (64, 1), 'double', False), [27, 27, 27, 27, 27, 27, 27, 27, 27, 27]), ((96, (16, 1), 'single', True), [134, 135, 135, 135, 133, 133, 134, 135, 135, 135]), ((96, (16, 1), 'single', False), [141, 143, 142, 142, 142, 141, 141, 142, 141, 142]), ((96, (16, 1), 'double', True), [140, 141, 141, 141, 141, 141, 140, 141, 141, 142]), ((96, (16, 1), 'double', False), [15, 15, 15, 15, 15, 15, 15, 15, 15, 15]), ((96, (24, 1), 'single', True), [140, 143, 142, 142, 142, 141, 141, 141, 142, 143]), ((96, (24, 1), 'single', False), [139, 141, 142, 140, 141, 141, 141, 141, 141, 141]), ((96, (24, 1), 'double', True), [138, 140, 140, 139, 139, 141, 140, 140, 141, 139]), ((96, (24, 1), 'double', False), [21, 22, 22, 22, 21, 22, 22, 22, 22, 22]), ((96, (32, 1), 'single', True), [139, 140, 139, 139, 138, 138, 140, 140, 140, 141]), ((96, (32, 1), 'single', False), [141, 142, 143, 142, 142, 141, 136, 125, 125, 125]), ((96, (32, 1), 'double', True), [140, 140, 141, 137, 136, 141, 140, 141, 141, 142]), ((96, (32, 1), 'double', False), [28, 28, 28, 28, 28, 28, 28, 28, 28, 28]), ((96, (48, 1), 'single', True), [141, 142, 142, 142, 142, 142, 142, 141, 142, 142]), ((96, (48, 1), 'single', False), [141, 142, 142, 142, 142, 141, 142, 140, 141, 142]), ((96, (48, 1), 'double', True), [139, 142, 141, 141, 141, 142, 141, 142, 141, 141]), ((96, (48, 1), 'double', False), [22, 21, 21, 22, 22, 22, 22, 22, 22, 21]), ((96, (96, 1), 'single', True), [141, 143, 142, 132, 137, 141, 141, 142, 141, 142]), ((96, (96, 1), 'single', False), [141, 141, 142, 140, 142, 141, 141, 141, 141, 142]), ((96, (96, 1), 'double', True), [140, 141, 141, 141, 141, 141, 142, 142, 142, 141]), ((96, (96, 1), 'double', False), [29, 28, 28, 28, 28, 28, 28, 28, 28, 28]), ((128, (16, 1), 'single', True), [251, 254, 254, 253, 253, 253, 254, 253, 253, 253]), ((128, (16, 1), 'single', False), [250, 253, 252, 252, 252, 253, 252, 252, 252, 253]), ((128, (16, 1), 'double', True), [151, 152, 152, 152, 152, 152, 152, 152, 152, 152]), ((128, (16, 1), 'double', False), [16, 15, 15, 15, 15, 15, 15, 15, 15, 15]), ((128, (32, 1), 'single', True), [221, 224, 224, 223, 223, 226, 247, 253, 253, 251]), ((128, (32, 1), 'single', False), [248, 252, 251, 251, 251, 253, 252, 253, 253, 251]), ((128, (32, 1), 'double', True), [248, 252, 251, 251, 251, 251, 251, 250, 252, 249]), ((128, (32, 1), 'double', False), [30, 29, 29, 29, 29, 29, 29, 29, 29, 29]), ((128, (64, 1), 'single', True), [250, 253, 252, 253, 252, 252, 252, 252, 252, 252]), ((128, (64, 1), 'single', False), [251, 253, 253, 253, 253, 253, 253, 252, 253, 253]), ((128, (64, 1), 'double', True), [247, 250, 250, 249, 250, 250, 250, 251, 250, 251]), ((128, (64, 1), 'double', False), [29, 29, 29, 29, 29, 29, 29, 29, 29, 29]), ((128, (128, 1), 'single', True), [250, 253, 253, 252, 253, 252, 252, 253, 253, 253]), ((128, (128, 1), 'single', False), [250, 253, 250, 246, 253, 251, 251, 251, 252, 252]), ((128, (128, 1), 'double', True), [247, 249, 249, 249, 249, 249, 249, 250, 250, 250]), ((128, (128, 1), 'double', False), [29, 28, 28, 28, 28, 28, 28, 28, 28, 28]), ((256, (16, 1), 'single', True), [786, 789, 787, 791, 789, 791, 790, 789, 787, 791]), ((256, (16, 1), 'single', False), [460, 442, 427, 424, 426, 426, 426, 426, 426, 426]), ((256, (16, 1), 'double', True), [161, 161, 161, 161, 161, 161, 160, 161, 161, 161]), ((256, (16, 1), 'double', False), [16, 15, 15, 15, 15, 15, 15, 15, 15, 15]), ((256, (32, 1), 'single', True), [774, 786, 775, 789, 774, 789, 775, 787, 775, 788]), ((256, (32, 1), 'single', False), [763, 774, 763, 770, 761, 771, 761, 772, 760, 769]), ((256, (32, 1), 'double', True), [312, 313, 313, 313, 313, 313, 313, 313, 313, 313]), ((256, (32, 1), 'double', False), [32, 30, 30, 30, 30, 30, 30, 30, 30, 30]), ((256, (64, 1), 'single', True), [759, 772, 764, 770, 760, 772, 762, 774, 761, 775]), ((256, (64, 1), 'single', False), [720, 729, 724, 719, 721, 718, 723, 717, 723, 716]), ((256, (64, 1), 'double', True), [311, 311, 311, 311, 312, 312, 312, 312, 311, 311]), ((256, (64, 1), 'double', False), [32, 30, 30, 30, 30, 30, 30, 30, 30, 30]), ((256, (128, 1), 'single', True), [762, 767, 766, 765, 765, 765, 764, 766, 767, 764]), ((256, (128, 1), 'single', False), [726, 730, 725, 723, 725, 721, 726, 720, 727, 717]), ((256, (128, 1), 'double', True), [311, 311, 311, 311, 312, 311, 312, 312, 311, 312]), ((256, (128, 1), 'double', False), [32, 30, 30, 30, 30, 30, 30, 30, 30, 28]), ((256, (256, 1), 'single', True), [768, 766, 771, 769, 772, 768, 773, 769, 774, 766]), ((256, (256, 1), 'single', False), [733, 736, 733, 732, 732, 732, 731, 732, 731, 735]), ((256, (256, 1), 'double', True), [309, 310, 310, 310, 309, 310, 310, 310, 309, 310]), ((256, (256, 1), 'double', False), [31, 30, 29, 29, 29, 29, 29, 29, 29, 29]), ((512, (16, 1), 'single', True), [822, 824, 826, 824, 824, 824, 824, 823, 823, 824]), ((512, (16, 1), 'single', False), [490, 481, 470, 460, 452, 448, 448, 448, 448, 448]), ((512, (16, 1), 'double', True), [163, 163, 163, 163, 163, 163, 163, 163, 163, 163]), ((512, (16, 1), 'double', False), [17, 16, 15, 15, 15, 15, 15, 15, 15, 15]), ((512, (32, 1), 'single', True), [812, 829, 832, 832, 832, 834, 831, 831, 831, 831]), ((512, (32, 1), 'single', False), [822, 825, 826, 827, 827, 826, 826, 828, 826, 825]), ((512, (32, 1), 'double', True), [319, 323, 323, 323, 323, 323, 316, 323, 320, 323]), ((512, (32, 1), 'double', False), [33, 32, 31, 30, 30, 30, 30, 30, 30, 30]), ((512, (64, 1), 'single', True), [821, 825, 825, 825, 825, 826, 826, 825, 829, 825]), ((512, (64, 1), 'single', False), [806, 804, 803, 802, 802, 800, 799, 800, 800, 800]), ((512, (64, 1), 'double', True), [322, 323, 323, 323, 323, 323, 323, 323, 323, 323]), ((512, (64, 1), 'double', False), [33, 32, 31, 30, 30, 30, 30, 30, 30, 30]), ((512, (128, 1), 'single', True), [823, 825, 825, 826, 828, 825, 824, 825, 825, 824]), ((512, (128, 1), 'single', False), [803, 805, 804, 804, 803, 801, 801, 801, 801, 801]), ((512, (128, 1), 'double', True), [323, 323, 323, 319, 323, 323, 323, 323, 323, 323]), ((512, (128, 1), 'double', False), [33, 32, 31, 30, 30, 30, 30, 30, 30, 30]), ((512, (256, 1), 'single', True), [828, 827, 827, 826, 825, 827, 827, 828, 826, 827]), ((512, (256, 1), 'single', False), [808, 810, 809, 809, 809, 806, 807, 807, 807, 807]), ((512, (256, 1), 'double', True), [323, 323, 323, 323, 323, 323, 323, 323, 323, 319]), ((512, (256, 1), 'double', False), [33, 32, 30, 30, 30, 30, 30, 30, 30, 30]), ((512, (512, 1), 'single', True), [826, 826, 826, 827, 827, 826, 827, 827, 827, 815]), ((512, (512, 1), 'single', False), [815, 813, 813, 812, 812, 810, 811, 810, 785, 810]), ((512, (512, 1), 'double', True), [317, 317, 313, 317, 317, 317, 317, 317, 317, 317]), ((512, (512, 1), 'double', False), [33, 31, 30, 30, 30, 30, 30, 30, 30, 30]), ((1024, (16, 1), 'single', True), [826, 829, 829, 829, 829, 828, 823, 829, 829, 830]), ((1024, (16, 1), 'single', False), [498, 494, 489, 484, 476, 473, 469, 464, 458, 455]), ((1024, (16, 1), 'double', True), [163, 163, 163, 163, 163, 163, 163, 163, 163, 163]), ((1024, (16, 1), 'double', False), [17, 17, 16, 16, 15, 15, 15, 15, 15, 15]), ((1024, (32, 1), 'single', True), [842, 842, 844, 843, 843, 843, 844, 836, 843, 843]), ((1024, (32, 1), 'single', False), [830, 838, 837, 838, 838, 838, 838, 838, 831, 838]), ((1024, (32, 1), 'double', True), [325, 326, 326, 325, 326, 326, 325, 326, 326, 326]), ((1024, (32, 1), 'double', False), [34, 33, 32, 32, 31, 30, 30, 30, 30, 30]), ((1024, (64, 1), 'single', True), [827, 830, 831, 830, 832, 824, 831, 830, 831, 831]), ((1024, (64, 1), 'single', False), [816, 816, 816, 815, 814, 814, 809, 811, 812, 812]), ((1024, (64, 1), 'double', True), [326, 326, 326, 325, 326, 326, 325, 326, 326, 325]), ((1024, (64, 1), 'double', False), [34, 33, 32, 32, 31, 30, 30, 30, 30, 30]), ((1024, (128, 1), 'single', True), [826, 830, 831, 830, 824, 829, 830, 830, 830, 831]), ((1024, (128, 1), 'single', False), [815, 816, 816, 815, 814, 809, 811, 813, 811, 812]), ((1024, (128, 1), 'double', True), [326, 326, 325, 326, 326, 325, 326, 326, 326, 325]), ((1024, (128, 1), 'double', False), [34, 33, 32, 32, 31, 30, 30, 30, 30, 30]), ((1024, (256, 1), 'single', True), [830, 833, 827, 833, 834, 833, 834, 833, 834, 832]), ((1024, (256, 1), 'single', False), [823, 824, 823, 822, 816, 821, 821, 821, 820, 820]), ((1024, (256, 1), 'double', True), [326, 325, 326, 326, 326, 325, 326, 326, 325, 326]), ((1024, (256, 1), 'double', False), [34, 33, 32, 32, 31, 30, 30, 30, 30, 30]), ((1024, (512, 1), 'single', True), [832, 825, 834, 835, 834, 835, 834, 835, 834, 828]), ((1024, (512, 1), 'single', False), [827, 827, 826, 820, 826, 826, 826, 825, 826, 825]), ((1024, (512, 1), 'double', True), [322, 321, 322, 322, 322, 322, 322, 322, 321, 322]), ((1024, (512, 1), 'double', False), [33, 33, 32, 31, 31, 30, 30, 30, 30, 30]), ((1024, (1024, 1), 'single', True), [832, 833, 834, 833, 834, 833, 834, 826, 833, 834]), ((1024, (1024, 1), 'single', False), [827, 819, 824, 821, 818, 815, 813, 811, 810, 800]), ((1024, (1024, 1), 'double', True), [298, 299, 299, 298, 299, 299, 298, 299, 299, 298]), ((1024, (1024, 1), 'double', False), [33, 32, 32, 31, 30, 30, 30, 30, 30, 30])]
\ No newline at end of file diff --git a/result/ldc_2d_benchmark.k2200.log b/result/ldc_2d_benchmark.k2200.log new file mode 100644 index 0000000..b88df82 --- /dev/null +++ b/result/ldc_2d_benchmark.k2200.log @@ -0,0 +1,128 @@ +(32, (16, 1), 'single', True): ~15 MLUPS +(32, (16, 1), 'single', False): ~16 MLUPS +(32, (16, 1), 'double', True): ~16 MLUPS +(32, (16, 1), 'double', False): ~13 MLUPS +(32, (32, 1), 'single', True): ~16 MLUPS +(32, (32, 1), 'single', False): ~16 MLUPS +(32, (32, 1), 'double', True): ~15 MLUPS +(32, (32, 1), 'double', False): ~14 MLUPS +(64, (16, 1), 'single', True): ~63 MLUPS +(64, (16, 1), 'single', False): ~63 MLUPS +(64, (16, 1), 'double', True): ~62 MLUPS +(64, (16, 1), 'double', False): ~13 MLUPS +(64, (32, 1), 'single', True): ~63 MLUPS +(64, (32, 1), 'single', False): ~63 MLUPS +(64, (32, 1), 'double', True): ~62 MLUPS +(64, (32, 1), 'double', False): ~27 MLUPS +(64, (64, 1), 'single', True): ~62 MLUPS +(64, (64, 1), 'single', False): ~62 MLUPS +(64, (64, 1), 'double', True): ~63 MLUPS +(64, (64, 1), 'double', False): ~27 MLUPS +(96, (16, 1), 'single', True): ~134 MLUPS +(96, (16, 1), 'single', False): ~141 MLUPS +(96, (16, 1), 'double', True): ~140 MLUPS +(96, (16, 1), 'double', False): ~15 MLUPS +(96, (24, 1), 'single', True): ~141 MLUPS +(96, (24, 1), 'single', False): ~140 MLUPS +(96, (24, 1), 'double', True): ~139 MLUPS +(96, (24, 1), 'double', False): ~21 MLUPS +(96, (32, 1), 'single', True): ~139 MLUPS +(96, (32, 1), 'single', False): ~136 MLUPS +(96, (32, 1), 'double', True): ~139 MLUPS +(96, (32, 1), 'double', False): ~28 MLUPS +(96, (48, 1), 'single', True): ~141 MLUPS +(96, (48, 1), 'single', False): ~141 MLUPS +(96, (48, 1), 'double', True): ~141 MLUPS +(96, (48, 1), 'double', False): ~21 MLUPS +(96, (96, 1), 'single', True): ~140 MLUPS +(96, (96, 1), 'single', False): ~141 MLUPS +(96, (96, 1), 'double', True): ~141 MLUPS +(96, (96, 1), 'double', False): ~28 MLUPS +(128, (16, 1), 'single', True): ~253 MLUPS +(128, (16, 1), 'single', False): ~252 MLUPS +(128, (16, 1), 'double', True): ~151 MLUPS +(128, (16, 1), 'double', False): ~15 MLUPS +(128, (32, 1), 'single', True): ~234 MLUPS +(128, (32, 1), 'single', False): ~251 MLUPS +(128, (32, 1), 'double', True): ~250 MLUPS +(128, (32, 1), 'double', False): ~29 MLUPS +(128, (64, 1), 'single', True): ~252 MLUPS +(128, (64, 1), 'single', False): ~252 MLUPS +(128, (64, 1), 'double', True): ~249 MLUPS +(128, (64, 1), 'double', False): ~29 MLUPS +(128, (128, 1), 'single', True): ~252 MLUPS +(128, (128, 1), 'single', False): ~250 MLUPS +(128, (128, 1), 'double', True): ~249 MLUPS +(128, (128, 1), 'double', False): ~28 MLUPS +(256, (16, 1), 'single', True): ~789 MLUPS +(256, (16, 1), 'single', False): ~430 MLUPS +(256, (16, 1), 'double', True): ~160 MLUPS +(256, (16, 1), 'double', False): ~15 MLUPS +(256, (32, 1), 'single', True): ~781 MLUPS +(256, (32, 1), 'single', False): ~766 MLUPS +(256, (32, 1), 'double', True): ~312 MLUPS +(256, (32, 1), 'double', False): ~30 MLUPS +(256, (64, 1), 'single', True): ~766 MLUPS +(256, (64, 1), 'single', False): ~721 MLUPS +(256, (64, 1), 'double', True): ~311 MLUPS +(256, (64, 1), 'double', False): ~30 MLUPS +(256, (128, 1), 'single', True): ~765 MLUPS +(256, (128, 1), 'single', False): ~724 MLUPS +(256, (128, 1), 'double', True): ~311 MLUPS +(256, (128, 1), 'double', False): ~30 MLUPS +(256, (256, 1), 'single', True): ~769 MLUPS +(256, (256, 1), 'single', False): ~732 MLUPS +(256, (256, 1), 'double', True): ~309 MLUPS +(256, (256, 1), 'double', False): ~29 MLUPS +(512, (16, 1), 'single', True): ~823 MLUPS +(512, (16, 1), 'single', False): ~459 MLUPS +(512, (16, 1), 'double', True): ~163 MLUPS +(512, (16, 1), 'double', False): ~15 MLUPS +(512, (32, 1), 'single', True): ~829 MLUPS +(512, (32, 1), 'single', False): ~825 MLUPS +(512, (32, 1), 'double', True): ~321 MLUPS +(512, (32, 1), 'double', False): ~30 MLUPS +(512, (64, 1), 'single', True): ~825 MLUPS +(512, (64, 1), 'single', False): ~801 MLUPS +(512, (64, 1), 'double', True): ~322 MLUPS +(512, (64, 1), 'double', False): ~30 MLUPS +(512, (128, 1), 'single', True): ~825 MLUPS +(512, (128, 1), 'single', False): ~802 MLUPS +(512, (128, 1), 'double', True): ~322 MLUPS +(512, (128, 1), 'double', False): ~30 MLUPS +(512, (256, 1), 'single', True): ~826 MLUPS +(512, (256, 1), 'single', False): ~807 MLUPS +(512, (256, 1), 'double', True): ~322 MLUPS +(512, (256, 1), 'double', False): ~30 MLUPS +(512, (512, 1), 'single', True): ~825 MLUPS +(512, (512, 1), 'single', False): ~809 MLUPS +(512, (512, 1), 'double', True): ~316 MLUPS +(512, (512, 1), 'double', False): ~30 MLUPS +(1024, (16, 1), 'single', True): ~828 MLUPS +(1024, (16, 1), 'single', False): ~476 MLUPS +(1024, (16, 1), 'double', True): ~163 MLUPS +(1024, (16, 1), 'double', False): ~15 MLUPS +(1024, (32, 1), 'single', True): ~842 MLUPS +(1024, (32, 1), 'single', False): ~836 MLUPS +(1024, (32, 1), 'double', True): ~325 MLUPS +(1024, (32, 1), 'double', False): ~31 MLUPS +(1024, (64, 1), 'single', True): ~829 MLUPS +(1024, (64, 1), 'single', False): ~813 MLUPS +(1024, (64, 1), 'double', True): ~325 MLUPS +(1024, (64, 1), 'double', False): ~31 MLUPS +(1024, (128, 1), 'single', True): ~829 MLUPS +(1024, (128, 1), 'single', False): ~813 MLUPS +(1024, (128, 1), 'double', True): ~325 MLUPS +(1024, (128, 1), 'double', False): ~31 MLUPS +(1024, (256, 1), 'single', True): ~832 MLUPS +(1024, (256, 1), 'single', False): ~821 MLUPS +(1024, (256, 1), 'double', True): ~325 MLUPS +(1024, (256, 1), 'double', False): ~31 MLUPS +(1024, (512, 1), 'single', True): ~832 MLUPS +(1024, (512, 1), 'single', False): ~825 MLUPS +(1024, (512, 1), 'double', True): ~321 MLUPS +(1024, (512, 1), 'double', False): ~31 MLUPS +(1024, (1024, 1), 'single', True): ~832 MLUPS +(1024, (1024, 1), 'single', False): ~815 MLUPS +(1024, (1024, 1), 'double', True): ~298 MLUPS +(1024, (1024, 1), 'double', False): ~30 MLUPS diff --git a/result/ldc_3d_benchmark.k2200.data b/result/ldc_3d_benchmark.k2200.data new file mode 100644 index 0000000..95150a7 --- /dev/null +++ b/result/ldc_3d_benchmark.k2200.data @@ -0,0 +1 @@ +[((16, (16, 1, 1), 'symbolic.D3Q19', 'single', True), [58, 60, 60, 60, 60, 60, 60, 60, 59, 60]), ((16, (16, 1, 1), 'symbolic.D3Q19', 'single', False), [59, 60, 60, 60, 60, 60, 60, 60, 60, 60]), ((16, (16, 1, 1), 'symbolic.D3Q19', 'double', True), [58, 59, 59, 59, 59, 60, 59, 59, 60, 59]), ((16, (16, 1, 1), 'symbolic.D3Q19', 'double', False), [8, 8, 8, 8, 8, 9, 9, 9, 9, 9]), ((16, (16, 1, 1), 'symbolic.D3Q27', 'single', True), [59, 60, 60, 59, 60, 60, 60, 60, 60, 60]), ((16, (16, 1, 1), 'symbolic.D3Q27', 'single', False), [59, 60, 60, 60, 60, 59, 59, 59, 59, 60]), ((16, (16, 1, 1), 'symbolic.D3Q27', 'double', True), [55, 55, 55, 55, 55, 56, 55, 55, 55, 55]), ((16, (16, 1, 1), 'symbolic.D3Q27', 'double', False), [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), ((32, (16, 1, 1), 'symbolic.D3Q19', 'single', True), [408, 411, 411, 411, 409, 411, 410, 411, 409, 412]), ((32, (16, 1, 1), 'symbolic.D3Q19', 'single', False), [166, 173, 173, 173, 173, 173, 173, 173, 173, 173]), ((32, (16, 1, 1), 'symbolic.D3Q19', 'double', True), [86, 86, 85, 86, 86, 86, 86, 86, 86, 86]), ((32, (16, 1, 1), 'symbolic.D3Q19', 'double', False), [8, 7, 8, 7, 7, 7, 7, 7, 7, 7]), ((32, (16, 1, 1), 'symbolic.D3Q27', 'single', True), [288, 287, 287, 288, 287, 288, 289, 287, 287, 289]), ((32, (16, 1, 1), 'symbolic.D3Q27', 'single', False), [111, 111, 111, 111, 111, 111, 111, 111, 111, 111]), ((32, (16, 1, 1), 'symbolic.D3Q27', 'double', True), [61, 61, 60, 60, 61, 61, 61, 61, 61, 61]), ((32, (16, 1, 1), 'symbolic.D3Q27', 'double', False), [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), ((32, (32, 1, 1), 'symbolic.D3Q19', 'single', True), [417, 419, 420, 418, 421, 418, 421, 419, 422, 419]), ((32, (32, 1, 1), 'symbolic.D3Q19', 'single', False), [313, 314, 313, 313, 313, 313, 313, 313, 313, 313]), ((32, (32, 1, 1), 'symbolic.D3Q19', 'double', True), [162, 162, 162, 162, 162, 162, 162, 162, 162, 162]), ((32, (32, 1, 1), 'symbolic.D3Q19', 'double', False), [15, 15, 15, 15, 15, 15, 15, 15, 15, 15]), ((32, (32, 1, 1), 'symbolic.D3Q27', 'single', True), [303, 304, 301, 303, 304, 301, 303, 303, 302, 303]), ((32, (32, 1, 1), 'symbolic.D3Q27', 'single', False), [202, 202, 202, 202, 202, 202, 202, 202, 202, 201]), ((32, (32, 1, 1), 'symbolic.D3Q27', 'double', True), [115, 115, 115, 115, 115, 115, 115, 115, 115, 115]), ((32, (32, 1, 1), 'symbolic.D3Q27', 'double', False), [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]), ((48, (16, 1, 1), 'symbolic.D3Q19', 'single', True), [402, 400, 402, 402, 401, 402, 402, 401, 402, 402]), ((48, (16, 1, 1), 'symbolic.D3Q19', 'single', False), [177, 175, 176, 175, 175, 175, 176, 175, 175, 175]), ((48, (16, 1, 1), 'symbolic.D3Q19', 'double', True), [83, 83, 83, 83, 83, 83, 83, 83, 83, 83]), ((48, (16, 1, 1), 'symbolic.D3Q19', 'double', False), [7, 7, 7, 7, 7, 7, 7, 7, 7, 7]), ((48, (16, 1, 1), 'symbolic.D3Q27', 'single', True), [279, 274, 279, 279, 279, 279, 280, 279, 279, 279]), ((48, (16, 1, 1), 'symbolic.D3Q27', 'single', False), [110, 110, 110, 110, 109, 110, 110, 110, 110, 109]), ((48, (16, 1, 1), 'symbolic.D3Q27', 'double', True), [59, 59, 59, 59, 59, 59, 59, 59, 59, 59]), ((48, (16, 1, 1), 'symbolic.D3Q27', 'double', False), [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]), ((48, (24, 1, 1), 'symbolic.D3Q19', 'single', True), [406, 407, 408, 406, 407, 407, 406, 407, 407, 407]), ((48, (24, 1, 1), 'symbolic.D3Q19', 'single', False), [254, 253, 253, 253, 253, 253, 253, 253, 253, 253]), ((48, (24, 1, 1), 'symbolic.D3Q19', 'double', True), [125, 125, 125, 125, 125, 125, 125, 125, 125, 125]), ((48, (24, 1, 1), 'symbolic.D3Q19', 'double', False), [11, 11, 11, 11, 11, 11, 11, 11, 11, 11]), ((48, (24, 1, 1), 'symbolic.D3Q27', 'single', True), [288, 289, 288, 289, 289, 288, 288, 289, 288, 289]), ((48, (24, 1, 1), 'symbolic.D3Q27', 'single', False), [159, 159, 159, 159, 159, 159, 158, 158, 158, 158]), ((48, (24, 1, 1), 'symbolic.D3Q27', 'double', True), [88, 88, 88, 88, 88, 88, 88, 88, 88, 88]), ((48, (24, 1, 1), 'symbolic.D3Q27', 'double', False), [7, 7, 7, 7, 7, 7, 7, 7, 7, 7]), ((48, (48, 1, 1), 'symbolic.D3Q19', 'single', True), [405, 406, 406, 406, 406, 406, 405, 406, 406, 405]), ((48, (48, 1, 1), 'symbolic.D3Q19', 'single', False), [255, 254, 254, 254, 254, 254, 254, 254, 254, 254]), ((48, (48, 1, 1), 'symbolic.D3Q19', 'double', True), [125, 125, 125, 125, 125, 125, 125, 125, 125, 125]), ((48, (48, 1, 1), 'symbolic.D3Q19', 'double', False), [11, 11, 11, 11, 11, 11, 11, 11, 11, 11]), ((48, (48, 1, 1), 'symbolic.D3Q27', 'single', True), [288, 288, 288, 288, 288, 288, 288, 288, 289, 288]), ((48, (48, 1, 1), 'symbolic.D3Q27', 'single', False), [160, 160, 160, 160, 160, 160, 160, 160, 160, 160]), ((48, (48, 1, 1), 'symbolic.D3Q27', 'double', True), [88, 88, 88, 88, 88, 88, 88, 87, 81, 81]), ((48, (48, 1, 1), 'symbolic.D3Q27', 'double', False), [7, 7, 7, 7, 7, 7, 7, 7, 7, 7]), ((64, (16, 1, 1), 'symbolic.D3Q19', 'single', True), [409, 409, 409, 409, 410, 409, 409, 409, 409, 409]), ((64, (16, 1, 1), 'symbolic.D3Q19', 'single', False), [166, 164, 164, 165, 165, 165, 165, 164, 157, 154]), ((64, (16, 1, 1), 'symbolic.D3Q19', 'double', True), [83, 83, 83, 83, 83, 83, 82, 83, 82, 83]), ((64, (16, 1, 1), 'symbolic.D3Q19', 'double', False), [7, 7, 7, 7, 7, 7, 7, 7, 7, 7]), ((64, (16, 1, 1), 'symbolic.D3Q27', 'single', True), [282, 282, 282, 282, 282, 282, 282, 282, 282, 282]), ((64, (16, 1, 1), 'symbolic.D3Q27', 'single', False), [100, 100, 100, 100, 99, 100, 100, 100, 100, 100]), ((64, (16, 1, 1), 'symbolic.D3Q27', 'double', True), [58, 58, 58, 58, 58, 58, 58, 58, 58, 58]), ((64, (16, 1, 1), 'symbolic.D3Q27', 'double', False), [5, 4, 4, 4, 4, 4, 4, 4, 4, 4]), ((64, (32, 1, 1), 'symbolic.D3Q19', 'single', True), [423, 424, 422, 423, 423, 423, 422, 423, 424, 423]), ((64, (32, 1, 1), 'symbolic.D3Q19', 'single', False), [328, 327, 327, 327, 327, 327, 327, 327, 327, 327]), ((64, (32, 1, 1), 'symbolic.D3Q19', 'double', True), [164, 164, 164, 164, 164, 164, 164, 164, 164, 164]), ((64, (32, 1, 1), 'symbolic.D3Q19', 'double', False), [14, 14, 14, 14, 14, 14, 14, 14, 14, 14]), ((64, (32, 1, 1), 'symbolic.D3Q27', 'single', True), [297, 297, 297, 297, 297, 297, 296, 297, 297, 296]), ((64, (32, 1, 1), 'symbolic.D3Q27', 'single', False), [205, 205, 205, 205, 205, 205, 205, 205, 205, 205]), ((64, (32, 1, 1), 'symbolic.D3Q27', 'double', True), [116, 116, 116, 116, 116, 116, 116, 116, 116, 116]), ((64, (32, 1, 1), 'symbolic.D3Q27', 'double', False), [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]), ((64, (64, 1, 1), 'symbolic.D3Q19', 'single', True), [422, 422, 422, 422, 422, 422, 421, 422, 422, 423]), ((64, (64, 1, 1), 'symbolic.D3Q19', 'single', False), [327, 326, 326, 326, 326, 326, 326, 326, 326, 326]), ((64, (64, 1, 1), 'symbolic.D3Q19', 'double', True), [164, 164, 164, 164, 164, 164, 164, 164, 164, 164]), ((64, (64, 1, 1), 'symbolic.D3Q19', 'double', False), [14, 14, 14, 14, 14, 14, 14, 14, 14, 14]), ((64, (64, 1, 1), 'symbolic.D3Q27', 'single', True), [296, 297, 297, 297, 297, 297, 297, 297, 297, 297]), ((64, (64, 1, 1), 'symbolic.D3Q27', 'single', False), [204, 204, 204, 204, 204, 204, 204, 204, 204, 204]), ((64, (64, 1, 1), 'symbolic.D3Q27', 'double', True), [116, 116, 116, 116, 116, 116, 116, 116, 116, 116]), ((64, (64, 1, 1), 'symbolic.D3Q27', 'double', False), [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]), ((96, (16, 1, 1), 'symbolic.D3Q19', 'single', True), [398, 398, 398, 398, 398, 398, 398, 398, 398, 398]), ((96, (16, 1, 1), 'symbolic.D3Q19', 'single', False), [176, 171, 171, 171, 171, 171, 171, 171, 171, 171]), ((96, (16, 1, 1), 'symbolic.D3Q19', 'double', True), [81, 81, 81, 81, 81, 81, 81, 81, 81, 81]), ((96, (16, 1, 1), 'symbolic.D3Q19', 'double', False), [7, 7, 7, 7, 7, 7, 7, 7, 7, 7]), ((96, (16, 1, 1), 'symbolic.D3Q27', 'single', True), [273, 273, 273, 273, 273, 273, 273, 273, 273, 273]), ((96, (16, 1, 1), 'symbolic.D3Q27', 'single', False), [107, 107, 107, 107, 107, 107, 107, 107, 107, 107]), ((96, (16, 1, 1), 'symbolic.D3Q27', 'double', True), [57, 57, 57, 57, 57, 57, 57, 57, 57, 57]), ((96, (16, 1, 1), 'symbolic.D3Q27', 'double', False), [4, 4, 4, 4, 4, 4, 4, 4, 4, 4]), ((96, (24, 1, 1), 'symbolic.D3Q19', 'single', True), [402, 402, 402, 402, 402, 402, 403, 402, 402, 402]), ((96, (24, 1, 1), 'symbolic.D3Q19', 'single', False), [238, 236, 236, 235, 235, 236, 236, 236, 235, 236]), ((96, (24, 1, 1), 'symbolic.D3Q19', 'double', True), [121, 121, 121, 121, 121, 121, 121, 121, 121, 121]), ((96, (24, 1, 1), 'symbolic.D3Q19', 'double', False), [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]), ((96, (24, 1, 1), 'symbolic.D3Q27', 'single', True), [281, 282, 282, 282, 282, 282, 282, 282, 282, 282]), ((96, (24, 1, 1), 'symbolic.D3Q27', 'single', False), [144, 144, 144, 144, 144, 144, 144, 144, 144, 144]), ((96, (24, 1, 1), 'symbolic.D3Q27', 'double', True), [86, 86, 86, 86, 86, 86, 86, 86, 86, 86]), ((96, (24, 1, 1), 'symbolic.D3Q27', 'double', False), [7, 6, 6, 6, 6, 6, 6, 6, 6, 6]), ((96, (32, 1, 1), 'symbolic.D3Q19', 'single', True), [411, 411, 411, 411, 411, 412, 411, 411, 411, 411]), ((96, (32, 1, 1), 'symbolic.D3Q19', 'single', False), [332, 328, 328, 328, 328, 328, 328, 328, 328, 328]), ((96, (32, 1, 1), 'symbolic.D3Q19', 'double', True), [161, 161, 161, 161, 161, 161, 161, 161, 161, 161]), ((96, (32, 1, 1), 'symbolic.D3Q19', 'double', False), [14, 13, 13, 13, 13, 13, 13, 13, 13, 13]), ((96, (32, 1, 1), 'symbolic.D3Q27', 'single', True), [288, 288, 288, 288, 288, 288, 288, 288, 288, 288]), ((96, (32, 1, 1), 'symbolic.D3Q27', 'single', False), [205, 205, 205, 205, 205, 205, 205, 205, 205, 205]), ((96, (32, 1, 1), 'symbolic.D3Q27', 'double', True), [114, 114, 114, 114, 114, 114, 114, 114, 114, 114]), ((96, (32, 1, 1), 'symbolic.D3Q27', 'double', False), [9, 9, 9, 9, 9, 9, 9, 9, 9, 9]), ((96, (48, 1, 1), 'symbolic.D3Q19', 'single', True), [401, 401, 401, 401, 401, 401, 401, 401, 401, 401]), ((96, (48, 1, 1), 'symbolic.D3Q19', 'single', False), [247, 246, 246, 246, 246, 246, 246, 246, 246, 246]), ((96, (48, 1, 1), 'symbolic.D3Q19', 'double', True), [122, 122, 122, 122, 122, 122, 122, 122, 122, 122]), ((96, (48, 1, 1), 'symbolic.D3Q19', 'double', False), [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]), ((96, (48, 1, 1), 'symbolic.D3Q27', 'single', True), [282, 282, 282, 282, 282, 282, 282, 282, 282, 282]), ((96, (48, 1, 1), 'symbolic.D3Q27', 'single', False), [155, 155, 155, 155, 155, 155, 155, 155, 155, 155]), ((96, (48, 1, 1), 'symbolic.D3Q27', 'double', True), [86, 86, 86, 86, 86, 86, 86, 86, 86, 86]), ((96, (48, 1, 1), 'symbolic.D3Q27', 'double', False), [7, 6, 6, 6, 6, 6, 6, 6, 6, 6]), ((96, (96, 1, 1), 'symbolic.D3Q19', 'single', True), [408, 410, 409, 410, 408, 410, 409, 410, 410, 409]), ((96, (96, 1, 1), 'symbolic.D3Q19', 'single', False), [333, 327, 326, 327, 326, 327, 326, 327, 327, 327]), ((96, (96, 1, 1), 'symbolic.D3Q19', 'double', True), [162, 162, 162, 162, 162, 162, 162, 162, 162, 162]), ((96, (96, 1, 1), 'symbolic.D3Q19', 'double', False), [13, 13, 13, 13, 13, 13, 13, 13, 13, 13]), ((96, (96, 1, 1), 'symbolic.D3Q27', 'single', True), [288, 289, 288, 288, 288, 289, 289, 289, 288, 289]), ((96, (96, 1, 1), 'symbolic.D3Q27', 'single', False), [206, 206, 206, 206, 206, 206, 206, 206, 206, 206]), ((96, (96, 1, 1), 'symbolic.D3Q27', 'double', True), [114, 114, 114, 114, 114, 114, 114, 114, 114, 114]), ((96, (96, 1, 1), 'symbolic.D3Q27', 'double', False), [9, 9, 9, 9, 9, 9, 9, 9, 9, 9])]
\ No newline at end of file diff --git a/result/ldc_3d_benchmark.k2200.log b/result/ldc_3d_benchmark.k2200.log new file mode 100644 index 0000000..7626f87 --- /dev/null +++ b/result/ldc_3d_benchmark.k2200.log @@ -0,0 +1,112 @@ +(16, (16, 1, 1), 'symbolic.D3Q19', 'single', True): ~59 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q19', 'single', False): ~59 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q19', 'double', True): ~59 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q19', 'double', False): ~8 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q27', 'single', True): ~59 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q27', 'single', False): ~59 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q27', 'double', True): ~55 MLUPS +(16, (16, 1, 1), 'symbolic.D3Q27', 'double', False): ~5 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q19', 'single', True): ~410 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q19', 'single', False): ~172 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q19', 'double', True): ~85 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q19', 'double', False): ~7 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q27', 'single', True): ~287 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q27', 'single', False): ~111 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q27', 'double', True): ~60 MLUPS +(32, (16, 1, 1), 'symbolic.D3Q27', 'double', False): ~5 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q19', 'single', True): ~419 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q19', 'single', False): ~313 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q19', 'double', True): ~162 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q19', 'double', False): ~15 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q27', 'single', True): ~302 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q27', 'single', False): ~201 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q27', 'double', True): ~115 MLUPS +(32, (32, 1, 1), 'symbolic.D3Q27', 'double', False): ~10 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q19', 'single', True): ~401 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q19', 'single', False): ~175 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q19', 'double', True): ~83 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q19', 'double', False): ~7 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q27', 'single', True): ~278 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q27', 'single', False): ~109 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q27', 'double', True): ~59 MLUPS +(48, (16, 1, 1), 'symbolic.D3Q27', 'double', False): ~5 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q19', 'single', True): ~406 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q19', 'single', False): ~253 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q19', 'double', True): ~125 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q19', 'double', False): ~11 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q27', 'single', True): ~288 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q27', 'single', False): ~158 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q27', 'double', True): ~88 MLUPS +(48, (24, 1, 1), 'symbolic.D3Q27', 'double', False): ~7 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q19', 'single', True): ~405 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q19', 'single', False): ~254 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q19', 'double', True): ~125 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q19', 'double', False): ~11 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q27', 'single', True): ~288 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q27', 'single', False): ~160 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q27', 'double', True): ~86 MLUPS +(48, (48, 1, 1), 'symbolic.D3Q27', 'double', False): ~7 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q19', 'single', True): ~409 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q19', 'single', False): ~162 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q19', 'double', True): ~82 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q19', 'double', False): ~7 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q27', 'single', True): ~282 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q27', 'single', False): ~99 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q27', 'double', True): ~58 MLUPS +(64, (16, 1, 1), 'symbolic.D3Q27', 'double', False): ~4 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q19', 'single', True): ~423 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q19', 'single', False): ~327 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q19', 'double', True): ~164 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q19', 'double', False): ~14 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q27', 'single', True): ~296 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q27', 'single', False): ~205 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q27', 'double', True): ~116 MLUPS +(64, (32, 1, 1), 'symbolic.D3Q27', 'double', False): ~9 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q19', 'single', True): ~422 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q19', 'single', False): ~326 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q19', 'double', True): ~164 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q19', 'double', False): ~14 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q27', 'single', True): ~296 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q27', 'single', False): ~204 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q27', 'double', True): ~116 MLUPS +(64, (64, 1, 1), 'symbolic.D3Q27', 'double', False): ~9 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q19', 'single', True): ~398 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q19', 'single', False): ~171 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q19', 'double', True): ~81 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q19', 'double', False): ~7 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q27', 'single', True): ~273 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q27', 'single', False): ~107 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q27', 'double', True): ~57 MLUPS +(96, (16, 1, 1), 'symbolic.D3Q27', 'double', False): ~4 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q19', 'single', True): ~402 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q19', 'single', False): ~235 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q19', 'double', True): ~121 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q19', 'double', False): ~10 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q27', 'single', True): ~281 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q27', 'single', False): ~144 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q27', 'double', True): ~86 MLUPS +(96, (24, 1, 1), 'symbolic.D3Q27', 'double', False): ~6 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q19', 'single', True): ~411 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q19', 'single', False): ~328 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q19', 'double', True): ~161 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q19', 'double', False): ~13 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q27', 'single', True): ~288 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q27', 'single', False): ~205 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q27', 'double', True): ~114 MLUPS +(96, (32, 1, 1), 'symbolic.D3Q27', 'double', False): ~9 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q19', 'single', True): ~401 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q19', 'single', False): ~246 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q19', 'double', True): ~122 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q19', 'double', False): ~10 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q27', 'single', True): ~282 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q27', 'single', False): ~155 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q27', 'double', True): ~86 MLUPS +(96, (48, 1, 1), 'symbolic.D3Q27', 'double', False): ~6 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q19', 'single', True): ~409 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q19', 'single', False): ~327 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q19', 'double', True): ~162 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q19', 'double', False): ~13 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q27', 'single', True): ~288 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q27', 'single', False): ~206 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q27', 'double', True): ~114 MLUPS +(96, (96, 1, 1), 'symbolic.D3Q27', 'double', False): ~9 MLUPS |