Skip to content

Commit 53bfa53

Browse files
committed
[T1-1-1]: Where operator with cpu nvidia metax iluvatar and test
1 parent 7c84868 commit 53bfa53

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1507
-508
lines changed

include/infiniop/ops/where.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#ifndef __INFINIOP_WHERE_API_H__
2+
#define __INFINIOP_WHERE_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopWhereDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateWhereDescriptor(infiniopHandle_t handle,
9+
infiniopWhereDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t c,
11+
infiniopTensorDescriptor_t a,
12+
infiniopTensorDescriptor_t b,
13+
infiniopTensorDescriptor_t condition);
14+
15+
__C __export infiniStatus_t infiniopGetWhereWorkspaceSize(infiniopWhereDescriptor_t desc, size_t *size);
16+
17+
__C __export infiniStatus_t infiniopWhere(infiniopWhereDescriptor_t desc,
18+
void *workspace,
19+
size_t workspace_size,
20+
void *c,
21+
const void *a,
22+
const void *b,
23+
const void *condition,
24+
void *stream);
25+
26+
__C __export infiniStatus_t infiniopDestroyWhereDescriptor(infiniopWhereDescriptor_t desc);
27+
28+
#endif

src/infiniop-test/src/ops/cast.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ std::shared_ptr<infiniop_test::Result> Test::run(
5858
auto output = _attributes->output->to(device, device_id);
5959

6060
CHECK_OR(infiniopCreateCastDescriptor(handle, &op_desc,
61-
output->desc(),
62-
input->desc()),
61+
output->desc(),
62+
input->desc()),
6363
return TEST_FAILED(OP_CREATION_FAILED, "Failed to create op descriptor."));
6464
size_t workspace_size;
6565
CHECK_OR(infiniopGetCastWorkspaceSize(op_desc, &workspace_size),
@@ -68,9 +68,9 @@ std::shared_ptr<infiniop_test::Result> Test::run(
6868
CHECK_OR(infinirtMalloc(&workspace, workspace_size),
6969
return TEST_FAILED(OP_CREATION_FAILED, "Failed to allocate workspace."));
7070
CHECK_OR(infiniopCast(op_desc, workspace, workspace_size,
71-
output->data(),
72-
input->data(),
73-
nullptr),
71+
output->data(),
72+
input->data(),
73+
nullptr),
7474
return TEST_FAILED(OP_EXECUTION_FAILED, "Failed during execution."));
7575

7676
try {
@@ -94,16 +94,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
9494
return TEST_PASSED(elapsed_time);
9595
}
9696

97-
std::vector<std::string> Test::attribute_names() {
98-
return {};
97+
std::vector<std::string> Test::attribute_names() {
98+
return {};
9999
}
100100

101-
std::vector<std::string> Test::tensor_names() {
102-
return {"input", "output", "ans"};
101+
std::vector<std::string> Test::tensor_names() {
102+
return {"input", "output", "ans"};
103103
}
104104

105-
std::vector<std::string> Test::output_names() {
106-
return {"output"};
105+
std::vector<std::string> Test::output_names() {
106+
return {"output"};
107107
}
108108

109109
std::string Test::toString() const {
@@ -119,4 +119,4 @@ std::string Test::toString() const {
119119
Test::~Test() {
120120
delete _attributes;
121121
}
122-
} // namespace infiniop_test::cast
122+
} // namespace infiniop_test::cast

src/infiniop-test/src/ops/cos.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
8686
return TEST_PASSED(elapsed_time);
8787
}
8888

89-
std::vector<std::string> Test::attribute_names() {
90-
return {};
89+
std::vector<std::string> Test::attribute_names() {
90+
return {};
9191
}
9292

93-
std::vector<std::string> Test::tensor_names() {
94-
return {"input", "output", "ans"};
93+
std::vector<std::string> Test::tensor_names() {
94+
return {"input", "output", "ans"};
9595
}
9696

97-
std::vector<std::string> Test::output_names() {
98-
return {"output"};
97+
std::vector<std::string> Test::output_names() {
98+
return {"output"};
9999
}
100100

101101
std::string Test::toString() const {
@@ -111,4 +111,4 @@ std::string Test::toString() const {
111111
Test::~Test() {
112112
delete _attributes;
113113
}
114-
} // namespace infiniop_test::cos
114+
} // namespace infiniop_test::cos

src/infiniop-test/src/ops/exp.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ std::shared_ptr<Test> Test::build(
4141
test->_atol = 1e-6;
4242
}
4343

44-
4544
return test;
4645
}
4746

@@ -87,16 +86,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
8786
return TEST_PASSED(elapsed_time);
8887
}
8988

90-
std::vector<std::string> Test::attribute_names() {
91-
return {};
89+
std::vector<std::string> Test::attribute_names() {
90+
return {};
9291
}
9392

94-
std::vector<std::string> Test::tensor_names() {
95-
return {"input", "output", "ans"};
93+
std::vector<std::string> Test::tensor_names() {
94+
return {"input", "output", "ans"};
9695
}
9796

98-
std::vector<std::string> Test::output_names() {
99-
return {"output"};
97+
std::vector<std::string> Test::output_names() {
98+
return {"output"};
10099
}
101100

102101
std::string Test::toString() const {
@@ -112,4 +111,4 @@ std::string Test::toString() const {
112111
Test::~Test() {
113112
delete _attributes;
114113
}
115-
} // namespace infiniop_test::exp
114+
} // namespace infiniop_test::exp

src/infiniop-test/src/ops/hardswish.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ std::shared_ptr<infiniop_test::Result> Test::run(
5050
auto input = _attributes->input->to(device, device_id);
5151
auto output = _attributes->output->to(device, device_id);
5252
CHECK_OR(infiniopCreateHardswishDescriptor(handle, &op_desc,
53-
output->desc(),
54-
input->desc()),
53+
output->desc(),
54+
input->desc()),
5555
return TEST_FAILED(OP_CREATION_FAILED, "Failed to create op descriptor."));
5656
size_t workspace_size;
5757
CHECK_OR(infiniopGetHardswishWorkspaceSize(op_desc, &workspace_size),
@@ -60,9 +60,9 @@ std::shared_ptr<infiniop_test::Result> Test::run(
6060
CHECK_OR(infinirtMalloc(&workspace, workspace_size),
6161
return TEST_FAILED(OP_CREATION_FAILED, "Failed to allocate workspace."));
6262
CHECK_OR(infiniopHardswish(op_desc, workspace, workspace_size,
63-
output->data(),
64-
input->data(),
65-
nullptr),
63+
output->data(),
64+
input->data(),
65+
nullptr),
6666
return TEST_FAILED(OP_EXECUTION_FAILED, "Failed during execution."));
6767

6868
try {
@@ -86,16 +86,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
8686
return TEST_PASSED(elapsed_time);
8787
}
8888

89-
std::vector<std::string> Test::attribute_names() {
90-
return {};
89+
std::vector<std::string> Test::attribute_names() {
90+
return {};
9191
}
9292

93-
std::vector<std::string> Test::tensor_names() {
94-
return {"input", "output", "ans"};
93+
std::vector<std::string> Test::tensor_names() {
94+
return {"input", "output", "ans"};
9595
}
9696

97-
std::vector<std::string> Test::output_names() {
98-
return {"output"};
97+
std::vector<std::string> Test::output_names() {
98+
return {"output"};
9999
}
100100

101101
std::string Test::toString() const {
@@ -111,4 +111,4 @@ std::string Test::toString() const {
111111
Test::~Test() {
112112
delete _attributes;
113113
}
114-
} // namespace infiniop_test::hardswish
114+
} // namespace infiniop_test::hardswish

src/infiniop-test/src/ops/leakyrelu.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ std::shared_ptr<infiniop_test::Result> Test::run(
5454
auto input = _attributes->input->to(device, device_id);
5555
auto output = _attributes->output->to(device, device_id);
5656
CHECK_OR(infiniopCreateLeakyreluDescriptor(handle, &op_desc,
57-
output->desc(),
58-
input->desc(),
59-
_attributes->negative_slope),
57+
output->desc(),
58+
input->desc(),
59+
_attributes->negative_slope),
6060
return TEST_FAILED(OP_CREATION_FAILED, "Failed to create op descriptor."));
61-
61+
6262
size_t workspace_size;
6363
CHECK_OR(infiniopGetLeakyreluWorkspaceSize(op_desc, &workspace_size),
6464
return TEST_FAILED(OP_CREATION_FAILED, "Failed to get workspace size."));
@@ -68,9 +68,9 @@ std::shared_ptr<infiniop_test::Result> Test::run(
6868
return TEST_FAILED(OP_CREATION_FAILED, "Failed to allocate workspace"));
6969
}
7070
CHECK_OR(infiniopLeakyrelu(op_desc, workspace, workspace_size,
71-
output->data(),
72-
input->data(),
73-
nullptr),
71+
output->data(),
72+
input->data(),
73+
nullptr),
7474
return TEST_FAILED(OP_EXECUTION_FAILED, "Failed during execution."));
7575

7676
try {
@@ -94,16 +94,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
9494
return TEST_PASSED(elapsed_time);
9595
}
9696

97-
std::vector<std::string> Test::attribute_names() {
98-
return {"negative_slope"};
97+
std::vector<std::string> Test::attribute_names() {
98+
return {"negative_slope"};
9999
}
100100

101-
std::vector<std::string> Test::tensor_names() {
102-
return {"input", "output", "ans"};
101+
std::vector<std::string> Test::tensor_names() {
102+
return {"input", "output", "ans"};
103103
}
104104

105-
std::vector<std::string> Test::output_names() {
106-
return {"output"};
105+
std::vector<std::string> Test::output_names() {
106+
return {"output"};
107107
}
108108

109109
std::string Test::toString() const {
@@ -120,4 +120,4 @@ std::string Test::toString() const {
120120
Test::~Test() {
121121
delete _attributes;
122122
}
123-
} // namespace infiniop_test::leakyrelu
123+
} // namespace infiniop_test::leakyrelu

src/infiniop-test/src/ops/sigmoid_backward.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ std::shared_ptr<infiniop_test::Result> Test::run(
5454
auto grad_output = _attributes->grad_output->to(device, device_id);
5555
auto grad_input = _attributes->grad_input->to(device, device_id);
5656
CHECK_OR(infiniopCreateSigmoidBackwardDescriptor(handle, &op_desc,
57-
grad_input->desc(),
58-
input->desc(),
59-
grad_output->desc()),
57+
grad_input->desc(),
58+
input->desc(),
59+
grad_output->desc()),
6060
return TEST_FAILED(OP_CREATION_FAILED, "Failed to create op descriptor."));
6161
size_t workspace_size;
6262
CHECK_OR(infiniopGetSigmoidBackwardWorkspaceSize(op_desc, &workspace_size),
@@ -65,10 +65,10 @@ std::shared_ptr<infiniop_test::Result> Test::run(
6565
CHECK_OR(infinirtMalloc(&workspace, workspace_size),
6666
return TEST_FAILED(OP_CREATION_FAILED, "Failed to allocate workspace."));
6767
CHECK_OR(infiniopSigmoidBackward(op_desc, workspace, workspace_size,
68-
grad_input->data(),
69-
input->data(),
70-
grad_output->data(),
71-
nullptr),
68+
grad_input->data(),
69+
input->data(),
70+
grad_output->data(),
71+
nullptr),
7272
return TEST_FAILED(OP_EXECUTION_FAILED, "Failed during execution."));
7373

7474
try {
@@ -93,16 +93,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
9393
return TEST_PASSED(elapsed_time);
9494
}
9595

96-
std::vector<std::string> Test::attribute_names() {
97-
return {};
96+
std::vector<std::string> Test::attribute_names() {
97+
return {};
9898
}
9999

100-
std::vector<std::string> Test::tensor_names() {
101-
return {"input", "grad_output", "grad_input", "ans"};
100+
std::vector<std::string> Test::tensor_names() {
101+
return {"input", "grad_output", "grad_input", "ans"};
102102
}
103103

104-
std::vector<std::string> Test::output_names() {
105-
return {"grad_input"};
104+
std::vector<std::string> Test::output_names() {
105+
return {"grad_input"};
106106
}
107107

108108
std::string Test::toString() const {
@@ -119,4 +119,4 @@ std::string Test::toString() const {
119119
Test::~Test() {
120120
delete _attributes;
121121
}
122-
} // namespace infiniop_test::sigmoid_backward
122+
} // namespace infiniop_test::sigmoid_backward

src/infiniop-test/src/ops/sin.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
8686
return TEST_PASSED(elapsed_time);
8787
}
8888

89-
std::vector<std::string> Test::attribute_names() {
90-
return {};
89+
std::vector<std::string> Test::attribute_names() {
90+
return {};
9191
}
9292

93-
std::vector<std::string> Test::tensor_names() {
94-
return {"input", "output", "ans"};
93+
std::vector<std::string> Test::tensor_names() {
94+
return {"input", "output", "ans"};
9595
}
9696

97-
std::vector<std::string> Test::output_names() {
98-
return {"output"};
97+
std::vector<std::string> Test::output_names() {
98+
return {"output"};
9999
}
100100

101101
std::string Test::toString() const {
@@ -111,4 +111,4 @@ std::string Test::toString() const {
111111
Test::~Test() {
112112
delete _attributes;
113113
}
114-
} // namespace infiniop_test::sin
114+
} // namespace infiniop_test::sin

src/infiniop-test/src/ops/tanh.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ std::shared_ptr<infiniop_test::Result> Test::run(
5050
auto input = _attributes->input->to(device, device_id);
5151
auto output = _attributes->output->to(device, device_id);
5252
CHECK_OR(infiniopCreateTanhDescriptor(handle, &op_desc,
53-
output->desc(),
54-
input->desc()),
53+
output->desc(),
54+
input->desc()),
5555
return TEST_FAILED(OP_CREATION_FAILED, "Failed to create op descriptor."));
5656
size_t workspace_size;
5757
CHECK_OR(infiniopGetTanhWorkspaceSize(op_desc, &workspace_size),
@@ -60,9 +60,9 @@ std::shared_ptr<infiniop_test::Result> Test::run(
6060
CHECK_OR(infinirtMalloc(&workspace, workspace_size),
6161
return TEST_FAILED(OP_CREATION_FAILED, "Failed to allocate workspace."));
6262
CHECK_OR(infiniopTanh(op_desc, workspace, workspace_size,
63-
output->data(),
64-
input->data(),
65-
nullptr),
63+
output->data(),
64+
input->data(),
65+
nullptr),
6666
return TEST_FAILED(OP_EXECUTION_FAILED, "Failed during execution."));
6767

6868
try {
@@ -86,16 +86,16 @@ std::shared_ptr<infiniop_test::Result> Test::run(
8686
return TEST_PASSED(elapsed_time);
8787
}
8888

89-
std::vector<std::string> Test::attribute_names() {
90-
return {};
89+
std::vector<std::string> Test::attribute_names() {
90+
return {};
9191
}
9292

93-
std::vector<std::string> Test::tensor_names() {
94-
return {"input", "output", "ans"};
93+
std::vector<std::string> Test::tensor_names() {
94+
return {"input", "output", "ans"};
9595
}
9696

97-
std::vector<std::string> Test::output_names() {
98-
return {"output"};
97+
std::vector<std::string> Test::output_names() {
98+
return {"output"};
9999
}
100100

101101
std::string Test::toString() const {
@@ -111,4 +111,4 @@ std::string Test::toString() const {
111111
Test::~Test() {
112112
delete _attributes;
113113
}
114-
} // namespace infiniop_test::tanh
114+
} // namespace infiniop_test::tanh

0 commit comments

Comments
 (0)