Skip to content

Commit d68ca81

Browse files
authored
Merge pull request #4 from dijopaul/rushikesh_code
integrated operators div and floor_div nad sqrt
2 parents 0f8c702 + ba660c1 commit d68ca81

8 files changed

Lines changed: 1360 additions & 2 deletions

File tree

backends/cadence/aot/functions_hifi.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@
101101
kernels:
102102
- arg_meta: null
103103
kernel_name: torch::executor::where_out
104+
105+
- op: rsqrt.out
106+
kernels:
107+
- arg_meta: null
108+
kernel_name: torch::executor::rsqrt_out
104109

105110
# custom ops
106111
- func: cadence::quantize_per_tensor.out(Tensor input, float scale, int zero_point, int quant_min, int quant_max, ScalarType dtype, *, Tensor(a!) out) -> Tensor(a!)

backends/cadence/hifi/kernels/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ add_library(
99
cadence_kernels
1010
kernels.cpp
1111
${EXECUTORCH_ROOT}/backends/cadence/hifi/third-party/nnlib/matmul_asym8uxasym8u_asym8u.cpp
12+
${EXECUTORCH_ROOT}/backends/cadence/hifi/third-party/nnlib/xa_nn_elm_div_broadcast_f32.c
13+
${EXECUTORCH_ROOT}/backends/cadence/hifi/third-party/nnlib/xa_nn_elm_floor_div_broadcast_f32.c
1214
)
1315

1416
target_include_directories(

backends/cadence/hifi/kernels/kernels.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,28 @@
1414

1515
/* For NNLIB APIs */
1616
#include "xa_nnlib_kernels_api.h"
17+
18+
extern "C" WORD32 xa_nn_elm_floor_div_f32xf32_f32(
19+
FLOAT32 * __restrict__ p_out,
20+
const FLOAT32 * __restrict__ p_inp1,
21+
const FLOAT32 * __restrict__ p_inp2,
22+
WORD32 num_elm);
23+
24+
extern "C" WORD32 xa_nn_elm_floor_div_broadcast_4D_f32xf32_f32(
25+
FLOAT32 * __restrict__ p_out,
26+
const WORD32 *const p_out_shape,
27+
const FLOAT32 * __restrict__ p_inp1,
28+
const WORD32 *const p_inp1_shape,
29+
const FLOAT32 * __restrict__ p_inp2,
30+
const WORD32 *const p_inp2_shape);
31+
32+
extern "C" WORD32 xa_nn_elm_div_broadcast_4D_f32xf32_f32(
33+
FLOAT32 * __restrict__ p_out,
34+
const WORD32 *const p_out_shape,
35+
const FLOAT32 * __restrict__ p_inp1,
36+
const WORD32 *const p_inp1_shape,
37+
const FLOAT32 * __restrict__ p_inp2,
38+
const WORD32 *const p_inp2_shape);
1739

1840

1941
namespace impl {

backends/cadence/hifi/operators/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ set(_aten_ops__srcs
3535
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_bmm.cpp"
3636
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_cat.cpp"
3737
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_clone.cpp"
38-
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_div.cpp"
38+
"${EXECUTORCH_ROOT}/backends/cadence/hifi/operators/op_div.cpp"
39+
"${EXECUTORCH_ROOT}/backends/cadence/hifi/operators/op_rsqrt.cpp"
3940
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_mul.cpp"
4041
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_permute_copy.cpp"
4142
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_sigmoid.cpp"
@@ -44,7 +45,8 @@ set(_aten_ops__srcs
4445
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_split_with_sizes_copy.cpp"
4546
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_sub.cpp"
4647
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_to_copy.cpp"
47-
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_where.cpp")
48+
"${EXECUTORCH_ROOT}/kernels/portable/cpu/op_where.cpp"
49+
"${EXECUTORCH_ROOT}/kernels/portable/cpu/pattern/unary_ufunc_realhb_to_floath.cpp")
4850
add_library(aten_ops_cadence ${_aten_ops__srcs})
4951
target_link_libraries(aten_ops_cadence PUBLIC executorch)
5052
target_link_libraries(aten_ops_cadence PRIVATE cadence_kernels)

0 commit comments

Comments
 (0)