aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-07-01 22:28:27 +0200
committerAdrian Kummerlaender2019-07-01 22:28:27 +0200
commitf62fcf3e47919b1c893ac2335b9fdfb842f9595f (patch)
treefaa159ffca2c1401b6eb6f5290c12a0401978f57
parent3ab16a1ac79e0781563c7564cd678a8c87474486 (diff)
downloadsymlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar.gz
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar.bz2
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar.lz
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar.xz
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.tar.zst
symlbm_playground-f62fcf3e47919b1c893ac2335b9fdfb842f9595f.zip
Expand LDC benchmark scripts
-rw-r--r--ldc_2d_benchmark.py46
-rw-r--r--ldc_3d_benchmark.py50
-rw-r--r--result/ldc_2d_benchmark_K2200.log442
-rw-r--r--result/ldc_2d_benchmark_K2200.py2
-rw-r--r--result/ldc_3d_benchmark_K2200.log412
-rw-r--r--result/ldc_3d_benchmark_K2200.py2
-rw-r--r--simulation.py5
7 files changed, 687 insertions, 272 deletions
diff --git a/ldc_2d_benchmark.py b/ldc_2d_benchmark.py
index af2dfa6..fd15e8d 100644
--- a/ldc_2d_benchmark.py
+++ b/ldc_2d_benchmark.py
@@ -36,44 +36,62 @@ boundary = Template("""
'lid_speed': lid_speed
})
-sizes = [32, 64, 96, 128, 256, 512, 1024]
+base_2_sizes = {32, 64, 128, 256, 512, 1024, 2048}
+base_10_sizes = {50, 100, 200, 400, 600, 800, 1000}
-precisions = [ 'single', 'double' ]
+precisions = {'single', 'double'}
-layouts = [
+base_2_layouts = {
( 16, 1),
- ( 24, 1),
( 32, 1),
- ( 48, 1),
( 64, 1),
- ( 96, 1),
( 128, 1),
( 256, 1),
( 512, 1),
(1024, 1),
-]
+}
+
+base_10_layouts = {
+ ( 10, 1),
+ ( 30, 1),
+ ( 50, 1),
+ ( 100, 1),
+ ( 200, 1)
+}
+
+base_2_configs = list(filter(
+ lambda config: config[0] % config[1][0] == 0,
+ itertools.product(*[base_2_sizes, base_2_layouts, precisions, {True, False}, {True}])
+))
+
+align_configs = list(filter(
+ lambda config: config[0] % config[1][0] == 0,
+ itertools.product(*[base_10_sizes, base_10_layouts, precisions, {True}, {True, False}])
+))
-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]])
+pad_configs = list(filter(
+ lambda config: config[0] - config[1][0] >= -100,
+ itertools.product(*[base_10_sizes, base_2_layouts, precisions, {True}, {True}])
))
lbm = LBM(D2Q9)
measurements = []
-for size, layout, precision, opti in configs:
+for size, layout, precision, opti, align in base_2_configs + align_configs + pad_configs:
lattice = Lattice(
descriptor = D2Q9,
geometry = Geometry(size, size),
precision = precision,
layout = layout,
+ padding = layout,
+ align = align,
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
+ nUpdates = 500
nStat = 100
stats = []
@@ -89,8 +107,8 @@ for size, layout, precision, opti in configs:
stats.append(mlups)
lastStat = time.time()
- print('%s: ~%d MLUPS' % ((size, layout, precision, opti), numpy.average(stats)))
- measurements.append(((size, layout, precision, opti), stats))
+ print('%s: ~%d MLUPS' % ((size, layout, precision, opti, align), numpy.average(stats)))
+ measurements.append(((size, layout, precision, opti, align), stats))
del lattice
with open('result/ldc_2d_benchmark.data', 'w') as f:
diff --git a/ldc_3d_benchmark.py b/ldc_3d_benchmark.py
index d066d87..5568c62 100644
--- a/ldc_3d_benchmark.py
+++ b/ldc_3d_benchmark.py
@@ -39,41 +39,61 @@ boundary = Template("""
'lid_speed': lid_speed
})
-sizes = [16, 32, 48, 64, 96]
+base_2_sizes = {16, 32, 48, 64, 96, 128}
+base_10_sizes = {10, 20, 40, 60, 80, 100}
-layouts = [
+base_2_layouts = {
( 16, 1, 1),
- ( 24, 1, 1),
( 32, 1, 1),
- ( 48, 1, 1),
( 64, 1, 1),
- ( 96, 1, 1)
-]
+ ( 96, 1, 1),
+ ( 128, 1, 1),
+}
-descriptors = [ D3Q19, D3Q27 ]
+base_10_layouts = {
+ ( 10, 1, 1),
+ ( 20, 1, 1),
+ ( 30, 1, 1),
+ ( 50, 1, 1),
+ ( 100, 1, 1)
+}
-precisions = [ 'single', 'double' ]
+descriptors = { D3Q19, D3Q27 }
-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]])
+precisions = { 'single', 'double' }
+
+base_2_configs = list(filter(
+ lambda config: config[0] % config[1][0] == 0,
+ itertools.product(*[base_2_sizes, base_2_layouts, descriptors, precisions, {True, False}, {True}])
+))
+
+align_configs = list(filter(
+ lambda config: config[0] % config[1][0] == 0,
+ itertools.product(*[base_10_sizes, base_10_layouts, descriptors, precisions, {True}, {True, False}])
+))
+
+pad_configs = list(filter(
+ lambda config: config[0] - config[1][0] >= -28,
+ itertools.product(*[base_10_sizes, base_2_layouts, descriptors, precisions, {True}, {True}])
))
measurements = []
-for size, layout, descriptor, precision, opti in configs:
+for size, layout, descriptor, precision, opti, align in base_2_configs + align_configs + pad_configs:
lbm = LBM(descriptor)
lattice = Lattice(
descriptor = descriptor,
geometry = Geometry(size, size, size),
precision = precision,
layout = layout,
+ padding = layout,
+ align = align,
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
+ nUpdates = 500
nStat = 100
stats = []
@@ -89,8 +109,8 @@ for size, layout, descriptor, precision, opti in configs:
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))
+ print('%s: ~%d MLUPS' % ((size, layout, descriptor.__name__, precision, opti, align), numpy.average(stats)))
+ measurements.append(((size, layout, descriptor.__name__, precision, opti, align), stats))
del lattice, lbm
with open('result/ldc_3d_benchmark.data', 'w') as f:
diff --git a/result/ldc_2d_benchmark_K2200.log b/result/ldc_2d_benchmark_K2200.log
index b88df82..c27b9dc 100644
--- a/result/ldc_2d_benchmark_K2200.log
+++ b/result/ldc_2d_benchmark_K2200.log
@@ -1,128 +1,314 @@
-(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
+(32, (32, 1), 'double', False, True): ~15 MLUPS
+(32, (32, 1), 'double', True, True): ~16 MLUPS
+(32, (32, 1), 'single', False, True): ~16 MLUPS
+(32, (32, 1), 'single', True, True): ~16 MLUPS
+(32, (16, 1), 'double', False, True): ~13 MLUPS
+(32, (16, 1), 'double', True, True): ~15 MLUPS
+(32, (16, 1), 'single', False, True): ~15 MLUPS
+(32, (16, 1), 'single', True, True): ~14 MLUPS
+(256, (256, 1), 'double', False, True): ~29 MLUPS
+(256, (256, 1), 'double', True, True): ~309 MLUPS
+(256, (256, 1), 'single', False, True): ~742 MLUPS
+(256, (256, 1), 'single', True, True): ~773 MLUPS
+(256, (32, 1), 'double', False, True): ~30 MLUPS
+(256, (32, 1), 'double', True, True): ~312 MLUPS
+(256, (32, 1), 'single', False, True): ~758 MLUPS
+(256, (32, 1), 'single', True, True): ~779 MLUPS
+(256, (64, 1), 'double', False, True): ~30 MLUPS
+(256, (64, 1), 'double', True, True): ~311 MLUPS
+(256, (64, 1), 'single', False, True): ~720 MLUPS
+(256, (64, 1), 'single', True, True): ~787 MLUPS
+(256, (128, 1), 'double', False, True): ~30 MLUPS
+(256, (128, 1), 'double', True, True): ~309 MLUPS
+(256, (128, 1), 'single', False, True): ~721 MLUPS
+(256, (128, 1), 'single', True, True): ~773 MLUPS
+(256, (16, 1), 'double', False, True): ~15 MLUPS
+(256, (16, 1), 'double', True, True): ~160 MLUPS
+(256, (16, 1), 'single', False, True): ~436 MLUPS
+(256, (16, 1), 'single', True, True): ~787 MLUPS
+(64, (32, 1), 'double', False, True): ~28 MLUPS
+(64, (32, 1), 'double', True, True): ~62 MLUPS
+(64, (32, 1), 'single', False, True): ~64 MLUPS
+(64, (32, 1), 'single', True, True): ~63 MLUPS
+(64, (64, 1), 'double', False, True): ~27 MLUPS
+(64, (64, 1), 'double', True, True): ~62 MLUPS
+(64, (64, 1), 'single', False, True): ~57 MLUPS
+(64, (64, 1), 'single', True, True): ~63 MLUPS
+(64, (16, 1), 'double', False, True): ~14 MLUPS
+(64, (16, 1), 'double', True, True): ~63 MLUPS
+(64, (16, 1), 'single', False, True): ~63 MLUPS
+(64, (16, 1), 'single', True, True): ~63 MLUPS
+(128, (32, 1), 'double', False, True): ~29 MLUPS
+(128, (32, 1), 'double', True, True): ~244 MLUPS
+(128, (32, 1), 'single', False, True): ~254 MLUPS
+(128, (32, 1), 'single', True, True): ~254 MLUPS
+(128, (64, 1), 'double', False, True): ~29 MLUPS
+(128, (64, 1), 'double', True, True): ~255 MLUPS
+(128, (64, 1), 'single', False, True): ~250 MLUPS
+(128, (64, 1), 'single', True, True): ~251 MLUPS
+(128, (128, 1), 'double', False, True): ~28 MLUPS
+(128, (128, 1), 'double', True, True): ~253 MLUPS
+(128, (128, 1), 'single', False, True): ~249 MLUPS
+(128, (128, 1), 'single', True, True): ~255 MLUPS
+(128, (16, 1), 'double', False, True): ~15 MLUPS
+(128, (16, 1), 'double', True, True): ~151 MLUPS
+(128, (16, 1), 'single', False, True): ~250 MLUPS
+(128, (16, 1), 'single', True, True): ~254 MLUPS
+(512, (256, 1), 'double', False, True): ~31 MLUPS
+(512, (256, 1), 'double', True, True): ~323 MLUPS
+(512, (256, 1), 'single', False, True): ~803 MLUPS
+(512, (256, 1), 'single', True, True): ~819 MLUPS
+(512, (32, 1), 'double', False, True): ~31 MLUPS
+(512, (32, 1), 'double', True, True): ~323 MLUPS
+(512, (32, 1), 'single', False, True): ~822 MLUPS
+(512, (32, 1), 'single', True, True): ~830 MLUPS
+(512, (64, 1), 'double', False, True): ~31 MLUPS
+(512, (64, 1), 'double', True, True): ~323 MLUPS
+(512, (64, 1), 'single', False, True): ~800 MLUPS
+(512, (64, 1), 'single', True, True): ~820 MLUPS
+(512, (128, 1), 'double', False, True): ~31 MLUPS
+(512, (128, 1), 'double', True, True): ~323 MLUPS
+(512, (128, 1), 'single', False, True): ~803 MLUPS
+(512, (128, 1), 'single', True, True): ~811 MLUPS
+(512, (512, 1), 'double', False, True): ~30 MLUPS
+(512, (512, 1), 'double', True, True): ~317 MLUPS
+(512, (512, 1), 'single', False, True): ~807 MLUPS
+(512, (512, 1), 'single', True, True): ~822 MLUPS
+(512, (16, 1), 'double', False, True): ~15 MLUPS
+(512, (16, 1), 'double', True, True): ~163 MLUPS
+(512, (16, 1), 'single', False, True): ~470 MLUPS
+(512, (16, 1), 'single', True, True): ~820 MLUPS
+(1024, (256, 1), 'double', False, True): ~32 MLUPS
+(1024, (256, 1), 'double', True, True): ~326 MLUPS
+(1024, (256, 1), 'single', False, True): ~822 MLUPS
+(1024, (256, 1), 'single', True, True): ~819 MLUPS
+(1024, (32, 1), 'double', False, True): ~32 MLUPS
+(1024, (32, 1), 'double', True, True): ~326 MLUPS
+(1024, (32, 1), 'single', False, True): ~822 MLUPS
+(1024, (32, 1), 'single', True, True): ~824 MLUPS
+(1024, (64, 1), 'double', False, True): ~32 MLUPS
+(1024, (64, 1), 'double', True, True): ~326 MLUPS
+(1024, (64, 1), 'single', False, True): ~786 MLUPS
+(1024, (64, 1), 'single', True, True): ~815 MLUPS
+(1024, (128, 1), 'double', False, True): ~32 MLUPS
+(1024, (128, 1), 'double', True, True): ~326 MLUPS
+(1024, (128, 1), 'single', False, True): ~786 MLUPS
+(1024, (128, 1), 'single', True, True): ~819 MLUPS
+(1024, (512, 1), 'double', False, True): ~32 MLUPS
+(1024, (512, 1), 'double', True, True): ~322 MLUPS
+(1024, (512, 1), 'single', False, True): ~821 MLUPS
+(1024, (512, 1), 'single', True, True): ~821 MLUPS
+(1024, (1024, 1), 'double', False, True): ~31 MLUPS
+(1024, (1024, 1), 'double', True, True): ~299 MLUPS
+(1024, (1024, 1), 'single', False, True): ~819 MLUPS
+(1024, (1024, 1), 'single', True, True): ~826 MLUPS
+(1024, (16, 1), 'double', False, True): ~16 MLUPS
+(1024, (16, 1), 'double', True, True): ~163 MLUPS
+(1024, (16, 1), 'single', False, True): ~488 MLUPS
+(1024, (16, 1), 'single', True, True): ~819 MLUPS
+(2048, (256, 1), 'double', False, True): ~33 MLUPS
+(2048, (256, 1), 'double', True, True): ~326 MLUPS
+(2048, (256, 1), 'single', False, True): ~828 MLUPS
+(2048, (256, 1), 'single', True, True): ~836 MLUPS
+(2048, (32, 1), 'double', False, True): ~33 MLUPS
+(2048, (32, 1), 'double', True, True): ~326 MLUPS
+(2048, (32, 1), 'single', False, True): ~839 MLUPS
+(2048, (32, 1), 'single', True, True): ~843 MLUPS
+(2048, (64, 1), 'double', False, True): ~33 MLUPS
+(2048, (64, 1), 'double', True, True): ~326 MLUPS
+(2048, (64, 1), 'single', False, True): ~824 MLUPS
+(2048, (64, 1), 'single', True, True): ~834 MLUPS
+(2048, (128, 1), 'double', False, True): ~33 MLUPS
+(2048, (128, 1), 'double', True, True): ~326 MLUPS
+(2048, (128, 1), 'single', False, True): ~821 MLUPS
+(2048, (128, 1), 'single', True, True): ~833 MLUPS
+(2048, (512, 1), 'double', False, True): ~33 MLUPS
+(2048, (512, 1), 'double', True, True): ~321 MLUPS
+(2048, (512, 1), 'single', False, True): ~826 MLUPS
+(2048, (512, 1), 'single', True, True): ~837 MLUPS
+(2048, (1024, 1), 'double', False, True): ~32 MLUPS
+(2048, (1024, 1), 'double', True, True): ~297 MLUPS
+(2048, (1024, 1), 'single', False, True): ~831 MLUPS
+(2048, (1024, 1), 'single', True, True): ~835 MLUPS
+(2048, (16, 1), 'double', False, True): ~16 MLUPS
+(2048, (16, 1), 'double', True, True): ~163 MLUPS
+(2048, (16, 1), 'single', False, True): ~477 MLUPS
+(2048, (16, 1), 'single', True, True): ~835 MLUPS
+(800, (200, 1), 'double', True, False): ~291 MLUPS
+(800, (200, 1), 'double', True, True): ~291 MLUPS
+(800, (200, 1), 'single', True, False): ~811 MLUPS
+(800, (200, 1), 'single', True, True): ~813 MLUPS
+(800, (10, 1), 'double', True, False): ~102 MLUPS
+(800, (10, 1), 'double', True, True): ~102 MLUPS
+(800, (10, 1), 'single', True, False): ~768 MLUPS
+(800, (10, 1), 'single', True, True): ~768 MLUPS
+(800, (100, 1), 'double', True, False): ~255 MLUPS
+(800, (100, 1), 'double', True, True): ~255 MLUPS
+(800, (100, 1), 'single', True, False): ~806 MLUPS
+(800, (100, 1), 'single', True, True): ~804 MLUPS
+(800, (50, 1), 'double', True, False): ~255 MLUPS
+(800, (50, 1), 'double', True, True): ~255 MLUPS
+(800, (50, 1), 'single', True, False): ~799 MLUPS
+(800, (50, 1), 'single', True, True): ~801 MLUPS
+(100, (10, 1), 'double', True, False): ~95 MLUPS
+(100, (10, 1), 'double', True, True): ~95 MLUPS
+(100, (10, 1), 'single', True, False): ~155 MLUPS
+(100, (10, 1), 'single', True, True): ~156 MLUPS
+(100, (100, 1), 'double', True, False): ~155 MLUPS
+(100, (100, 1), 'double', True, True): ~154 MLUPS
+(100, (100, 1), 'single', True, False): ~155 MLUPS
+(100, (100, 1), 'single', True, True): ~155 MLUPS
+(100, (50, 1), 'double', True, False): ~154 MLUPS
+(100, (50, 1), 'double', True, True): ~153 MLUPS
+(100, (50, 1), 'single', True, False): ~155 MLUPS
+(100, (50, 1), 'single', True, True): ~154 MLUPS
+(200, (200, 1), 'double', True, False): ~252 MLUPS
+(200, (200, 1), 'double', True, True): ~252 MLUPS
+(200, (200, 1), 'single', True, False): ~619 MLUPS
+(200, (200, 1), 'single', True, True): ~621 MLUPS
+(200, (10, 1), 'double', True, False): ~96 MLUPS
+(200, (10, 1), 'double', True, True): ~101 MLUPS
+(200, (10, 1), 'single', True, False): ~620 MLUPS
+(200, (10, 1), 'single', True, True): ~575 MLUPS
+(200, (100, 1), 'double', True, False): ~240 MLUPS
+(200, (100, 1), 'double', True, True): ~240 MLUPS
+(200, (100, 1), 'single', True, False): ~626 MLUPS
+(200, (100, 1), 'single', True, True): ~616 MLUPS
+(200, (50, 1), 'double', True, False): ~240 MLUPS
+(200, (50, 1), 'double', True, True): ~240 MLUPS
+(200, (50, 1), 'single', True, False): ~619 MLUPS
+(200, (50, 1), 'single', True, True): ~619 MLUPS
+(1000, (200, 1), 'double', True, False): ~291 MLUPS
+(1000, (200, 1), 'double', True, True): ~291 MLUPS
+(1000, (200, 1), 'single', True, False): ~817 MLUPS
+(1000, (200, 1), 'single', True, True): ~811 MLUPS
+(1000, (10, 1), 'double', True, False): ~102 MLUPS
+(1000, (10, 1), 'double', True, True): ~102 MLUPS
+(1000, (10, 1), 'single', True, False): ~770 MLUPS
+(1000, (10, 1), 'single', True, True): ~769 MLUPS
+(1000, (100, 1), 'double', True, False): ~255 MLUPS
+(1000, (100, 1), 'double', True, True): ~255 MLUPS
+(1000, (100, 1), 'single', True, False): ~814 MLUPS
+(1000, (100, 1), 'single', True, True): ~814 MLUPS
+(1000, (50, 1), 'double', True, False): ~255 MLUPS
+(1000, (50, 1), 'double', True, True): ~255 MLUPS
+(1000, (50, 1), 'single', True, False): ~806 MLUPS
+(1000, (50, 1), 'single', True, True): ~793 MLUPS
+(400, (200, 1), 'double', True, False): ~286 MLUPS
+(400, (200, 1), 'double', True, True): ~286 MLUPS
+(400, (200, 1), 'single', True, False): ~796 MLUPS
+(400, (200, 1), 'single', True, True): ~801 MLUPS
+(400, (10, 1), 'double', True, False): ~102 MLUPS
+(400, (10, 1), 'double', True, True): ~102 MLUPS
+(400, (10, 1), 'single', True, False): ~752 MLUPS
+(400, (10, 1), 'single', True, True): ~753 MLUPS
+(400, (100, 1), 'double', True, False): ~252 MLUPS
+(400, (100, 1), 'double', True, True): ~252 MLUPS
+(400, (100, 1), 'single', True, False): ~790 MLUPS
+(400, (100, 1), 'single', True, True): ~794 MLUPS
+(400, (50, 1), 'double', True, False): ~252 MLUPS
+(400, (50, 1), 'double', True, True): ~252 MLUPS
+(400, (50, 1), 'single', True, False): ~785 MLUPS
+(400, (50, 1), 'single', True, True): ~787 MLUPS
+(50, (10, 1), 'double', True, False): ~38 MLUPS
+(50, (10, 1), 'double', True, True): ~38 MLUPS
+(50, (10, 1), 'single', True, False): ~38 MLUPS
+(50, (10, 1), 'single', True, True): ~38 MLUPS
+(50, (50, 1), 'double', True, False): ~38 MLUPS
+(50, (50, 1), 'double', True, True): ~38 MLUPS
+(50, (50, 1), 'single', True, False): ~39 MLUPS
+(50, (50, 1), 'single', True, True): ~39 MLUPS
+(600, (30, 1), 'double', True, False): ~296 MLUPS
+(600, (30, 1), 'double', True, True): ~304 MLUPS
+(600, (30, 1), 'single', True, False): ~803 MLUPS
+(600, (30, 1), 'single', True, True): ~824 MLUPS
+(600, (200, 1), 'double', True, False): ~290 MLUPS
+(600, (200, 1), 'double', True, True): ~290 MLUPS
+(600, (200, 1), 'single', True, False): ~788 MLUPS
+(600, (200, 1), 'single', True, True): ~812 MLUPS
+(600, (10, 1), 'double', True, False): ~102 MLUPS
+(600, (10, 1), 'double', True, True): ~102 MLUPS
+(600, (10, 1), 'single', True, False): ~756 MLUPS
+(600, (10, 1), 'single', True, True): ~765 MLUPS
+(600, (100, 1), 'double', True, False): ~254 MLUPS
+(600, (100, 1), 'double', True, True): ~254 MLUPS
+(600, (100, 1), 'single', True, False): ~767 MLUPS
+(600, (100, 1), 'single', True, True): ~800 MLUPS
+(600, (50, 1), 'double', True, False): ~254 MLUPS
+(600, (50, 1), 'double', True, True): ~254 MLUPS
+(600, (50, 1), 'single', True, False): ~769 MLUPS
+(600, (50, 1), 'single', True, True): ~792 MLUPS
+(800, (256, 1), 'double', True, True): ~323 MLUPS
+(800, (256, 1), 'single', True, True): ~808 MLUPS
+(800, (32, 1), 'double', True, True): ~325 MLUPS
+(800, (32, 1), 'single', True, True): ~827 MLUPS
+(800, (64, 1), 'double', True, True): ~324 MLUPS
+(800, (64, 1), 'single', True, True): ~813 MLUPS
+(800, (128, 1), 'double', True, True): ~323 MLUPS
+(800, (128, 1), 'single', True, True): ~809 MLUPS
+(800, (512, 1), 'double', True, True): ~320 MLUPS
+(800, (512, 1), 'single', True, True): ~807 MLUPS
+(800, (16, 1), 'double', True, True): ~163 MLUPS
+(800, (16, 1), 'single', True, True): ~816 MLUPS
+(100, (32, 1), 'double', True, True): ~154 MLUPS
+(100, (32, 1), 'single', True, True): ~155 MLUPS
+(100, (64, 1), 'double', True, True): ~156 MLUPS
+(100, (64, 1), 'single', True, True): ~156 MLUPS
+(100, (128, 1), 'double', True, True): ~154 MLUPS
+(100, (128, 1), 'single', True, True): ~149 MLUPS
+(100, (16, 1), 'double', True, True): ~132 MLUPS
+(100, (16, 1), 'single', True, True): ~153 MLUPS
+(200, (256, 1), 'double', True, True): ~268 MLUPS
+(200, (256, 1), 'single', True, True): ~617 MLUPS
+(200, (32, 1), 'double', True, True): ~273 MLUPS
+(200, (32, 1), 'single', True, True): ~615 MLUPS
+(200, (64, 1), 'double', True, True): ~228 MLUPS
+(200, (64, 1), 'single', True, True): ~623 MLUPS
+(200, (128, 1), 'double', True, True): ~252 MLUPS
+(200, (128, 1), 'single', True, True): ~610 MLUPS
+(200, (16, 1), 'double', True, True): ~143 MLUPS
+(200, (16, 1), 'single', True, True): ~615 MLUPS
+(1000, (256, 1), 'double', True, True): ~318 MLUPS
+(1000, (256, 1), 'single', True, True): ~822 MLUPS
+(1000, (32, 1), 'double', True, True): ~318 MLUPS
+(1000, (32, 1), 'single', True, True): ~832 MLUPS
+(1000, (64, 1), 'double', True, True): ~318 MLUPS
+(1000, (64, 1), 'single', True, True): ~821 MLUPS
+(1000, (128, 1), 'double', True, True): ~318 MLUPS
+(1000, (128, 1), 'single', True, True): ~821 MLUPS
+(1000, (512, 1), 'double', True, True): ~314 MLUPS
+(1000, (512, 1), 'single', True, True): ~826 MLUPS
+(1000, (1024, 1), 'double', True, True): ~292 MLUPS
+(1000, (1024, 1), 'single', True, True): ~826 MLUPS
+(1000, (16, 1), 'double', True, True): ~162 MLUPS
+(1000, (16, 1), 'single', True, True): ~816 MLUPS
+(400, (256, 1), 'double', True, True): ~305 MLUPS
+(400, (256, 1), 'single', True, True): ~778 MLUPS
+(400, (32, 1), 'double', True, True): ~309 MLUPS
+(400, (32, 1), 'single', True, True): ~811 MLUPS
+(400, (64, 1), 'double', True, True): ~306 MLUPS
+(400, (64, 1), 'single', True, True): ~758 MLUPS
+(400, (128, 1), 'double', True, True): ~305 MLUPS
+(400, (128, 1), 'single', True, True): ~781 MLUPS
+(400, (16, 1), 'double', True, True): ~163 MLUPS
+(400, (16, 1), 'single', True, True): ~797 MLUPS
+(50, (32, 1), 'double', True, True): ~37 MLUPS
+(50, (32, 1), 'single', True, True): ~38 MLUPS
+(50, (64, 1), 'double', True, True): ~38 MLUPS
+(50, (64, 1), 'single', True, True): ~38 MLUPS
+(50, (128, 1), 'double', True, True): ~38 MLUPS
+(50, (128, 1), 'single', True, True): ~38 MLUPS
+(50, (16, 1), 'double', True, True): ~38 MLUPS
+(50, (16, 1), 'single', True, True): ~38 MLUPS
+(600, (256, 1), 'double', True, True): ~312 MLUPS
+(600, (256, 1), 'single', True, True): ~797 MLUPS
+(600, (32, 1), 'double', True, True): ~320 MLUPS
+(600, (32, 1), 'single', True, True): ~821 MLUPS
+(600, (64, 1), 'double', True, True): ~305 MLUPS
+(600, (64, 1), 'single', True, True): ~804 MLUPS
+(600, (128, 1), 'double', True, True): ~318 MLUPS
+(600, (128, 1), 'single', True, True): ~808 MLUPS
+(600, (512, 1), 'double', True, True): ~303 MLUPS
+(600, (512, 1), 'single', True, True): ~775 MLUPS
+(600, (16, 1), 'double', True, True): ~161 MLUPS
+(600, (16, 1), 'single', True, True): ~815 MLUPS
diff --git a/result/ldc_2d_benchmark_K2200.py b/result/ldc_2d_benchmark_K2200.py
index ae8014c..d00a45a 100644
--- a/result/ldc_2d_benchmark_K2200.py
+++ b/result/ldc_2d_benchmark_K2200.py
@@ -1 +1 @@
-ldc_2d_k2200 = [((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])]
+ldc_2d_k2200 = [((32, (32, 1), 'double', False, True), [15, 16, 15, 16, 16]), ((32, (32, 1), 'double', True, True), [16, 16, 16, 16, 16]), ((32, (32, 1), 'single', False, True), [16, 16, 16, 16, 16]), ((32, (32, 1), 'single', True, True), [16, 16, 16, 16, 16]), ((32, (16, 1), 'double', False, True), [13, 13, 13, 13, 13]), ((32, (16, 1), 'double', True, True), [16, 15, 16, 16, 16]), ((32, (16, 1), 'single', False, True), [14, 15, 16, 16, 16]), ((32, (16, 1), 'single', True, True), [14, 14, 14, 15, 16]), ((256, (256, 1), 'double', False, True), [29, 29, 29, 29, 29]), ((256, (256, 1), 'double', True, True), [308, 310, 309, 310, 310]), ((256, (256, 1), 'single', False, True), [738, 744, 745, 742, 743]), ((256, (256, 1), 'single', True, True), [770, 782, 772, 777, 766]), ((256, (32, 1), 'double', False, True), [32, 30, 30, 30, 30]), ((256, (32, 1), 'double', True, True), [312, 312, 313, 312, 312]), ((256, (32, 1), 'single', False, True), [758, 763, 758, 759, 755]), ((256, (32, 1), 'single', True, True), [775, 779, 781, 779, 782]), ((256, (64, 1), 'double', False, True), [32, 30, 30, 30, 30]), ((256, (64, 1), 'double', True, True), [311, 311, 311, 312, 311]), ((256, (64, 1), 'single', False, True), [719, 726, 719, 721, 715]), ((256, (64, 1), 'single', True, True), [787, 787, 790, 786, 786]), ((256, (128, 1), 'double', False, True), [32, 30, 30, 30, 30]), ((256, (128, 1), 'double', True, True), [301, 311, 311, 312, 312]), ((256, (128, 1), 'single', False, True), [721, 727, 718, 723, 716]), ((256, (128, 1), 'single', True, True), [770, 776, 774, 774, 772]), ((256, (16, 1), 'double', False, True), [16, 15, 15, 15, 15]), ((256, (16, 1), 'double', True, True), [160, 161, 161, 158, 161]), ((256, (16, 1), 'single', False, True), [459, 442, 427, 426, 426]), ((256, (16, 1), 'single', True, True), [780, 794, 784, 796, 783]), ((64, (32, 1), 'double', False, True), [28, 28, 28, 28, 28]), ((64, (32, 1), 'double', True, True), [63, 64, 63, 63, 61]), ((64, (32, 1), 'single', False, True), [61, 65, 65, 65, 64]), ((64, (32, 1), 'single', True, True), [64, 64, 64, 61, 64]), ((64, (64, 1), 'double', False, True), [27, 27, 27, 27, 27]), ((64, (64, 1), 'double', True, True), [64, 62, 62, 64, 62]), ((64, (64, 1), 'single', False, True), [56, 57, 60, 59, 57]), ((64, (64, 1), 'single', True, True), [63, 64, 64, 64, 64]), ((64, (16, 1), 'double', False, True), [14, 14, 14, 14, 14]), ((64, (16, 1), 'double', True, True), [64, 64,