Skip to content

Commit e1aafb1

Browse files
LaiQuan-conquerPanZezhong1725
authored andcommitted
issue/1031 merge T1-1-31
1 parent ee65934 commit e1aafb1

File tree

88 files changed

+5805
-0
lines changed

Some content is hidden

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

88 files changed

+5805
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
#include <vector>
7+
8+
namespace infinicore::op {
9+
10+
class BlockDiag {
11+
public:
12+
using schema = void (*)(Tensor, const std::vector<Tensor> &);
13+
static void execute(Tensor output, const std::vector<Tensor> &inputs);
14+
static common::OpDispatcher<schema> &dispatcher();
15+
};
16+
17+
Tensor block_diag(const std::vector<Tensor> &inputs);
18+
void block_diag_(Tensor output, const std::vector<Tensor> &inputs);
19+
20+
} // namespace infinicore::op
21+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
namespace infinicore::op {
7+
8+
class HingeEmbeddingLoss {
9+
public:
10+
using schema = void (*)(Tensor, Tensor, Tensor, double, int);
11+
static void execute(Tensor output, Tensor input, Tensor target, double margin, int reduction);
12+
static common::OpDispatcher<schema> &dispatcher();
13+
};
14+
15+
Tensor hinge_embedding_loss(Tensor input, Tensor target, double margin = 1.0, int reduction = 1);
16+
void hinge_embedding_loss_(Tensor output, Tensor input, Tensor target, double margin, int reduction);
17+
18+
} // namespace infinicore::op
19+

include/infinicore/ops/kron.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
namespace infinicore::op {
7+
8+
class Kron {
9+
public:
10+
using schema = void (*)(Tensor, Tensor, Tensor);
11+
static void execute(Tensor output, Tensor a, Tensor b);
12+
static common::OpDispatcher<schema> &dispatcher();
13+
};
14+
15+
Tensor kron(Tensor a, Tensor b);
16+
void kron_(Tensor output, Tensor a, Tensor b);
17+
18+
} // namespace infinicore::op
19+

include/infinicore/ops/selu.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
namespace infinicore::op {
7+
8+
class Selu {
9+
public:
10+
using schema = void (*)(Tensor, Tensor);
11+
static void execute(Tensor output, Tensor input);
12+
static common::OpDispatcher<schema> &dispatcher();
13+
};
14+
15+
Tensor selu(Tensor input);
16+
void selu_(Tensor output, Tensor input);
17+
18+
} // namespace infinicore::op
19+

include/infinicore/ops/sinh.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
namespace infinicore::op {
7+
8+
class Sinh {
9+
public:
10+
using schema = void (*)(Tensor, Tensor);
11+
static void execute(Tensor output, Tensor input);
12+
static common::OpDispatcher<schema> &dispatcher();
13+
};
14+
15+
Tensor sinh(Tensor input);
16+
void sinh_(Tensor output, Tensor input);
17+
18+
} // namespace infinicore::op
19+

include/infiniop.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "infiniop/ops/avg_pool1d.h"
2121
#include "infiniop/ops/binary_cross_entropy_with_logits.h"
2222
#include "infiniop/ops/broadcast_to.h"
23+
#include "infiniop/ops/block_diag.h"
2324
#include "infiniop/ops/causal_softmax.h"
2425
#include "infiniop/ops/cdist.h"
2526
#include "infiniop/ops/clip.h"
@@ -48,6 +49,8 @@
4849
#include "infiniop/ops/inner.h"
4950
#include "infiniop/ops/int8_gemm.h"
5051
#include "infiniop/ops/kthvalue.h"
52+
#include "infiniop/ops/hinge_embedding_loss.h"
53+
#include "infiniop/ops/kron.h"
5154
#include "infiniop/ops/kv_caching.h"
5255
#include "infiniop/ops/layer_norm.h"
5356
#include "infiniop/ops/ldexp.h"
@@ -70,7 +73,9 @@
7073
#include "infiniop/ops/rms_norm.h"
7174
#include "infiniop/ops/rope.h"
7275
#include "infiniop/ops/scatter.h"
76+
#include "infiniop/ops/selu.h"
7377
#include "infiniop/ops/sigmoid.h"
78+
#include "infiniop/ops/sinh.h"
7479
#include "infiniop/ops/silu.h"
7580
#include "infiniop/ops/silu_and_mul.h"
7681
#include "infiniop/ops/smooth_l1_loss.h"

include/infiniop/ops/block_diag.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#ifndef __INFINIOP_BLOCK_DIAG_API_H__
2+
#define __INFINIOP_BLOCK_DIAG_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopBlockDiagDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateBlockDiagDescriptor(infiniopHandle_t handle,
9+
infiniopBlockDiagDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t *x,
12+
size_t num_inputs);
13+
14+
__C __export infiniStatus_t infiniopGetBlockDiagWorkspaceSize(infiniopBlockDiagDescriptor_t desc, size_t *size);
15+
16+
__C __export infiniStatus_t infiniopBlockDiag(infiniopBlockDiagDescriptor_t desc,
17+
void *workspace,
18+
size_t workspace_size,
19+
void *y,
20+
const void **x,
21+
void *stream);
22+
23+
__C __export infiniStatus_t infiniopDestroyBlockDiagDescriptor(infiniopBlockDiagDescriptor_t desc);
24+
25+
#endif
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#ifndef __INFINIOP_HINGE_EMBEDDING_LOSS_API_H__
2+
#define __INFINIOP_HINGE_EMBEDDING_LOSS_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopHingeEmbeddingLossDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateHingeEmbeddingLossDescriptor(infiniopHandle_t handle,
9+
infiniopHingeEmbeddingLossDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t input,
12+
infiniopTensorDescriptor_t target,
13+
double margin,
14+
int reduction);
15+
16+
__C __export infiniStatus_t infiniopGetHingeEmbeddingLossWorkspaceSize(infiniopHingeEmbeddingLossDescriptor_t desc, size_t *size);
17+
18+
__C __export infiniStatus_t infiniopHingeEmbeddingLoss(infiniopHingeEmbeddingLossDescriptor_t desc,
19+
void *workspace,
20+
size_t workspace_size,
21+
void *y,
22+
const void *input,
23+
const void *target,
24+
void *stream);
25+
26+
__C __export infiniStatus_t infiniopDestroyHingeEmbeddingLossDescriptor(infiniopHingeEmbeddingLossDescriptor_t desc);
27+
28+
#endif

include/infiniop/ops/kron.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#ifndef __INFINIOP_KRON_API_H__
2+
#define __INFINIOP_KRON_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopKronDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateKronDescriptor(infiniopHandle_t handle,
9+
infiniopKronDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x1,
12+
infiniopTensorDescriptor_t x2);
13+
14+
__C __export infiniStatus_t infiniopGetKronWorkspaceSize(infiniopKronDescriptor_t desc, size_t *size);
15+
16+
__C __export infiniStatus_t infiniopKron(infiniopKronDescriptor_t desc,
17+
void *workspace,
18+
size_t workspace_size,
19+
void *y,
20+
const void *x1,
21+
const void *x2,
22+
void *stream);
23+
24+
__C __export infiniStatus_t infiniopDestroyKronDescriptor(infiniopKronDescriptor_t desc);
25+
26+
#endif

include/infiniop/ops/selu.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_SELU_API_H__
2+
#define __INFINIOP_SELU_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopSeluDescriptor_t;
7+
8+
__C __export infiniStatus_t infiniopCreateSeluDescriptor(infiniopHandle_t handle,
9+
infiniopSeluDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__C __export infiniStatus_t infiniopGetSeluWorkspaceSize(infiniopSeluDescriptor_t desc, size_t *size);
14+
15+
__C __export infiniStatus_t infiniopSelu(infiniopSeluDescriptor_t desc,
16+
void *workspace,
17+
size_t workspace_size,
18+
void *y,
19+
const void *x,
20+
void *stream);
21+
22+
__C __export infiniStatus_t infiniopDestroySeluDescriptor(infiniopSeluDescriptor_t desc);
23+
24+
#endif

0 commit comments

Comments
 (0)