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
5e85a4d8
Unverified
Commit
5e85a4d8
authored
Nov 25, 2025
by
PanZezhong1725
Committed by
GitHub
Nov 25, 2025
Browse files
Merge pull request #613 from InfiniTensor/issue/612
issue/612 - differentiate mempcy sync/async
parents
406c9668
ce5ddb69
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
12 deletions
+20
-12
include/infinicore/context/context.hpp
include/infinicore/context/context.hpp
+2
-2
src/infinicore/context/context_impl.cc
src/infinicore/context/context_impl.cc
+4
-4
src/infinicore/context/runtime/runtime.cc
src/infinicore/context/runtime/runtime.cc
+12
-4
src/infinicore/context/runtime/runtime.hpp
src/infinicore/context/runtime/runtime.hpp
+2
-2
No files found.
include/infinicore/context/context.hpp
View file @
5e85a4d8
...
...
@@ -25,9 +25,9 @@ std::shared_ptr<Memory> allocateMemory(size_t size);
std
::
shared_ptr
<
Memory
>
allocateHostMemory
(
size_t
size
);
std
::
shared_ptr
<
Memory
>
allocatePinnedHostMemory
(
size_t
size
);
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
=
true
);
void
memcpyD2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
=
true
);
void
memcpyH2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
// Timing APIs for performance measurement
...
...
src/infinicore/context/context_impl.cc
View file @
5e85a4d8
...
...
@@ -129,16 +129,16 @@ std::shared_ptr<Memory> allocatePinnedHostMemory(size_t size) {
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
allocatePinnedHostMemory
(
size
);
}
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
memcpyH2D
(
dst
,
src
,
size
);
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
)
{
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
memcpyH2D
(
dst
,
src
,
size
,
async
);
}
void
memcpyD2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
memcpyD2H
(
dst
,
src
,
size
);
}
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
memcpyD2D
(
dst
,
src
,
size
);
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
)
{
return
ContextImpl
::
singleton
().
getCurrentRuntime
()
->
memcpyD2D
(
dst
,
src
,
size
,
async
);
}
void
memcpyH2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
...
...
src/infinicore/context/runtime/runtime.cc
View file @
5e85a4d8
...
...
@@ -76,16 +76,24 @@ std::shared_ptr<Memory> Runtime::allocatePinnedHostMemory(size_t size) {
true
);
}
void
Runtime
::
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpyAsync
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_H2D
,
stream_
));
void
Runtime
::
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
)
{
if
(
async
)
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpyAsync
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_H2D
,
stream_
));
}
else
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpy
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_H2D
));
}
}
void
Runtime
::
memcpyD2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpy
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_D2H
));
}
void
Runtime
::
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpyAsync
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_D2D
,
stream_
));
void
Runtime
::
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
)
{
if
(
async
)
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpyAsync
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_D2D
,
stream_
));
}
else
{
INFINICORE_CHECK_ERROR
(
infinirtMemcpy
(
dst
,
src
,
size
,
INFINIRT_MEMCPY_D2D
));
}
}
// Timing method implementations
...
...
src/infinicore/context/runtime/runtime.hpp
View file @
5e85a4d8
...
...
@@ -34,9 +34,9 @@ public:
std
::
shared_ptr
<
Memory
>
allocateMemory
(
size_t
size
);
std
::
shared_ptr
<
Memory
>
allocatePinnedHostMemory
(
size_t
size
);
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyH2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
=
true
);
void
memcpyD2H
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
);
void
memcpyD2D
(
void
*
dst
,
const
void
*
src
,
size_t
size
,
bool
async
=
true
);
// Timing methods
infinirtEvent_t
createEvent
();
...
...
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