!14757 fix codexr1.2

From: @wuxuejian
Reviewed-by: @oacjiewen,@liangchenghui
Signed-off-by: @liangchenghui
This commit is contained in:
mindspore-ci-bot 2021-04-12 09:16:35 +08:00 committed by Gitee
commit 776c44954d
1 changed files with 6 additions and 5 deletions

View File

@ -59,9 +59,9 @@ bool TileCPUKernel::Launch(const std::vector<kernel::AddressPtr> &inputs,
}
template <typename T>
void TileRecTask(T *x, T *y, size_t dim, size_t *offset, std::vector<size_t> *pos, const std::vector<int> &multiples,
const std::vector<size_t> &cargo_x, const std::vector<size_t> &cargo_y,
const std::vector<size_t> &x_shape) {
void TileRecTask(const T *x, T *y, size_t dim, size_t *offset, std::vector<size_t> *pos,
const std::vector<int> &multiples, const std::vector<size_t> &cargo_x,
const std::vector<size_t> &cargo_y, const std::vector<size_t> &x_shape) {
if (dim == x_shape.size()) {
return;
}
@ -72,15 +72,16 @@ void TileRecTask(T *x, T *y, size_t dim, size_t *offset, std::vector<size_t> *po
for (size_t j = 0; j < (*pos).size(); ++j) {
x_offset += (*pos)[j] * cargo_x[j];
}
memcpy(y + *offset, x + x_offset, sizeof(T));
memcpy_s(y + *offset, sizeof(T), x + x_offset, sizeof(T));
*offset += 1;
continue;
}
TileRecTask(x, y, dim + 1, offset, pos, multiples, cargo_x, cargo_y, x_shape);
}
size_t dim_size = cargo_y[dim] * sizeof(T);
for (int m = 0; m < multiples[dim] - 1; ++m) {
size_t y_offset = *offset - cargo_y[dim];
memcpy(y + *offset, y + y_offset, cargo_y[dim] * sizeof(T));
memcpy_s(y + *offset, dim_size, y + y_offset, dim_size);
*offset += cargo_y[dim];
}
}