Skip to content
Snippets Groups Projects
Commit a87062c5 authored by Markus Holzer's avatar Markus Holzer
Browse files

Remove intermediate base pointers

parent 3b5a0dfc
No related branches found
No related tags found
No related merge requests found
Pipeline #55690 failed
......@@ -75,7 +75,7 @@ def create_kernel(assignments: NodeCollection,
base_pointer_spec = config.base_pointer_specification
if base_pointer_spec is None:
base_pointer_spec = [['spatialInner0'], ['spatialInner1']] if len(loop_order) >= 2 else [['spatialInner0']]
base_pointer_spec = []
base_pointer_info = {field.name: parse_base_pointer_info(base_pointer_spec, loop_order,
field.spatial_dimensions, field.index_dimensions)
for field in fields_without_buffers}
......
......@@ -84,7 +84,7 @@ def create_cuda_kernel(assignments: NodeCollection, config: CreateKernelConfig):
base_pointer_spec = config.base_pointer_specification
if base_pointer_spec is None:
base_pointer_spec = [['spatialInner0']]
base_pointer_spec = []
base_pointer_info = {f.name: parse_base_pointer_info(base_pointer_spec, [2, 1, 0],
f.spatial_dimensions, f.index_dimensions)
for f in all_fields}
......
......@@ -49,16 +49,6 @@ def test_intermediate_base_pointer(target):
ast = create_kernel(update, config=config)
code = get_code_str(ast)
if target == Target.GPU:
# by default intermediate base pointers for y and z on GPU
assert "double * RESTRICT _data_x_10_20 = _data_x + _stride_x_1*ctr_1 + _stride_x_2*ctr_2;" in code
assert "double * RESTRICT _data_y_10_20 = _data_y + _stride_y_1*ctr_1 + _stride_y_2*ctr_2;" in code
assert "_data_x_10_20[_stride_x_0*ctr_0] = _data_y_10_20[_stride_y_0*ctr_0];" in code
else:
# by default intermediate base pointers for x and y on CPU
assert "double * RESTRICT _data_x_00 = _data_x + _stride_x_0*ctr_0;" in code
assert "double * RESTRICT _data_y_00 = _data_y + _stride_y_0*ctr_0;" in code
assert "double * RESTRICT _data_x_00_10 = _stride_x_1*ctr_1 + _data_x_00;" in code
assert "double * RESTRICT _data_y_00_10 = _stride_y_1*ctr_1 + _data_y_00;" in code
assert "_data_x_00_10[_stride_x_2*ctr_2] = _data_y_00_10[_stride_y_2*ctr_2];" in code
# by default no intermediate base pointers are created
assert "_data_x[_stride_x_0*ctr_0 + _stride_x_1*ctr_1 + _stride_x_2*ctr_2] = " \
"_data_y[_stride_y_0*ctr_0 + _stride_y_1*ctr_1 + _stride_y_2*ctr_2];" in code
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment