Skip to content

Commit 0c92aa0

Browse files
authored
Merge pull request #1080 from InfiniTensor/issue/1031_T1-1-9_remerge
【比赛2025秋】T1-1-9
2 parents 05dc1ba + 55fa124 commit 0c92aa0

69 files changed

Lines changed: 2732 additions & 21 deletions

Some content is hidden

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

include/infinicore/ops.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
#pragma once
22

3+
#include "ops/adaptive_max_pool1d.hpp"
34
#include "ops/add.hpp"
45
#include "ops/add_rms_norm.hpp"
56
#include "ops/addcmul.hpp"
7+
#include "ops/asinh.hpp"
68
#include "ops/atanh.hpp"
79
#include "ops/attention.hpp"
810
#include "ops/avg_pool1d.hpp"
11+
#include "ops/baddbmm.hpp"
12+
#include "ops/bilinear.hpp"
913
#include "ops/binary_cross_entropy_with_logits.hpp"
1014
#include "ops/causal_softmax.hpp"
1115
#include "ops/cdist.hpp"
1216
#include "ops/cross_entropy.hpp"
1317
#include "ops/embedding.hpp"
1418
#include "ops/flash_attention.hpp"
19+
#include "ops/fmod.hpp"
1520
#include "ops/hardswish.hpp"
1621
#include "ops/hardtanh.hpp"
1722
#include "ops/kv_caching.hpp"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
6+
namespace infinicore::op {
7+
class AdaptiveMaxPool1d {
8+
public:
9+
using schema = void (*)(Tensor, Tensor, size_t);
10+
static void execute(Tensor y, Tensor x, size_t output_size);
11+
static common::OpDispatcher<schema> &dispatcher();
12+
};
13+
14+
Tensor adaptive_max_pool1d(Tensor x, size_t output_size);
15+
void adaptive_max_pool1d_(Tensor y, Tensor x, size_t output_size);
16+
} // namespace infinicore::op

include/infinicore/ops/asinh.hpp

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

include/infinicore/ops/baddbmm.hpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
#include <optional>
6+
7+
namespace infinicore::op {
8+
9+
Tensor baddbmm(Tensor input, Tensor batch1, Tensor batch2,
10+
float beta = 1.0f,
11+
float alpha = 1.0f);
12+
void baddbmm_(Tensor out, Tensor input, Tensor batch1, Tensor batch2,
13+
float beta = 1.0f,
14+
float alpha = 1.0f);
15+
} // namespace infinicore::op
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
3+
#include "../device.hpp"
4+
#include "common/op.hpp"
5+
#include <optional>
6+
7+
namespace infinicore::op {
8+
9+
Tensor bilinear(Tensor x1, Tensor x2, Tensor weight, std::optional<Tensor> bias);
10+
void bilinear_(Tensor out, Tensor x1, Tensor x2, Tensor weight, std::optional<Tensor> bias);
11+
12+
} // namespace infinicore::op

include/infinicore/ops/fmod.hpp

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

include/infiniop.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22
#define __INFINIOP_API_H__
33

44
#include "infiniop/handle.h"
5+
#include "infiniop/ops/adaptive_max_pool1d.h"
56
#include "infiniop/ops/add.h"
67
#include "infiniop/ops/add_rms_norm.h"
78
#include "infiniop/ops/addcmul.h"
89
#include "infiniop/ops/all.h"
10+
#include "infiniop/ops/asinh.h"
911
#include "infiniop/ops/atanh.h"
1012
#include "infiniop/ops/attention.h"
1113
#include "infiniop/ops/avg_pool1d.h"
@@ -19,6 +21,7 @@
1921
#include "infiniop/ops/embedding.h"
2022
#include "infiniop/ops/equal.h"
2123
#include "infiniop/ops/flash_attention.h"
24+
#include "infiniop/ops/fmod.h"
2225
#include "infiniop/ops/gelu.h"
2326
#include "infiniop/ops/gemm.h"
2427
#include "infiniop/ops/hardswish.h"
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#ifndef __INFINIOP_ADAPTIVE_MAX_POOL1D_H__
2+
#define __INFINIOP_ADAPTIVE_MAX_POOL1D_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAdaptiveMaxPool1dDescriptor_t;
7+
8+
__INFINI_C __export infiniStatus_t infiniopCreateAdaptiveMaxPool1dDescriptor(
9+
infiniopHandle_t handle,
10+
infiniopAdaptiveMaxPool1dDescriptor_t *desc,
11+
infiniopTensorDescriptor_t y_desc,
12+
infiniopTensorDescriptor_t x_desc,
13+
size_t output_size);
14+
15+
__INFINI_C __export infiniStatus_t infiniopGetAdaptiveMaxPool1dWorkspaceSize(infiniopAdaptiveMaxPool1dDescriptor_t desc, size_t *size);
16+
17+
__INFINI_C __export infiniStatus_t infiniopAdaptiveMaxPool1d(infiniopAdaptiveMaxPool1dDescriptor_t desc, void *workspace, size_t workspace_size,
18+
void *y, const void *x, void *stream);
19+
20+
__INFINI_C __export infiniStatus_t infiniopDestroyAdaptiveMaxPool1dDescriptor(infiniopAdaptiveMaxPool1dDescriptor_t desc);
21+
22+
#endif

include/infiniop/ops/asinh.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#ifndef __INFINIOP_ASINH_API_H__
2+
#define __INFINIOP_ASINH_API_H__
3+
4+
#include "../operator_descriptor.h"
5+
6+
typedef struct InfiniopDescriptor *infiniopAsinhDescriptor_t;
7+
8+
__INFINI_C __export infiniStatus_t infiniopCreateAsinhDescriptor(infiniopHandle_t handle,
9+
infiniopAsinhDescriptor_t *desc_ptr,
10+
infiniopTensorDescriptor_t y,
11+
infiniopTensorDescriptor_t x);
12+
13+
__INFINI_C __export infiniStatus_t infiniopGetAsinhWorkspaceSize(infiniopAsinhDescriptor_t desc, size_t *size);
14+
15+
__INFINI_C __export infiniStatus_t infiniopAsinh(infiniopAsinhDescriptor_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 infiniopDestroyAsinhDescriptor(infiniopAsinhDescriptor_t desc);
23+
24+
#endif

include/infiniop/ops/fmod.h

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

0 commit comments

Comments
 (0)