diff --git a/doc/tutorial.rst b/doc/tutorial.rst index 54b78daa176c8d29b59eb8a46be0a79ec28e2159..24ec0ce4fb7a140fb70e65a8793edcf7e03b2042 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -106,7 +106,7 @@ always see loopy's view of a kernel by printing it. out: GlobalArg, type: , shape: (n), dim_tags: (N0:stride:1) --------------------------------------------------------------------------- DOMAINS: - [n] -> { [i] : i >= 0 and i <= -1 + n } + [n] -> { [i] : 0 <= i < n } --------------------------------------------------------------------------- INAME IMPLEMENTATION TAGS: i: None @@ -1238,12 +1238,12 @@ map now: .. doctest:: >>> print(lp.stringify_stats_mapping(op_map)) - (dtype('float32'), 'add') : [n, m, l] -> { n * m * l : n >= 1 and m >= 1 and l >= 1 } - (dtype('float32'), 'div') : [n, m, l] -> { n * m * l : n >= 1 and m >= 1 and l >= 1 } - (dtype('float32'), 'mul') : [n, m, l] -> { n * m * l : n >= 1 and m >= 1 and l >= 1 } - (dtype('float64'), 'add') : [n, m, l] -> { n * m : n >= 1 and m >= 1 and l >= 1 } - (dtype('float64'), 'mul') : [n, m, l] -> { n * m : n >= 1 and m >= 1 and l >= 1 } - (dtype('int32'), 'add') : [n, m, l] -> { n * m : n >= 1 and m >= 1 and l >= 1 } + (dtype('float32'), 'add') : [n, m, l] -> { n * m * l : n > 0 and m > 0 and l > 0 } + (dtype('float32'), 'div') : [n, m, l] -> { n * m * l : n > 0 and m > 0 and l > 0 } + (dtype('float32'), 'mul') : [n, m, l] -> { n * m * l : n > 0 and m > 0 and l > 0 } + (dtype('float64'), 'add') : [n, m, l] -> { n * m : n > 0 and m > 0 and l > 0 } + (dtype('float64'), 'mul') : [n, m, l] -> { n * m : n > 0 and m > 0 and l > 0 } + (dtype('int32'), 'add') : [n, m, l] -> { n * m : n > 0 and m > 0 and l > 0 } We can evaluate these polynomials using :func:`islpy.eval_with_dict`: @@ -1278,10 +1278,10 @@ continue using the kernel from the previous example: >>> from loopy.statistics import get_gmem_access_poly >>> load_store_map = get_gmem_access_poly(knl) >>> print(lp.stringify_stats_mapping(load_store_map)) - (dtype('float32'), 'uniform', 'load') : [n, m, l] -> { 3 * n * m * l : n >= 1 and m >= 1 and l >= 1 } - (dtype('float32'), 'uniform', 'store') : [n, m, l] -> { n * m * l : n >= 1 and m >= 1 and l >= 1 } - (dtype('float64'), 'uniform', 'load') : [n, m, l] -> { 2 * n * m : n >= 1 and m >= 1 and l >= 1 } - (dtype('float64'), 'uniform', 'store') : [n, m, l] -> { n * m : n >= 1 and m >= 1 and l >= 1 } + (dtype('float32'), 'uniform', 'load') : [n, m, l] -> { 3 * n * m * l : n > 0 and m > 0 and l > 0 } + (dtype('float32'), 'uniform', 'store') : [n, m, l] -> { n * m * l : n > 0 and m > 0 and l > 0 } + (dtype('float64'), 'uniform', 'load') : [n, m, l] -> { 2 * n * m : n > 0 and m > 0 and l > 0 } + (dtype('float64'), 'uniform', 'store') : [n, m, l] -> { n * m : n > 0 and m > 0 and l > 0 } :func:`loopy.get_gmem_access_poly` returns a mapping of **{(** diff --git a/setup.py b/setup.py index c8c660666ffeed18f92e533b6042cff63988a096..9ad21d4088c6c28de0e3665b97a87cc7773acee3 100644 --- a/setup.py +++ b/setup.py @@ -37,7 +37,7 @@ setup(name="loo.py", ], install_requires=[ - "pytools>=2015.1.3", + "pytools>=2016.1", "pymbolic>=2015.2.1", "cgen>=2013.1.2", "islpy>=2014.2",