Skip to content

Commit 3e15b81

Browse files
Merge pull request #1116 from InfiniTensor/issue/1031_T1-1-31
【比赛2025秋】T1-1-31
2 parents 4e53d3f + 9b2992e commit 3e15b81

File tree

101 files changed

+5971
-74
lines changed

Some content is hidden

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

101 files changed

+5971
-74
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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

include/infinicore/ops/kron.hpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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

include/infinicore/ops/selu.hpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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

include/infinicore/ops/sinh.hpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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

include/infiniop.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "infiniop/ops/attention.h"
2020
#include "infiniop/ops/avg_pool1d.h"
2121
#include "infiniop/ops/binary_cross_entropy_with_logits.h"
22+
#include "infiniop/ops/block_diag.h"
2223
#include "infiniop/ops/broadcast_to.h"
2324
#include "infiniop/ops/causal_softmax.h"
2425
#include "infiniop/ops/cdist.h"
@@ -41,12 +42,14 @@
4142
#include "infiniop/ops/gemm.h"
4243
#include "infiniop/ops/hardswish.h"
4344
#include "infiniop/ops/hardtanh.h"
45+
#include "infiniop/ops/hinge_embedding_loss.h"
4446
#include "infiniop/ops/huber_loss.h"
4547
#include "infiniop/ops/hypot.h"
4648
#include "infiniop/ops/index_add.h"
4749
#include "infiniop/ops/index_copy.h"
4850
#include "infiniop/ops/inner.h"
4951
#include "infiniop/ops/int8_gemm.h"
52+
#include "infiniop/ops/kron.h"
5053
#include "infiniop/ops/kthvalue.h"
5154
#include "infiniop/ops/kv_caching.h"
5255
#include "infiniop/ops/layer_norm.h"
@@ -73,9 +76,11 @@
7376
#include "infiniop/ops/rms_norm.h"
7477
#include "infiniop/ops/rope.h"
7578
#include "infiniop/ops/scatter.h"
79+
#include "infiniop/ops/selu.h"
7680
#include "infiniop/ops/sigmoid.h"
7781
#include "infiniop/ops/silu.h"
7882
#include "infiniop/ops/silu_and_mul.h"
83+
#include "infiniop/ops/sinh.h"
7984
#include "infiniop/ops/smooth_l1_loss.h"
8085
#include "infiniop/ops/softmax.h"
8186
#include "infiniop/ops/softplus.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+
__INFINI_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+
__INFINI_C __export infiniStatus_t infiniopGetBlockDiagWorkspaceSize(infiniopBlockDiagDescriptor_t desc, size_t *size);
15+
16+
__INFINI_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+
__INFINI_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+
__INFINI_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+
__INFINI_C __export infiniStatus_t infiniopGetHingeEmbeddingLossWorkspaceSize(infiniopHingeEmbeddingLossDescriptor_t desc, size_t *size);
17+
18+
__INFINI_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+
__INFINI_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+
__INFINI_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+
__INFINI_C __export infiniStatus_t infiniopGetKronWorkspaceSize(infiniopKronDescriptor_t desc, size_t *size);
15+
16+
__INFINI_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+
__INFINI_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+
__INFINI_C __export infiniStatus_t infiniopCreateSeluDescriptor(infiniopHandle_t handle,
9+
infiniopSeluDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__INFINI_C __export infiniStatus_t infiniopGetSeluWorkspaceSize(infiniopSeluDescriptor_t desc, size_t *size);
14+
15+
__INFINI_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+
__INFINI_C __export infiniStatus_t infiniopDestroySeluDescriptor(infiniopSeluDescriptor_t desc);
23+
24+
#endif

0 commit comments

Comments
 (0)