From c83fc76b8939725cee104008c1376bc3cdb0bd8d Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 22 Oct 2015 17:38:39 -0500 Subject: [PATCH] Determinism fixes to automatic axis assignments --- loopy/kernel/tools.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py index f6adfeebf..769301ed9 100644 --- a/loopy/kernel/tools.py +++ b/loopy/kernel/tools.py @@ -686,7 +686,7 @@ def get_auto_axis_iname_ranking_by_stride(kernel, insn): aggregate_strides[iname] = aggregate_strides.get(iname, 0) + stride if aggregate_strides: - very_large_stride = np.iinfo(np.int32).max + very_large_stride = int(np.iinfo(np.int32).max) return sorted((iname for iname in kernel.insn_inames(insn)), key=lambda iname: ( @@ -824,7 +824,9 @@ def assign_automatic_axes(kernel, axis=0, local_size=None): # numbered "valid" passes--assign the remainder by length. # assign longest auto axis inames first - auto_axis_inames.sort(key=kernel.get_constant_iname_length, reverse=True) + auto_axis_inames.sort( + key=lambda iname: (kernel.get_constant_iname_length(iname), iname), + reverse=True) if auto_axis_inames: return assign_axis(axis, auto_axis_inames.pop()) -- GitLab