Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
fec235fc
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fec235fc
编写于
5月 25, 2020
作者:
L
lizhenyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
change the default memory copy way to async
上级
e5c7ecfd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
21 addition
and
2 deletion
+21
-2
mindspore/ccsrc/device/gpu/cuda_driver.cc
mindspore/ccsrc/device/gpu/cuda_driver.cc
+1
-1
mindspore/ccsrc/device/gpu/gpu_device_address.cc
mindspore/ccsrc/device/gpu/gpu_device_address.cc
+7
-1
mindspore/ccsrc/device/gpu/gpu_device_manager.cc
mindspore/ccsrc/device/gpu/gpu_device_manager.cc
+10
-0
mindspore/ccsrc/device/gpu/gpu_device_manager.h
mindspore/ccsrc/device/gpu/gpu_device_manager.h
+3
-0
未找到文件。
mindspore/ccsrc/device/gpu/cuda_driver.cc
浏览文件 @
fec235fc
...
...
@@ -102,7 +102,7 @@ bool CudaDriver::CopyHostMemToDeviceAsync(const DeviceMemPtr &dst, const void *s
bool
CudaDriver
::
CopyDeviceMemToHostAsync
(
const
HostMemPtr
&
dst
,
const
DeviceMemPtr
&
src
,
size_t
size
,
DeviceStream
stream
)
{
auto
ret
=
cudaMemcpyAsync
(
dst
,
src
,
size
,
cudaMemcpy
HostToDevice
,
(
cudaStream_t
)
stream
);
auto
ret
=
cudaMemcpyAsync
(
dst
,
src
,
size
,
cudaMemcpy
DeviceToHost
,
(
cudaStream_t
)
stream
);
if
(
ret
!=
cudaSuccess
)
{
MS_LOG
(
ERROR
)
<<
"cudaMemcpyAsync failed, ret["
<<
static_cast
<
int
>
(
ret
)
<<
"], "
<<
cudaGetErrorString
(
ret
);
return
false
;
...
...
mindspore/ccsrc/device/gpu/gpu_device_address.cc
浏览文件 @
fec235fc
...
...
@@ -37,7 +37,13 @@ bool GPUDeviceAddress::SyncDeviceToHost(const std::vector<int> &, size_t size, T
bool
GPUDeviceAddress
::
SyncHostToDevice
(
const
std
::
vector
<
int
>
&
,
size_t
,
TypeId
,
const
void
*
host_ptr
)
const
{
MS_EXCEPTION_IF_NULL
(
host_ptr
);
return
GPUDeviceManager
::
GetInstance
().
CopyHostMemToDevice
(
ptr_
,
host_ptr
,
size_
);
auto
&
stream
=
GPUDeviceManager
::
GetInstance
().
default_stream
();
MS_EXCEPTION_IF_NULL
(
stream
);
if
(
!
GPUDeviceManager
::
GetInstance
().
CopyHostMemToDeviceAsync
(
ptr_
,
host_ptr
,
size_
,
stream
))
{
MS_LOG
(
ERROR
)
<<
"CopyHostMemToDeviceAsync failed"
;
return
false
;
}
return
GPUDeviceManager
::
GetInstance
().
SyncStream
(
stream
);
}
GPUDeviceAddress
::~
GPUDeviceAddress
()
{
...
...
mindspore/ccsrc/device/gpu/gpu_device_manager.cc
浏览文件 @
fec235fc
...
...
@@ -89,6 +89,16 @@ bool GPUDeviceManager::CopyDeviceMemToHost(const HostMemPtr &dst, const DeviceMe
bool
GPUDeviceManager
::
CopyHostMemToDevice
(
const
DeviceMemPtr
&
dst
,
const
void
*
src
,
size_t
size
)
const
{
return
CudaDriver
::
CopyHostMemToDevice
(
dst
,
src
,
size
);
}
bool
GPUDeviceManager
::
CopyDeviceMemToHostAsync
(
const
HostMemPtr
&
dst
,
const
DeviceMemPtr
&
src
,
size_t
size
,
DeviceStream
stream
)
const
{
return
CudaDriver
::
CopyDeviceMemToHostAsync
(
dst
,
src
,
size
,
stream
);
}
bool
GPUDeviceManager
::
CopyHostMemToDeviceAsync
(
const
DeviceMemPtr
&
dst
,
const
void
*
src
,
size_t
size
,
DeviceStream
stream
)
const
{
return
CudaDriver
::
CopyHostMemToDeviceAsync
(
dst
,
src
,
size
,
stream
);
}
}
// namespace gpu
}
// namespace device
}
// namespace mindspore
mindspore/ccsrc/device/gpu/gpu_device_manager.h
浏览文件 @
fec235fc
...
...
@@ -47,6 +47,9 @@ class GPUDeviceManager {
bool
CopyDeviceMemToHost
(
const
HostMemPtr
&
dst
,
const
DeviceMemPtr
&
src
,
size_t
size
)
const
;
bool
CopyHostMemToDevice
(
const
DeviceMemPtr
&
dst
,
const
void
*
src
,
size_t
size
)
const
;
bool
CopyDeviceMemToHostAsync
(
const
HostMemPtr
&
dst
,
const
DeviceMemPtr
&
src
,
size_t
size
,
DeviceStream
stream
)
const
;
bool
CopyHostMemToDeviceAsync
(
const
DeviceMemPtr
&
dst
,
const
void
*
src
,
size_t
size
,
DeviceStream
stream
)
const
;
static
GPUDeviceManager
&
GetInstance
()
{
static
GPUDeviceManager
instance
;
return
instance
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录