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
f2bb97ad
Unverified
Commit
f2bb97ad
authored
Aug 27, 2025
by
spike-zhu
Committed by
GitHub
Aug 27, 2025
Browse files
issue/294: 摩尔通信库接入
parent
d3d6fee0
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
131 additions
and
0 deletions
+131
-0
src/infiniccl/infiniccl.cc
src/infiniccl/infiniccl.cc
+4
-0
src/infiniccl/moore/infiniccl_moore.cc
src/infiniccl/moore/infiniccl_moore.cc
+95
-0
src/infiniccl/moore/infiniccl_moore.h
src/infiniccl/moore/infiniccl_moore.h
+12
-0
xmake.lua
xmake.lua
+4
-0
xmake/moore.lua
xmake/moore.lua
+16
-0
No files found.
src/infiniccl/infiniccl.cc
View file @
f2bb97ad
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
#include "./cambricon/infiniccl_cambricon.h"
#include "./cambricon/infiniccl_cambricon.h"
#include "./cuda/infiniccl_cuda.h"
#include "./cuda/infiniccl_cuda.h"
#include "./metax/infiniccl_metax.h"
#include "./metax/infiniccl_metax.h"
#include "./moore/infiniccl_moore.h"
__C
infiniStatus_t
infinicclCommInitAll
(
__C
infiniStatus_t
infinicclCommInitAll
(
infiniDevice_t
device_type
,
infiniDevice_t
device_type
,
...
@@ -21,6 +22,7 @@ __C infiniStatus_t infinicclCommInitAll(
...
@@ -21,6 +22,7 @@ __C infiniStatus_t infinicclCommInitAll(
COMM_INIT_ALL
(
INFINI_DEVICE_ASCEND
,
ascend
);
COMM_INIT_ALL
(
INFINI_DEVICE_ASCEND
,
ascend
);
COMM_INIT_ALL
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
COMM_INIT_ALL
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
COMM_INIT_ALL
(
INFINI_DEVICE_METAX
,
metax
);
COMM_INIT_ALL
(
INFINI_DEVICE_METAX
,
metax
);
COMM_INIT_ALL
(
INFINI_DEVICE_MOORE
,
moore
);
default:
default:
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
}
}
...
@@ -43,6 +45,7 @@ __C infiniStatus_t infinicclCommDestroy(infinicclComm_t comm) {
...
@@ -43,6 +45,7 @@ __C infiniStatus_t infinicclCommDestroy(infinicclComm_t comm) {
COMM_DESTROY
(
INFINI_DEVICE_ASCEND
,
ascend
);
COMM_DESTROY
(
INFINI_DEVICE_ASCEND
,
ascend
);
COMM_DESTROY
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
COMM_DESTROY
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
COMM_DESTROY
(
INFINI_DEVICE_METAX
,
metax
);
COMM_DESTROY
(
INFINI_DEVICE_METAX
,
metax
);
COMM_DESTROY
(
INFINI_DEVICE_MOORE
,
moore
);
default:
default:
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
...
@@ -73,6 +76,7 @@ __C infiniStatus_t infinicclAllReduce(
...
@@ -73,6 +76,7 @@ __C infiniStatus_t infinicclAllReduce(
ALL_REDUCE
(
INFINI_DEVICE_ASCEND
,
ascend
);
ALL_REDUCE
(
INFINI_DEVICE_ASCEND
,
ascend
);
ALL_REDUCE
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
ALL_REDUCE
(
INFINI_DEVICE_CAMBRICON
,
cambricon
);
ALL_REDUCE
(
INFINI_DEVICE_METAX
,
metax
);
ALL_REDUCE
(
INFINI_DEVICE_METAX
,
metax
);
ALL_REDUCE
(
INFINI_DEVICE_MOORE
,
moore
);
default:
default:
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
return
INFINI_STATUS_DEVICE_TYPE_NOT_SUPPORTED
;
...
...
src/infiniccl/moore/infiniccl_moore.cc
0 → 100644
View file @
f2bb97ad
#include "infiniccl_moore.h"
#include "../../utils.h"
#include <mccl.h>
#include <musa_runtime.h>
#include <iostream>
#include <vector>
#define CHECK_MCCL(API__) CHECK_INTERNAL(API__, mcclSuccess)
inline
musaStream_t
getMusaStream
(
infinirtStream_t
stream
)
{
if
(
stream
==
nullptr
)
{
return
0
;
}
return
static_cast
<
musaStream_t
>
(
stream
);
}
inline
mcclDataType_t
getMcclDtype
(
infiniDtype_t
datatype
)
{
switch
(
datatype
)
{
case
INFINI_DTYPE_F32
:
return
mcclFloat
;
case
INFINI_DTYPE_F16
:
return
mcclHalf
;
default:
std
::
abort
();
return
mcclHalf
;
}
}
inline
mcclRedOp_t
getMcclRedOp
(
infinicclReduceOp_t
op
)
{
switch
(
op
)
{
case
INFINICCL_SUM
:
return
mcclSum
;
case
INFINICCL_PROD
:
return
mcclProd
;
case
INFINICCL_MAX
:
return
mcclMax
;
case
INFINICCL_MIN
:
return
mcclMin
;
case
INFINICCL_AVG
:
return
mcclAvg
;
default:
std
::
abort
();
return
mcclSum
;
}
}
inline
mcclComm_t
getMcclComm
(
infinicclComm_t
comm
)
{
return
static_cast
<
mcclComm_t
>
(
comm
->
comm
);
}
namespace
infiniccl
::
moore
{
infiniStatus_t
commInitAll
(
infinicclComm_t
*
comms
,
int
ndevice
,
const
int
*
device_ids
)
{
std
::
vector
<
mcclComm_t
>
mccl_comms
(
ndevice
);
CHECK_MCCL
(
mcclCommInitAll
(
mccl_comms
.
data
(),
ndevice
,
(
int
const
*
)
device_ids
));
for
(
int
i
=
0
;
i
<
ndevice
;
i
++
)
{
comms
[
i
]
=
new
InfinicclComm
{
INFINI_DEVICE_MOORE
,
device_ids
[
i
],
(
void
*
)(
mccl_comms
[
i
])};
}
return
INFINI_STATUS_SUCCESS
;
}
infiniStatus_t
commDestroy
(
infinicclComm_t
comm
)
{
CHECK_MCCL
(
mcclCommDestroy
(
getMcclComm
(
comm
)));
delete
comm
;
return
INFINI_STATUS_SUCCESS
;
}
infiniStatus_t
allReduce
(
void
*
sendbuf
,
void
*
recvbuf
,
size_t
count
,
infiniDtype_t
datatype
,
infinicclReduceOp_t
op
,
infinicclComm_t
comm
,
infinirtStream_t
stream
)
{
if
(
datatype
!=
INFINI_DTYPE_F32
&&
datatype
!=
INFINI_DTYPE_F16
)
{
return
INFINI_STATUS_BAD_PARAM
;
}
CHECK_MCCL
(
mcclAllReduce
(
sendbuf
,
recvbuf
,
count
,
getMcclDtype
(
datatype
),
getMcclRedOp
(
op
),
getMcclComm
(
comm
),
getMusaStream
(
stream
)));
return
INFINI_STATUS_SUCCESS
;
}
}
// namespace infiniccl::moore
src/infiniccl/moore/infiniccl_moore.h
0 → 100644
View file @
f2bb97ad
#ifndef INFINICCL_MOORE_H_
#define INFINICCL_MOORE_H_
#include "../infiniccl_impl.h"
#if defined(ENABLE_MOORE_API) && defined(ENABLE_CCL)
INFINICCL_DEVICE_API_IMPL
(
moore
)
#else
INFINICCL_DEVICE_API_NOOP
(
moore
)
#endif
#endif
/* INFINICCL_MOORE_H_ */
xmake.lua
View file @
f2bb97ad
...
@@ -298,6 +298,10 @@ target("infiniccl")
...
@@ -298,6 +298,10 @@ target("infiniccl")
add_deps
(
"infiniccl-iluvatar"
)
add_deps
(
"infiniccl-iluvatar"
)
end
end
if
has_config
(
"moore-gpu"
)
then
add_deps
(
"infiniccl-moore"
)
end
set_languages
(
"cxx17"
)
set_languages
(
"cxx17"
)
add_files
(
"src/infiniccl/*.cc"
)
add_files
(
"src/infiniccl/*.cc"
)
...
...
xmake/moore.lua
View file @
f2bb97ad
...
@@ -55,3 +55,19 @@ target("infinirt-moore")
...
@@ -55,3 +55,19 @@ target("infinirt-moore")
add_cxflags
(
"-lstdc++"
,
"-fPIC"
)
add_cxflags
(
"-lstdc++"
,
"-fPIC"
)
add_files
(
"../src/infinirt/moore/*.cc"
)
add_files
(
"../src/infinirt/moore/*.cc"
)
target_end
()
target_end
()
target
(
"infiniccl-moore"
)
set_kind
(
"static"
)
add_deps
(
"infinirt"
)
on_install
(
function
(
target
)
end
)
set_warnings
(
"all"
,
"error"
)
if
not
is_plat
(
"windows"
)
then
add_cxflags
(
"-fPIC"
)
end
if
has_config
(
"ccl"
)
then
add_links
(
"libmccl.so"
)
add_files
(
"../src/infiniccl/moore/*.cc"
)
end
set_languages
(
"cxx17"
)
target_end
()
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