@@ -36,13 +36,10 @@ dil::tensor dil_tensor_from_cpu_buffer(const at::Tensor& tensor, dil::deleter_pt
3636
3737dil::tensor dil_tensor_from_dil_buffer (const at::Tensor& tensor) {
3838 auto dil_buffer = cpu::ShadeDataContext::getDilStorage (tensor);
39- // for low prcision, x.reshape() + linear, has some issue, need return dil_buffer directly
40- // return dil_buffer;
41-
42- if (dil_buffer.is_public_format ()) {
39+ auto data_type = dil_buffer.get_data_type ();
40+ if (dil_buffer.is_public_format () && !(data_type == dil::data_type::s8 || data_type == dil::data_type::u8 )) {
4341 auto size = tensor.sizes ().vec ();
4442 auto stride = tensor.strides ().vec ();
45- auto data_type = dil_buffer.get_data_type ();
4643 auto data_ptr = static_cast <void *>(
4744 static_cast <char *>(dil_buffer.get_data_handle ()) +
4845 dil_buffer.get_item_size () * tensor.storage_offset ());
@@ -56,10 +53,6 @@ dil::tensor dil_tensor_from_dil_buffer(const at::Tensor& tensor) {
5653 if (dil_buffer.has_workspace ()) {
5754 result.copy_workspace (dil_buffer);
5855 }
59-
60- if (dil_buffer.has_scale ()) {
61- result.set_scale (dil_buffer.get_scale ());
62- }
6356 // TODO(xpz): copy scales and zero_points of qtensor (what if slicing?)
6457
6558 return result;
@@ -160,12 +153,6 @@ void reorder_to_dtype(const at::Tensor& tensor, at::ScalarType dst_scalar_type,
160153 return ;
161154 }
162155 auto dst_desc = src.get_desc ().to_type (get_dil_data_type (dst_scalar_type));
163- // src may bf16 or fp32 tensor with block format,
164- // there has issue for conv weight prepack if given a block format weight
165- if (!src.is_public_format ()) {
166- dst_desc = dst_desc.to_default_format ();
167- }
168-
169156 reorder_to_desc (tensor, dst_desc, scales);
170157}
171158
0 commit comments