Skip to content

Commit 6718ede

Browse files
committed
Added tests and fixed a bug in moving data.
1 parent 323dd89 commit 6718ede

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

kernel_tuner/utils/directives.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -347,13 +347,8 @@ def wrap_data(code: str, langs: Code, data: dict, preprocessor: list = None, use
347347
intro += create_data_directive_openacc_cxx(name, size)
348348
outro += exit_data_directive_openacc_cxx(name, size)
349349
elif is_openacc(langs.directive) and is_fortran(langs.language):
350-
if "," in data[name][1]:
351-
# Multi dimensional
352-
pass
353-
else:
354-
# One dimensional
355-
intro += create_data_directive_openacc_fortran(name, size)
356-
outro += exit_data_directive_openacc_fortran(name, size)
350+
intro += create_data_directive_openacc_fortran(name, size)
351+
outro += exit_data_directive_openacc_fortran(name, size)
357352
return intro + code + outro
358353

359354

test/utils/test_directives.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@ def test_wrap_data():
109109
assert wrap_data(code_cxx, acc_cxx, data, preprocessor, None) == expected_cxx
110110
expected_f90 = "!$acc enter data create(array(:42))\n!$acc update device(array(:42))\n! this is a comment\n!$acc exit data copyout(array(:42))\n"
111111
assert wrap_data(code_f90, acc_f90, data, preprocessor, None) == expected_f90
112+
data = {"matrix": ["float*", "rows,cols"]}
113+
preprocessor = ["#define rows 42", "#define cols 84"]
114+
expected_f90 = "!$acc enter data create(matrix(:42,:84))\n!$acc update device(matrix(:42,:84))\n! this is a comment\n!$acc exit data copyout(matrix(:42,:84))\n"
115+
assert wrap_data(code_f90, acc_f90, data, preprocessor, None) == expected_f90
116+
dimensions = {"rows": 42, "cols": 84}
117+
assert wrap_data(code_f90, acc_f90, data, user_dimensions=dimensions) == expected_f90
118+
assert wrap_data(code_f90, acc_f90, data, preprocessor=[], user_dimensions=dimensions) == expected_f90
119+
112120

113121

114122
def test_extract_directive_code():

0 commit comments

Comments
 (0)