Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
9c92701f
MegEngine
项目概览
MegEngine 天元
/
MegEngine
大约 1 年 前同步成功
通知
395
Star
4704
Fork
582
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MegEngine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9c92701f
编写于
12月 30, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(mge): support python -m megengine.distributed.server
GitOrigin-RevId: f1e5c8e3cf441248157060efc04b8ff9a19b154b
上级
556e0222
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
9 deletion
+28
-9
imperative/python/megengine/distributed/server.py
imperative/python/megengine/distributed/server.py
+28
-9
未找到文件。
imperative/python/megengine/distributed/server.py
浏览文件 @
9c92701f
...
...
@@ -49,7 +49,7 @@ class Methods:
def
set_is_grad
(
self
,
key
,
is_grad
):
"""
Mark send/recv need gradiants by key.
:param key: key to match send/recv op.
:param is_grad: whether this op need grad.
"""
...
...
@@ -61,7 +61,7 @@ class Methods:
def
check_is_grad
(
self
,
key
):
"""
Check whether send/recv need gradiants.
:param key: key to match send/recv op.
"""
with
self
.
lock
:
...
...
@@ -86,7 +86,7 @@ class Methods:
def
check_remote_tracer
(
self
,
key
):
"""
Get tracer dict for send/recv op.
:param key: key to match send/recv op.
"""
with
self
.
lock
:
...
...
@@ -99,7 +99,7 @@ class Methods:
def
group_barrier
(
self
,
key
,
size
):
"""
A barrier wait for all group member.
:param key: group key to match each other.
:param size: group size.
"""
...
...
@@ -136,7 +136,7 @@ class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
def
_start_server
(
py_server_port
,
mm_server_port
,
queue
):
"""
Start python distributed server and multiple machine server.
:param py_server_port: python server port.
:param mm_server_port: multiple machine server port.
:param queue: server port will put in this queue, puts exception when process fails.
...
...
@@ -205,7 +205,7 @@ class Client:
def
set_is_grad
(
self
,
key
,
is_grad
):
"""
Mark send/recv need gradiants by key.
:param key: key to match send/recv op.
:param is_grad: whether this op need grad.
"""
...
...
@@ -214,7 +214,7 @@ class Client:
def
check_is_grad
(
self
,
key
):
"""
Check whether send/recv need gradiants.
:param key: key to match send/recv op.
"""
return
self
.
proxy
.
check_is_grad
(
key
)
...
...
@@ -231,7 +231,7 @@ class Client:
def
check_remote_tracer
(
self
,
key
):
"""
Get tracer dict for send/recv op.
:param key: key to match send/recv op.
"""
return
self
.
proxy
.
check_remote_tracer
(
key
)
...
...
@@ -239,7 +239,7 @@ class Client:
def
group_barrier
(
self
,
key
,
size
):
"""
A barrier wait for all group member.
:param key: group key to match each other.
:param size: group size.
"""
...
...
@@ -252,3 +252,22 @@ class Client:
def
user_get
(
self
,
key
):
"""Get user defined key-value pairs across processes."""
return
self
.
proxy
.
user_get
(
key
)
def
main
(
port
=
0
,
verbose
=
True
):
mm_server_port
=
create_mm_server
(
"0.0.0.0"
,
0
)
server
=
ThreadXMLRPCServer
((
"0.0.0.0"
,
port
),
logRequests
=
verbose
)
server
.
register_instance
(
Methods
(
mm_server_port
))
_
,
port
=
server
.
server_address
print
(
"serving on port"
,
port
)
server
.
serve_forever
()
if
__name__
==
"__main__"
:
import
argparse
ap
=
argparse
.
ArgumentParser
()
ap
.
add_argument
(
"-p"
,
"--port"
,
type
=
int
,
default
=
0
)
ap
.
add_argument
(
"-v"
,
"--verbose"
,
type
=
bool
,
default
=
True
)
args
=
ap
.
parse_args
()
main
(
port
=
args
.
port
,
verbose
=
args
.
verbose
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录