From 478d22b81b987e49b07386aaabd2396492bd6827 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 20 Mar 2011 14:21:13 -0400 Subject: [PATCH] Move uniform_interval_splitting, div_ceil to pytools. --- pyopencl/scan.py | 31 ++++--------------------------- setup.py | 4 ++-- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/pyopencl/scan.py b/pyopencl/scan.py index 02679a31..169070a0 100644 --- a/pyopencl/scan.py +++ b/pyopencl/scan.py @@ -364,31 +364,6 @@ void ${name_prefix}_final_update( -def _div_ceil(nr, dr): - return (nr + dr -1) // dr - - -def _uniform_interval_splitting(n, granularity, max_intervals): - grains = _div_ceil(n, granularity) - - # one grain per interval - if grains <= max_intervals: - return granularity, grains - - # ensures that: - # num_intervals * interval_size is >= n - # and - # (num_intervals - 1) * interval_size is < n - - grains_per_interval = _div_ceil(grains, max_intervals) - interval_size = grains_per_interval * granularity - num_intervals = _div_ceil(n, interval_size) - - return interval_size, num_intervals - - - - if _CL_MODE: class _ScanKernelBase(object): def __init__(self, ctx, dtype, @@ -475,7 +450,8 @@ if _CL_MODE: unit_size = self.scan_wg_size * self.scan_wg_seq_batches max_groups = 3*max(dev.max_compute_units for dev in self.devices) - interval_size, num_groups = _uniform_interval_splitting( + from pytools import uniform_interval_splitting + interval_size, num_groups = uniform_interval_splitting( n, unit_size, max_groups); block_results = allocator(self.dtype.itemsize*num_groups) @@ -576,7 +552,8 @@ else: max_groups = 3*dev.get_attribute( driver.device_attribute.MULTIPROCESSOR_COUNT) - interval_size, num_groups = _uniform_interval_splitting( + from pytools import uniform_interval_splitting + interval_size, num_groups = uniform_interval_splitting( n, unit_size, max_groups); block_results = allocator(self.dtype.itemsize*num_groups) diff --git a/setup.py b/setup.py index 0baf6f13..68d51a08 100644 --- a/setup.py +++ b/setup.py @@ -166,8 +166,8 @@ def main(): packages=["pyopencl"], install_requires=[ - "pytools>=7", - "py>=1.0.2", + "pytools>=2011.2", + "pytest>=2", "decorator>=3.2.0", # "Mako>=0.3.6", ], -- GitLab