Commit ce5ddb69 authored by wooway777's avatar wooway777
Browse files

issue/612 - differentiate mempcy sync/async

parent e6fbcc82
...@@ -25,9 +25,9 @@ std::shared_ptr<Memory> allocateMemory(size_t size); ...@@ -25,9 +25,9 @@ std::shared_ptr<Memory> allocateMemory(size_t size);
std::shared_ptr<Memory> allocateHostMemory(size_t size); std::shared_ptr<Memory> allocateHostMemory(size_t size);
std::shared_ptr<Memory> allocatePinnedHostMemory(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 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); void memcpyH2H(void *dst, const void *src, size_t size);
} // namespace context } // namespace context
......
...@@ -129,16 +129,16 @@ std::shared_ptr<Memory> allocatePinnedHostMemory(size_t size) { ...@@ -129,16 +129,16 @@ std::shared_ptr<Memory> allocatePinnedHostMemory(size_t size) {
return ContextImpl::singleton().getCurrentRuntime()->allocatePinnedHostMemory(size); return ContextImpl::singleton().getCurrentRuntime()->allocatePinnedHostMemory(size);
} }
void memcpyH2D(void *dst, const void *src, size_t size) { void memcpyH2D(void *dst, const void *src, size_t size, bool async) {
return ContextImpl::singleton().getCurrentRuntime()->memcpyH2D(dst, src, size); return ContextImpl::singleton().getCurrentRuntime()->memcpyH2D(dst, src, size, async);
} }
void memcpyD2H(void *dst, const void *src, size_t size) { void memcpyD2H(void *dst, const void *src, size_t size) {
return ContextImpl::singleton().getCurrentRuntime()->memcpyD2H(dst, src, size); return ContextImpl::singleton().getCurrentRuntime()->memcpyD2H(dst, src, size);
} }
void memcpyD2D(void *dst, const void *src, size_t size) { void memcpyD2D(void *dst, const void *src, size_t size, bool async) {
return ContextImpl::singleton().getCurrentRuntime()->memcpyD2D(dst, src, size); return ContextImpl::singleton().getCurrentRuntime()->memcpyD2D(dst, src, size, async);
} }
void memcpyH2H(void *dst, const void *src, size_t size) { void memcpyH2H(void *dst, const void *src, size_t size) {
......
...@@ -76,16 +76,24 @@ std::shared_ptr<Memory> Runtime::allocatePinnedHostMemory(size_t size) { ...@@ -76,16 +76,24 @@ std::shared_ptr<Memory> Runtime::allocatePinnedHostMemory(size_t size) {
true); true);
} }
void Runtime::memcpyH2D(void *dst, const void *src, size_t size) { void Runtime::memcpyH2D(void *dst, const void *src, size_t size, bool async) {
INFINICORE_CHECK_ERROR(infinirtMemcpyAsync(dst, src, size, INFINIRT_MEMCPY_H2D, stream_)); 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) { void Runtime::memcpyD2H(void *dst, const void *src, size_t size) {
INFINICORE_CHECK_ERROR(infinirtMemcpy(dst, src, size, INFINIRT_MEMCPY_D2H)); INFINICORE_CHECK_ERROR(infinirtMemcpy(dst, src, size, INFINIRT_MEMCPY_D2H));
} }
void Runtime::memcpyD2D(void *dst, const void *src, size_t size) { void Runtime::memcpyD2D(void *dst, const void *src, size_t size, bool async) {
INFINICORE_CHECK_ERROR(infinirtMemcpyAsync(dst, src, size, INFINIRT_MEMCPY_D2D, stream_)); if (async) {
INFINICORE_CHECK_ERROR(infinirtMemcpyAsync(dst, src, size, INFINIRT_MEMCPY_D2D, stream_));
} else {
INFINICORE_CHECK_ERROR(infinirtMemcpy(dst, src, size, INFINIRT_MEMCPY_D2D));
}
} }
std::string Runtime::toString() const { std::string Runtime::toString() const {
......
...@@ -34,9 +34,9 @@ public: ...@@ -34,9 +34,9 @@ public:
std::shared_ptr<Memory> allocateMemory(size_t size); std::shared_ptr<Memory> allocateMemory(size_t size);
std::shared_ptr<Memory> allocatePinnedHostMemory(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 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);
std::string toString() const; std::string toString() const;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment