@@ -218,15 +218,12 @@ std::pair<sycl::event, sycl::event>
218
218
std::vector<sycl::event> host_tasks{};
219
219
host_tasks.reserve (2 );
220
220
221
- const auto & ptr_size_event_triple_ = device_allocate_and_pack<py::ssize_t >(
221
+ auto ptr_size_event_triple_ = device_allocate_and_pack<py::ssize_t >(
222
222
q, host_tasks, simplified_shape, simplified_src_strides,
223
223
simplified_dst_strides);
224
- py::ssize_t *shape_strides = std::get<0 >(ptr_size_event_triple_);
225
- const sycl::event ©_shape_ev = std::get<2 >(ptr_size_event_triple_);
226
-
227
- if (shape_strides == nullptr ) {
228
- throw std::runtime_error (" Device memory allocation failed" );
229
- }
224
+ auto shape_strides_owner = std::move (std::get<0 >(ptr_size_event_triple_));
225
+ const auto ©_shape_ev = std::get<2 >(ptr_size_event_triple_);
226
+ const py::ssize_t *shape_strides = shape_strides_owner.get ();
230
227
231
228
sycl::event strided_fn_ev =
232
229
strided_fn (q, src_nelems, nd, shape_strides, src_data, src_offset,
@@ -543,16 +540,13 @@ std::pair<sycl::event, sycl::event> py_binary_ufunc(
543
540
}
544
541
545
542
using dpctl::tensor::offset_utils::device_allocate_and_pack;
546
- const auto & ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t >(
543
+ auto ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t >(
547
544
exec_q, host_tasks, simplified_shape, simplified_src1_strides,
548
545
simplified_src2_strides, simplified_dst_strides);
546
+ auto shape_strides_owner = std::move (std::get<0 >(ptr_sz_event_triple_));
547
+ auto ©_shape_ev = std::get<2 >(ptr_sz_event_triple_);
549
548
550
- py::ssize_t *shape_strides = std::get<0 >(ptr_sz_event_triple_);
551
- const sycl::event ©_shape_ev = std::get<2 >(ptr_sz_event_triple_);
552
-
553
- if (shape_strides == nullptr ) {
554
- throw std::runtime_error (" Unable to allocate device memory" );
555
- }
549
+ const py::ssize_t *shape_strides = shape_strides_owner.get ();
556
550
557
551
sycl::event strided_fn_ev = strided_fn (
558
552
exec_q, src_nelems, nd, shape_strides, src1_data, src1_offset,
@@ -796,16 +790,13 @@ std::pair<sycl::event, sycl::event>
796
790
}
797
791
798
792
using dpctl::tensor::offset_utils::device_allocate_and_pack;
799
- const auto & ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t >(
793
+ auto ptr_sz_event_triple_ = device_allocate_and_pack<py::ssize_t >(
800
794
exec_q, host_tasks, simplified_shape, simplified_rhs_strides,
801
795
simplified_lhs_strides);
796
+ auto shape_strides_owner = std::move (std::get<0 >(ptr_sz_event_triple_));
797
+ auto copy_shape_ev = std::get<2 >(ptr_sz_event_triple_);
802
798
803
- py::ssize_t *shape_strides = std::get<0 >(ptr_sz_event_triple_);
804
- const sycl::event ©_shape_ev = std::get<2 >(ptr_sz_event_triple_);
805
-
806
- if (shape_strides == nullptr ) {
807
- throw std::runtime_error (" Unable to allocate device memory" );
808
- }
799
+ const py::ssize_t *shape_strides = shape_strides_owner.get ();
809
800
810
801
sycl::event strided_fn_ev =
811
802
strided_fn (exec_q, rhs_nelems, nd, shape_strides, rhs_data, rhs_offset,
0 commit comments