Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jerrrrry
infinicore
Commits
9405d54e
Commit
9405d54e
authored
Feb 13, 2025
by
Pan Zezhong
Browse files
feat: 修改ascend结构体命名,调整格式
parent
0bf217c1
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
103 additions
and
84 deletions
+103
-84
.gitignore
.gitignore
+3
-0
src/infiniop/devices/ascend/ascend_handle.cc
src/infiniop/devices/ascend/ascend_handle.cc
+3
-3
src/infiniop/devices/ascend/ascend_handle.h
src/infiniop/devices/ascend/ascend_handle.h
+3
-3
src/infiniop/devices/bang/bang_handle.cc
src/infiniop/devices/bang/bang_handle.cc
+7
-5
src/infiniop/devices/bang/bang_handle.h
src/infiniop/devices/bang/bang_handle.h
+2
-1
src/infiniop/devices/cpu/cpu_handle.cc
src/infiniop/devices/cpu/cpu_handle.cc
+6
-1
src/infiniop/devices/cpu/cpu_handle.h
src/infiniop/devices/cpu/cpu_handle.h
+2
-0
src/infiniop/devices/handle.cc
src/infiniop/devices/handle.cc
+27
-26
src/infiniop/ops/matmul/ascend/matmul_aclnn.cc
src/infiniop/ops/matmul/ascend/matmul_aclnn.cc
+3
-2
src/infiniop/ops/matmul/ascend/matmul_aclnn.h
src/infiniop/ops/matmul/ascend/matmul_aclnn.h
+8
-7
src/infiniop/ops/matmul/ascend/matmul_aclnn_api.h
src/infiniop/ops/matmul/ascend/matmul_aclnn_api.h
+12
-17
src/infiniop/ops/matmul/cpu/matmul_cpu.h
src/infiniop/ops/matmul/cpu/matmul_cpu.h
+1
-18
src/infiniop/ops/matmul/cpu/matmul_cpu_api.h
src/infiniop/ops/matmul/cpu/matmul_cpu_api.h
+25
-0
src/infiniop/ops/matmul/operator.cc
src/infiniop/ops/matmul/operator.cc
+1
-1
No files found.
.gitignore
View file @
9405d54e
...
...
@@ -16,3 +16,6 @@ __pycache__/
# Cache
cache/
# JSON
*.json
src/infiniop/devices/ascend/ascend_handle.cc
View file @
9405d54e
#include "common_ascend.h"
infiniopStatus_t
createAscendHandle
(
infiniopAscendHandle_t
*
handle_ptr
,
int
device_id
)
{
infiniopStatus_t
createAscendHandle
(
infiniopAscendHandle_t
*
handle_ptr
,
int
device_id
)
{
uint32_t
device_count
;
aclrtGetDeviceCount
(
&
device_count
);
if
(
device_id
>=
static_cast
<
int
>
(
device_count
))
{
...
...
@@ -16,8 +17,7 @@ infiniopStatus_t createAscendHandle(infiniopAscendHandle_t *handle_ptr, int devi
return
INFINIOP_STATUS_SUCCESS
;
}
infiniopStatus_t
de
lete
AscendHandle
(
infiniopAscendHandle_t
handle_ptr
)
{
infiniopStatus_t
de
stroy
AscendHandle
(
infiniopAscendHandle_t
handle_ptr
)
{
delete
handle_ptr
;
return
INFINIOP_STATUS_SUCCESS
;
}
src/infiniop/devices/ascend/ascend_handle.h
View file @
9405d54e
#ifndef __INFINIOP_ASCEND_HANDLE_H__
#define __INFINIOP_ASCEND_HANDLE_H__
#include "infinicore.h"
#include "infiniop/handle.h"
struct
InfiniopAscendHandle
;
typedef
struct
InfiniopAscendHandle
*
infiniopAscendHandle_t
;
infiniopStatus_t
createAscendHandle
(
infiniopAscendHandle_t
*
handle_ptr
,
int
device_id
);
infiniopStatus_t
createAscendHandle
(
infiniopAscendHandle_t
*
handle_ptr
,
int
device_id
);
infiniopStatus_t
de
lete
AscendHandle
(
infiniopAscendHandle_t
handle_ptr
);
infiniopStatus_t
de
stroy
AscendHandle
(
infiniopAscendHandle_t
handle_ptr
);
#endif
src/infiniop/devices/bang/bang_handle.cc
View file @
9405d54e
#include "../pool.h"
#include "common_bang.h"
#include <memory>
#include "../pool.h"
infiniopStatus_t
createBangHandle
(
infiniopBangHandle_t
*
handle_ptr
,
int
device_id
)
{
infiniopStatus_t
createBangHandle
(
infiniopBangHandle_t
*
handle_ptr
,
int
device_id
)
{
unsigned
int
device_count
;
cnrtGetDeviceCount
(
&
device_count
);
if
(
device_id
>=
static_cast
<
int
>
(
device_count
))
{
...
...
@@ -10,19 +11,20 @@ infiniopStatus_t createBangHandle(infiniopBangHandle_t *handle_ptr, int device_i
}
auto
pool
=
std
::
make_shared
<
Pool
<
cnnlHandle_t
>>
();
if
(
cnrtSetDevice
(
device_id
)
!=
cnrtSuccess
){
if
(
cnrtSetDevice
(
device_id
)
!=
cnrtSuccess
)
{
return
INFINIOP_STATUS_BAD_DEVICE
;
}
cnnlHandle_t
handle
;
cnnlCreate
(
&
handle
);
pool
->
push
(
std
::
move
(
handle
));
*
handle_ptr
=
new
InfiniopBangHandle
{
INFINI_DEVICE_CAMBRICON
,
device_id
,
std
::
move
(
pool
)};
*
handle_ptr
=
new
InfiniopBangHandle
{
INFINI_DEVICE_CAMBRICON
,
device_id
,
std
::
move
(
pool
)};
return
INFINIOP_STATUS_SUCCESS
;
}
infiniopStatus_t
de
lete
BangHandle
(
infiniopBangHandle_t
handle
){
infiniopStatus_t
de
stroy
BangHandle
(
infiniopBangHandle_t
handle
)
{
delete
handle
;
return
INFINIOP_STATUS_SUCCESS
;
}
src/infiniop/devices/bang/bang_handle.h
View file @
9405d54e
...
...
@@ -8,5 +8,6 @@ typedef struct InfiniopBangHandle *infiniopBangHandle_t;
infiniopStatus_t
createBangHandle
(
infiniopBangHandle_t
*
handle_ptr
,
int
device_id
);
infiniopStatus_t
deleteBangHandle
(
infiniopBangHandle_t
handle
);
infiniopStatus_t
destroyBangHandle
(
infiniopBangHandle_t
handle
);
#endif
src/infiniop/devices/cpu/cpu_handle.cc
View file @
9405d54e
#include "./cpu_handle.h"
infiniopStatus_t
createCpuHandle
(
infiniopCpuHandle_t
*
handle_ptr
){
infiniopStatus_t
createCpuHandle
(
infiniopCpuHandle_t
*
handle_ptr
)
{
*
handle_ptr
=
new
InfiniopHandle
{
INFINI_DEVICE_CPU
,
0
};
return
INFINIOP_STATUS_SUCCESS
;
}
infiniopStatus_t
destroyCpuHandle
(
infiniopCpuHandle_t
handle
)
{
delete
handle
;
return
INFINIOP_STATUS_SUCCESS
;
}
src/infiniop/devices/cpu/cpu_handle.h
View file @
9405d54e
...
...
@@ -7,4 +7,6 @@ typedef infiniopHandle_t infiniopCpuHandle_t;
infiniopStatus_t
createCpuHandle
(
infiniopCpuHandle_t
*
handle_ptr
);
infiniopStatus_t
destroyCpuHandle
(
infiniopCpuHandle_t
handle
);
#endif
src/infiniop/devices/handle.cc
View file @
9405d54e
...
...
@@ -12,8 +12,9 @@
#include "./ascend/ascend_handle.h"
#endif
__C
infiniopStatus_t
infiniopCreateHandle
(
infiniopHandle_t
*
handle_ptr
,
infiniDevice_t
device
,
int
device_id
)
{
__C
infiniopStatus_t
infiniopCreateHandle
(
infiniopHandle_t
*
handle_ptr
,
infiniDevice_t
device
,
int
device_id
)
{
if
(
handle_ptr
==
nullptr
)
{
return
INFINIOP_STATUS_NULL_POINTER
;
}
...
...
@@ -24,48 +25,48 @@ __C infiniopStatus_t infiniopCreateHandle(infiniopHandle_t *handle_ptr, infiniDe
switch
(
device
)
{
#ifdef ENABLE_CPU_API
case
INFINI_DEVICE_CPU
:
return
createCpuHandle
((
infiniopCpuHandle_t
*
)
handle_ptr
);
return
createCpuHandle
((
infiniopCpuHandle_t
*
)
handle_ptr
);
#endif
#ifdef ENABLE_CUDA_API
case
INFINI_DEVICE_NVIDIA
:
{
return
createCudaHandle
((
infiniopCudaHandle_t
*
)
handle_ptr
,
device_id
,
device
);
return
createCudaHandle
((
infiniopCudaHandle_t
*
)
handle_ptr
,
device_id
,
device
);
}
#endif
#ifdef ENABLE_CAMBRICON_API
case
INFINI_DEVICE_CAMBRICON
:
{
return
createBangHandle
((
infiniopBangHandle_t
*
)
handle_ptr
,
device_id
);
return
createBangHandle
((
infiniopBangHandle_t
*
)
handle_ptr
,
device_id
);
}
#endif
#ifdef ENABLE_ASCEND_API
case
INFINI_DEVICE_ASCEND
:
{
return
createAscendHandle
((
infiniopAscendHandle_t
*
)
handle_ptr
,
device_id
);
return
createAscendHandle
((
infiniopAscendHandle_t
*
)
handle_ptr
,
device_id
);
}
#endif
}
return
INFINIOP_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
}
__C
infiniopStatus_t
infiniopDestroyHandle
(
infiniopHandle_t
handle
)
{
switch
(
handle
->
device
)
{
#ifdef ENABLE_CPU_API
case
INFINI_DEVICE_CPU
:
delete
handle
;
return
INFINIOP_STATUS_SUCCESS
;
return
destroyCpuHandle
((
infiniopCpuHandle_t
)
handle
);
#endif
#ifdef ENABLE_CUDA_API
case
INFINI_DEVICE_NVIDIA
:
{
return
deleteCudaHandle
((
infiniopCudaHandle_t
)
handle
);
return
deleteCudaHandle
((
infiniopCudaHandle_t
)
handle
);
}
#endif
#ifdef ENABLE_CAMBRICON_API
case
INFINI_DEVICE_CAMBRICON
:
{
return
de
lete
BangHandle
((
infiniopBangHandle_t
)
handle
);
return
de
stroy
BangHandle
((
infiniopBangHandle_t
)
handle
);
}
#endif
#ifdef ENABLE_ASCEND_API
case
INFINI_DEVICE_ASCEND
:
{
return
de
lete
AscendHandle
((
infiniopAscendHandle_t
)
handle
);
return
de
stroy
AscendHandle
((
infiniopAscendHandle_t
)
handle
);
}
#endif
}
...
...
src/infiniop/ops/matmul/ascend/matmul_aclnn.cc
View file @
9405d54e
#include "matmul_aclnn.h"
MatmulAclnnDescriptor
::
MatmulAclnnDescriptor
(
infiniDevice_t
_device
)
{
InfiniopMatmulAclnnDescriptor
::
InfiniopMatmulAclnnDescriptor
(
infiniDevice_t
_device
)
{
device
=
_device
;
device_id
=
0
;
executor
=
nullptr
;
...
...
@@ -23,7 +24,7 @@ infiniopStatus_t aclnnCreateMatmulDescriptor(infiniopAscendHandle_t handle,
return
INFINIOP_STATUS_BAD_TENSOR_DTYPE
;
}
*
desc_ptr
=
new
MatmulAclnnDescriptor
(
handle
->
device
);
*
desc_ptr
=
new
Infiniop
MatmulAclnnDescriptor
(
handle
->
device
);
(
*
desc_ptr
)
->
device_id
=
handle
->
device_id
;
(
*
desc_ptr
)
->
dtype
=
dtype
;
(
*
desc_ptr
)
->
mt
=
mt
;
...
...
src/infiniop/ops/matmul/ascend/matmul_aclnn.h
View file @
9405d54e
...
...
@@ -4,25 +4,26 @@
#include "../../../devices/ascend/tensor_aclnn.h"
#include "../../utils.h"
#include "../blas.h"
#include "matmul_aclnn_api.h"
#include <acl/acl_base.h>
#include <aclnn/acl_meta.h>
#include <aclnnop/level2/aclnn_gemm.h>
#include <aclnnop/aclnn_matmul.h>
#include
"matmul_
aclnn_
api
.h
"
#include
<aclnnop/level2/
aclnn_
gemm
.h
>
struct
MatmulAclnnDescriptor
{
struct
Infiniop
MatmulAclnnDescriptor
{
infiniDevice_t
device
;
int
device_id
;
aclOpExecutor
*
executor
;
MatmulInfo
*
info
;
aclOpExecutor
*
executor
;
MatmulInfo
*
info
;
infiniDtype_t
dtype
;
aclnnTensorDescriptor_t
cDesc
,
aDesc
,
bDesc
;
// cubeMathType
// see doc: https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC3alpha002/apiref/appdevgapi/context/aclnnBatchMatMul.md
// see doc:
// https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC3alpha002/apiref/appdevgapi/context/aclnnBatchMatMul.md
int8_t
mt
;
size_t
workspaceSize
;
MatmulAclnnDescriptor
(
infiniDevice_t
_device
);
Infiniop
MatmulAclnnDescriptor
(
infiniDevice_t
_device
);
};
#endif
src/infiniop/ops/matmul/ascend/matmul_aclnn_api.h
View file @
9405d54e
...
...
@@ -3,8 +3,8 @@
#include "../../../devices/ascend/ascend_handle.h"
#include "infiniop/operator.h"
struct
MatmulAclnnDescriptor
;
typedef
struct
MatmulAclnnDescriptor
*
MatmulAclnnDescriptor_t
;
struct
Infiniop
MatmulAclnnDescriptor
;
typedef
struct
Infiniop
MatmulAclnnDescriptor
*
MatmulAclnnDescriptor_t
;
infiniopStatus_t
aclnnCreateMatmulDescriptor
(
infiniopAscendHandle_t
handle
,
MatmulAclnnDescriptor_t
*
desc_ptr
,
...
...
@@ -16,15 +16,10 @@ infiniopStatus_t aclnnCreateMatmulDescriptor(infiniopAscendHandle_t handle,
infiniopStatus_t
aclnnGetMatmulWorkspaceSize
(
MatmulAclnnDescriptor_t
desc
,
size_t
*
size
);
infiniopStatus_t
aclnnMatmul
(
MatmulAclnnDescriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
c
,
const
void
*
a
,
const
void
*
b
,
float
alpha
,
float
beta
,
void
*
stream
);
infiniopStatus_t
aclnnMatmul
(
MatmulAclnnDescriptor_t
desc
,
void
*
workspace
,
size_t
workspace_size
,
void
*
c
,
const
void
*
a
,
const
void
*
b
,
float
alpha
,
float
beta
,
void
*
stream
);
infiniopStatus_t
aclnnDestroyMatmulDescriptor
(
MatmulAclnnDescriptor_t
desc
);
#endif // __INFINIOP_MATMUL_ACLNN_API_H__
src/infiniop/ops/matmul/cpu/matmul_cpu.h
View file @
9405d54e
#ifndef __INFINIOP_MATMUL_CPU_H__
#define __INFINIOP_MATMUL_CPU_H__
#include "../../../devices/cpu/cpu_handle.h"
#include "../blas.h"
#include "
infiniop/operator
.h"
#include "
./matmul_cpu_api
.h"
typedef
struct
MatmulCpuDescriptor
{
infiniDevice_t
device
;
...
...
@@ -11,20 +10,4 @@ typedef struct MatmulCpuDescriptor {
MatmulInfo
info
;
}
MatmulCpuDescriptor
;
typedef
struct
MatmulCpuDescriptor
*
infiniopMatmulCpuDescriptor_t
;
infiniopStatus_t
cpuCreateMatmulDescriptor
(
infiniopCpuHandle_t
handle
,
infiniopMatmulCpuDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
c_desc
,
infiniopTensorDescriptor_t
a_desc
,
infiniopTensorDescriptor_t
b_desc
);
infiniopStatus_t
cpuGetMatmulWorkspaceSize
(
infiniopMatmulCpuDescriptor_t
desc
,
uint64_t
*
size
);
infiniopStatus_t
cpuMatmul
(
infiniopMatmulCpuDescriptor_t
desc
,
void
*
workspace
,
uint64_t
workspace_size
,
void
*
c
,
void
const
*
a
,
void
const
*
b
,
float
alpha
,
float
beta
);
infiniopStatus_t
cpuDestroyMatmulDescriptor
(
infiniopMatmulCpuDescriptor_t
desc
);
#endif // __INFINIOP_MATMUL_CPU_H__
src/infiniop/ops/matmul/cpu/matmul_cpu_api.h
0 → 100644
View file @
9405d54e
#ifndef __INFINIOP_MATMUL_CPU_API_H__
#define __INFINIOP_MATMUL_CPU_API_H__
#include "../../../devices/cpu/cpu_handle.h"
#include "infiniop/operator.h"
struct
MatmulCpuDescriptor
;
typedef
struct
MatmulCpuDescriptor
*
infiniopMatmulCpuDescriptor_t
;
infiniopStatus_t
cpuCreateMatmulDescriptor
(
infiniopCpuHandle_t
handle
,
infiniopMatmulCpuDescriptor_t
*
desc_ptr
,
infiniopTensorDescriptor_t
c_desc
,
infiniopTensorDescriptor_t
a_desc
,
infiniopTensorDescriptor_t
b_desc
);
infiniopStatus_t
cpuGetMatmulWorkspaceSize
(
infiniopMatmulCpuDescriptor_t
desc
,
uint64_t
*
size
);
infiniopStatus_t
cpuMatmul
(
infiniopMatmulCpuDescriptor_t
desc
,
void
*
workspace
,
uint64_t
workspace_size
,
void
*
c
,
void
const
*
a
,
void
const
*
b
,
float
alpha
,
float
beta
);
infiniopStatus_t
cpuDestroyMatmulDescriptor
(
infiniopMatmulCpuDescriptor_t
desc
);
#endif // __INFINIOP_MATMUL_CPU_API_H__
src/infiniop/ops/matmul/operator.cc
View file @
9405d54e
#include "infiniop/ops/matmul.h"
#ifdef ENABLE_CPU_API
#include "cpu/matmul_cpu.h"
#include "cpu/matmul_cpu
_api
.h"
#endif
#ifdef ENABLE_CUDA_API
#include "cuda/matmul_cuda_api.h"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment