diff --git a/pyopencl/cache.py b/pyopencl/cache.py index bf368d4a481c8188e2a1de4405eac935d1580699..0b2583690607e00d7e06bcfaa1a8750c57421e5d 100644 --- a/pyopencl/cache.py +++ b/pyopencl/cache.py @@ -387,10 +387,11 @@ def _create_built_program_from_source_cached(ctx, src, options, devices, cache_d prg_bins = prg.get_info(_cl.program_info.BINARIES) prg_logs = prg._get_build_logs() - for i, dest_index in enumerate(to_be_built_indices): - assert prg_devs[i] == devices[dest_index] - binaries[dest_index] = prg_bins[i] - _, logs[dest_index] = prg_logs[i] + for dest_index in to_be_built_indices: + dev = devices[dest_index] + src_index = prg_devs.index(dev) + binaries[dest_index] = prg_bins[src_index] + _, logs[dest_index] = prg_logs[src_index] if len(to_be_built_indices) == len(devices): # Important special case: if code for all devices was built,