info.h 1.01 KB
Newer Older
blkmjsian's avatar
blkmjsian committed
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef __DEQUANTIZE_INFO_H__
#define __DEQUANTIZE_INFO_H__

#include "../../../utils.h"
#include "../../tensor.h"
#include <vector>

namespace op::dequantize {

class DequantizeInfo {
    DequantizeInfo() = default;

public:
14
    int _in_features, _out_features, _num_groups;
blkmjsian's avatar
blkmjsian committed
15

16
17
18
    int in_features() const { return _in_features; }
    int out_features() const { return _out_features; }
    int num_groups() const { return _num_groups; }
blkmjsian's avatar
blkmjsian committed
19
20
21
22
23
24
25

    static utils::Result<DequantizeInfo> create(
        infiniopTensorDescriptor_t out_desc,
        infiniopTensorDescriptor_t qweight_desc,
        infiniopTensorDescriptor_t scales_desc,
        infiniopTensorDescriptor_t zeros_desc) {

26
27
28
        int _in_features = qweight_desc->dim(0);
        int _out_features = qweight_desc->dim(1);
        int _num_groups = scales_desc->dim(0);
blkmjsian's avatar
blkmjsian committed
29
30

        return utils::Result<DequantizeInfo>(DequantizeInfo{
31
32
33
            _in_features,
            _out_features,
            _num_groups});
blkmjsian's avatar
blkmjsian committed
34
35
36
37
38
39
    }
};

} // namespace op::dequantize

#endif // __DEQUANTIZE_INFO_H__