未验证 提交 5640fe80 编写于 作者: J Juncheng 提交者: GitHub

Remove CopyElem (#6591)

Co-authored-by: Noneflow-ci-bot <69100618+oneflow-ci-bot@users.noreply.github.com>
上级 8d35f739
......@@ -85,18 +85,6 @@ template<typename T>
struct KernelUtil<DeviceType::kGPU, T, typename std::enable_if<IsIntegral<T>::value>::type>
: public GpuKernelUtilIf<T, KernelUtil<DeviceType::kGPU, T>> {};
template<typename T, typename U>
typename std::enable_if<std::is_same<T, U>::value>::type CopyElem(const T* in_dptr, U* out_dptr,
int64_t elem_num) {
Memcpy<DeviceType::kCPU>(nullptr, out_dptr, in_dptr, elem_num * sizeof(T));
}
template<typename T, typename U>
typename std::enable_if<!std::is_same<T, U>::value>::type CopyElem(const T* in_dptr, U* out_dptr,
int64_t elem_num) {
FOR_RANGE(int64_t, i, 0, elem_num) { *(out_dptr++) = static_cast<U>(*(in_dptr++)); }
}
} // namespace oneflow
#endif // ONEFLOW_CORE_KERNEL_KERNEL_UTIL_H_
......@@ -35,7 +35,7 @@ void CopyFromTensorBuffer(T* image_ptr, const TensorBuffer& image_buffer, const
FOR_RANGE(int, i, 0, h) {
const F* from = image_buffer.data<F>() + i * w * c;
T* to = image_ptr + i * batch_width * channels;
CopyElem(from, to, w * c);
std::transform(from, from + w * c, to, [](F v) { return static_cast<T>(v); });
}
}
......
......@@ -40,7 +40,8 @@ void DecodeOneRawOFRecord(const Feature& feature, T* dptr, int64_t sample_elem_c
const auto& value0 = feature.bytes_list().value(0);
auto in_dptr = reinterpret_cast<const int8_t*>(value0.c_str());
sample_elem_cnt = std::min<int64_t>(sample_elem_cnt, value0.size());
CopyElem<int8_t, T>(in_dptr, dptr, sample_elem_cnt);
std::transform(in_dptr, in_dptr + sample_elem_cnt, dptr,
[](int8_t v) { return static_cast<T>(v); });
}
#define DEFINE_ONE_ELIF(PbT, CppT) \
else if (feature.has_##PbT##_list()) { \
......@@ -56,7 +57,8 @@ void DecodeOneRawOFRecord(const Feature& feature, T* dptr, int64_t sample_elem_c
CHECK_EQ(sample_elem_cnt, list.value_size()); \
} \
} \
CopyElem<CppT, T>(in_dptr, dptr, sample_elem_cnt); \
std::transform(in_dptr, in_dptr + sample_elem_cnt, dptr, \
[](CppT v) { return static_cast<T>(v); }); \
if (padding_elem_num > 0) { \
std::memset(dptr + sample_elem_cnt, 0, padding_elem_num * sizeof(T)); \
} \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册