MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / ToOneFlowDataType

Function ToOneFlowDataType

oneflow/api/python/dlpack/converter.cpp:38–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36}
37
38Maybe<DataType> ToOneFlowDataType(const DLDataType& dtype) {
39 DataType ofdtype = DataType::kInvalidDataType;
40 CHECK_EQ_OR_RETURN(dtype.lanes, 1) << "OneFlow does not support lanes != 1";
41 switch (dtype.code) {
42 case DLDataTypeCode::kDLUInt:
43 switch (dtype.bits) {
44 case 8: ofdtype = DataType::kUInt8; break;
45 default:
46 UNIMPLEMENTED_THEN_RETURN() << "Unsupported data type: " << dtype.code << dtype.bits;
47 }
48 break;
49 case DLDataTypeCode::kDLInt:
50 switch (dtype.bits) {
51 case 8: ofdtype = DataType::kInt8; break;
52 case 16: ofdtype = DataType::kInt16; break;
53 case 32: ofdtype = DataType::kInt32; break;
54 case 64: ofdtype = DataType::kInt64; break;
55 default:
56 UNIMPLEMENTED_THEN_RETURN() << "Unsupported data type: " << dtype.code << dtype.bits;
57 }
58 break;
59 case DLDataTypeCode::kDLFloat:
60 switch (dtype.bits) {
61 case 16: ofdtype = DataType::kFloat16; break;
62 case 32: ofdtype = DataType::kFloat; break;
63 case 64: ofdtype = DataType::kDouble; break;
64 default:
65 UNIMPLEMENTED_THEN_RETURN() << "Unsupported data type: " << dtype.code << dtype.bits;
66 }
67 break;
68 case DLDataTypeCode::kDLBfloat:
69 switch (dtype.bits) {
70 case 16: ofdtype = DataType::kBFloat16; break;
71 default: UNIMPLEMENTED_THEN_RETURN() << "Unsupported data type: bfloat" << dtype.bits;
72 }
73 break;
74 case DLDataTypeCode::kDLComplex:
75 UNIMPLEMENTED_THEN_RETURN() << "Unsupported data type: complex" << dtype.bits;
76 break;
77 default: UNIMPLEMENTED_THEN_RETURN() << "Unsupported code " << dtype.code;
78 }
79 CHECK_NE_OR_RETURN(ofdtype, DataType::kInvalidDataType);
80 return ofdtype;
81}
82
83Maybe<one::Tensor> fromDLPack(const DLManagedTensor* src) {
84 using namespace one;

Callers 1

fromDLPackFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected