Skip to content

Commit 2437bfc

Browse files
committed
Add test for integer grid divisors in get_grid_dimensions
1 parent 0dc80dd commit 2437bfc

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

kernel_tuner/util.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,11 +438,11 @@ def get_grid_dimensions(current_problem_size, params, grid_div, block_size_names
438438
"""Compute grid dims based on problem sizes and listed grid divisors."""
439439

440440
def get_dimension_divisor(divisor, default, params):
441-
if divisor is None:
442-
divisor = params.get(default, 1)
443-
444441
divisor_num = 1
445-
if isinstance(divisor, int):
442+
443+
if divisor is None:
444+
divisor_num = params.get(default, 1)
445+
elif isinstance(divisor, int):
446446
divisor_num = divisor
447447
elif callable(divisor):
448448
divisor_num = divisor(params)
@@ -453,6 +453,7 @@ def get_dimension_divisor(divisor, default, params):
453453
divisor_num *= get_dimension_divisor(div, 1, params)
454454
else:
455455
raise ValueError("Error: unrecognized type in grid divisor list, should be any of int, str, callable, or iterable")
456+
456457
return divisor_num
457458

458459
divisors = [get_dimension_divisor(d, block_size_names[i], params) for i, d in enumerate(grid_div)]

test/test_util_functions.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,22 @@ def test_get_grid_dimensions1():
5959
assert grid[1] == 25
6060
assert grid[2] == 1
6161

62+
grid = get_grid_dimensions(
63+
problem_size, params, ("41", 37, None), block_size_names
64+
)
65+
66+
assert grid[0] == 25
67+
assert grid[1] == 28
68+
assert grid[2] == 1
69+
70+
grid = get_grid_dimensions(
71+
problem_size, params, (None, [2, "block_y"], None), block_size_names
72+
)
73+
74+
assert grid[0] == 1024
75+
assert grid[1] == 14
76+
assert grid[2] == 1
77+
6278

6379
def test_get_grid_dimensions2():
6480
problem_size = (1024, 1024, 1)

0 commit comments

Comments
 (0)