@@ -715,22 +715,15 @@ void dpnp_rng_rayleigh_c(void* result, const _DataType scale, const size_t size)
715
715
const _DataType a = 0.0 ;
716
716
const _DataType beta = 2.0 ;
717
717
718
- DPNPC_ptr_adapter<_DataType> result1_ptr (result, size, true , true );
718
+ DPNPC_ptr_adapter<_DataType> result1_ptr (result, size);
719
719
_DataType* result1 = result1_ptr.get_ptr ();
720
720
721
721
mkl_rng::exponential<_DataType> distribution (a, beta);
722
722
723
- auto event_out = mkl_rng::generate (distribution, DPNP_RNG_ENGINE, size, result1);
724
- event_out.wait ();
725
- event_out = mkl_vm::sqrt (DPNP_QUEUE, size, result1, result1, no_deps, mkl_vm::mode::ha);
726
- event_out.wait ();
727
- // with MKL
728
- // event_out = mkl_blas::axpy(DPNP_QUEUE, size, scale, result1, 1, result1, 1);
729
- // event_out.wait();
730
- for (size_t i = 0 ; i < size; i++)
731
- {
732
- result1[i] *= scale;
733
- }
723
+ auto exponential_rng_event = mkl_rng::generate (distribution, DPNP_RNG_ENGINE, size, result1);
724
+ auto sqrt_event = mkl_vm::sqrt (DPNP_QUEUE, size, result1, result1, {exponential_rng_event}, mkl_vm::mode::ha);
725
+ auto scal_event = mkl_blas::scal (DPNP_QUEUE, size, scale, result1, 1 , {sqrt_event});
726
+ scal_event.wait ();
734
727
}
735
728
736
729
template <typename _DataType>
0 commit comments