ops.hpp 2.7 KB
Newer Older
1
2
3
4
5
6
7
#ifndef __INFINIOPTEST_OPS_HPP__
#define __INFINIOPTEST_OPS_HPP__
#include "test.hpp"

/*
 * Declare all the tests here
 */
PanZezhong's avatar
PanZezhong committed
8
DECLARE_INFINIOP_TEST(gemm)
9
DECLARE_INFINIOP_TEST(random_sample)
10
DECLARE_INFINIOP_TEST(rms_norm)
11
DECLARE_INFINIOP_TEST(mul)
Catheriany's avatar
Catheriany committed
12
DECLARE_INFINIOP_TEST(rope)
13
DECLARE_INFINIOP_TEST(clip)
MaHang's avatar
MaHang committed
14
DECLARE_INFINIOP_TEST(swiglu)
15
DECLARE_INFINIOP_TEST(add)
PanZezhong's avatar
PanZezhong committed
16
17
18
19
20
DECLARE_INFINIOP_TEST(atanh)
DECLARE_INFINIOP_TEST(addcmul)
DECLARE_INFINIOP_TEST(cdist)
DECLARE_INFINIOP_TEST(binary_cross_entropy_with_logits)
DECLARE_INFINIOP_TEST(reciprocal)
21
22
DECLARE_INFINIOP_TEST(causal_softmax)
DECLARE_INFINIOP_TEST(rearrange)
23
DECLARE_INFINIOP_TEST(silu)
24
DECLARE_INFINIOP_TEST(sub)
25
26
27
DECLARE_INFINIOP_TEST(zeros)
DECLARE_INFINIOP_TEST(ones)

28
29
30
DECLARE_INFINIOP_TEST(sigmoid)
DECLARE_INFINIOP_TEST(topkrouter)
DECLARE_INFINIOP_TEST(topksoftmax)
31
32
33
34
35
36
37
#define REGISTER_INFINIOP_TEST(name)                      \
    {                                                     \
        #name,                                            \
        {                                                 \
            infiniop_test::name::Test::build,             \
            infiniop_test::name::Test::attribute_names(), \
            infiniop_test::name::Test::tensor_names(),    \
38
            infiniop_test::name::Test::output_names(),    \
39
        }},
40
41
42
43

/*
 * Register all the tests here
 */
44
45
46
47
48
49
50
51
52
53
54
55
56
#define TEST_BUILDER_MAPPINGS                  \
    {                                          \
        REGISTER_INFINIOP_TEST(gemm)           \
        REGISTER_INFINIOP_TEST(random_sample)  \
        REGISTER_INFINIOP_TEST(add)            \
        REGISTER_INFINIOP_TEST(mul)            \
        REGISTER_INFINIOP_TEST(clip)           \
        REGISTER_INFINIOP_TEST(swiglu)         \
        REGISTER_INFINIOP_TEST(rope)           \
        REGISTER_INFINIOP_TEST(rms_norm)       \
        REGISTER_INFINIOP_TEST(causal_softmax) \
        REGISTER_INFINIOP_TEST(rearrange)      \
        REGISTER_INFINIOP_TEST(sub)            \
57
58
        REGISTER_INFINIOP_TEST(zeros)          \
        REGISTER_INFINIOP_TEST(ones)           \
59
60
61
        REGISTER_INFINIOP_TEST(sigmoid)        \
        REGISTER_INFINIOP_TEST(topkrouter)     \
        REGISTER_INFINIOP_TEST(topksoftmax)    \
62
        REGISTER_INFINIOP_TEST(silu)           \
Catheriany's avatar
Catheriany committed
63
    }
64
65

namespace infiniop_test {
PanZezhong's avatar
PanZezhong committed
66
67

// Global variable for {op_name: builder} mappings
68
69
extern std::unordered_map<std::string, const TestBuilder> TEST_BUILDERS;

70
71
72
73
74
75
76
77
78
79
80
81
template <typename V>
bool check_names(
    const std::unordered_map<std::string, V> &map,
    const std::vector<std::string> &names) {
    for (auto const &name : names) {
        if (map.find(name) == map.end()) {
            return false;
        }
    }
    return true;
}

82
83
84
} // namespace infiniop_test

#endif