27 const T*
const values,
28 const int64_t*
const row_splits,
29 const size_t row_splits_size,
30 const size_t out_col_size,
31 const T*
const default_value,
32 const size_t default_value_size,
34 if (row_splits_size <= 1)
return;
36 const size_t num_rows = row_splits_size - 1;
39 queue,
static_cast<int64_t
>(num_rows), [=](int64_t idx64) {
40 const size_t i =
static_cast<size_t>(idx64);
42 const int64_t start = row_splits[i];
43 const int64_t end_raw = row_splits[i + 1];
44 const int64_t end = sycl::min(
45 static_cast<int64_t
>(out_col_size) + start, end_raw);
48 T* out_ptr = out_values + i * out_col_size * default_value_size;
49 for (int64_t inp_idx =
50 start *
static_cast<int64_t
>(default_value_size);
51 inp_idx < end * static_cast<int64_t>(default_value_size);
52 ++inp_idx, ++out_ptr) {
53 *out_ptr = values[inp_idx];
57 out_ptr = out_values + i * out_col_size * default_value_size +
59 static_cast<int64_t
>(default_value_size);
60 for (int64_t j = end - start;
61 j < static_cast<int64_t>(out_col_size);
62 ++j, out_ptr += default_value_size) {
63 for (
size_t k = 0; k < default_value_size; ++k) {
64 out_ptr[k] = default_value[k];
sycl::queue queue
Definition SYCLContext.cpp:88
void RaggedToDenseSYCL(sycl::queue &queue, const T *const values, const int64_t *const row_splits, const size_t row_splits_size, const size_t out_col_size, const T *const default_value, const size_t default_value_size, T *out_values)
Definition RaggedToDenseSYCL.h:26