|
29 | 29 |
|
30 | 30 | __authors__ = ["Jérôme Kieffer"]
|
31 | 31 | __license__ = "MIT"
|
32 |
| -__date__ = "24/11/2021" |
| 32 | +__date__ = "03/02/2022" |
33 | 33 | __copyright__ = "2014-2021, ESRF, Grenoble"
|
34 | 34 |
|
35 | 35 |
|
@@ -743,8 +743,8 @@ def _count8(self, data, dark=None, dummy=None, delta_dummy=None,
|
743 | 743 |
|
744 | 744 | wdim_data = (data.shape[0] + wg0 - 1) & ~(wg0 - 1), (data.shape[1] + wg1 - 1) & ~(wg1 - 1)
|
745 | 745 | # allocate local memory: we store 4 bytes but at most 1 pixel out of 4 can be a peak
|
746 |
| - |
747 |
| - buffer_size = int(math.ceil(wg * 4 / ((1+hw)*min(wg0, 1+hw)))) |
| 746 | + |
| 747 | + buffer_size = int(math.ceil(wg * 4 / ((1 + hw) * min(wg0, 1 + hw)))) |
748 | 748 | kw_proj["local_highidx"] = pyopencl.LocalMemory(1 * buffer_size)
|
749 | 749 | kw_proj["local_peaks"] = pyopencl.LocalMemory(4 * buffer_size)
|
750 | 750 | kw_proj["local_buffer"] = pyopencl.LocalMemory(8 * (wg0 + 2 * hw) * (wg1 + 2 * hw))
|
@@ -814,15 +814,15 @@ def peakfinder8(self, data, dark=None, dummy=None, delta_dummy=None,
|
814 | 814 | count = self._count8(data, dark, dummy, delta_dummy, variance, dark_variance, flat, solidangle, polarization, absorption,
|
815 | 815 | dark_checksum, flat_checksum, solidangle_checksum, polarization_checksum, absorption_checksum, dark_variance_checksum,
|
816 | 816 | safe, error_model, normalization_factor, cutoff_clip, cycle, noise, cutoff_pick, radial_range, patch_size, connected)
|
817 |
| - |
818 | 817 | index = numpy.zeros(count, dtype=numpy.int32)
|
819 | 818 | peaks = numpy.zeros((count, 4), dtype=numpy.float32)
|
820 |
| - idx = pyopencl.enqueue_copy(self.queue, index, self.cl_mem["peak_position"]) |
821 |
| - events = [EventDescription("copy D->H index", idx)] |
822 |
| - idx = pyopencl.enqueue_copy(self.queue, peaks, self.cl_mem["peak_descriptor"]) |
823 |
| - events.append(EventDescription("copy D->H peaks", idx)) |
824 |
| - if self.profile: |
825 |
| - self.events += events |
| 819 | + if count: |
| 820 | + idx = pyopencl.enqueue_copy(self.queue, index, self.cl_mem["peak_position"]) |
| 821 | + events = [EventDescription("copy D->H index", idx)] |
| 822 | + idx = pyopencl.enqueue_copy(self.queue, peaks, self.cl_mem["peak_descriptor"]) |
| 823 | + events.append(EventDescription("copy D->H peaks", idx)) |
| 824 | + if self.profile: |
| 825 | + self.events += events |
826 | 826 | output = numpy.empty(count, dtype=[("index", numpy.int32), ("intensity", numpy.float32), ("sigma", numpy.float32),
|
827 | 827 | ("pos0", numpy.float32), ("pos1", numpy.float32)])
|
828 | 828 | output["index"] = index
|
|
0 commit comments