Skip to content

Commit bc7f33b

Browse files
[OclRuntime] Added gpuMemCopy() function (#308)
* [OclRuntime] Added gpuMemCopy() function * Fixed typo
1 parent 8b4a5e7 commit bc7f33b

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

lib/gc/ExecutionEngine/OpenCLRuntime/OpenCLRuntimeWrappers.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#ifdef _WIN32
2222
#define OCL_RUNTIME_EXPORT __declspec(dllexport)
2323
#else
24-
#define OCL_RUNTIME_EXPORT
24+
#define OCL_RUNTIME_EXPORT __attribute__((visibility("default")))
2525
#endif // _WIN32
2626

2727
namespace {
@@ -73,7 +73,7 @@ struct CLExtTable {
7373
clSharedMemAllocINTEL_fn allocShared;
7474
clMemBlockingFreeINTEL_fn blockingFree;
7575
clSetKernelArgMemPointerINTEL_fn setKernelArgMemPtr;
76-
clEnqueueMemcpyINTEL_fn enqueneMemcpy;
76+
clEnqueueMemcpyINTEL_fn enqueueMemcpy;
7777
CLExtTable() = default;
7878
CLExtTable(cl_platform_id plat) {
7979
allocDev =
@@ -84,7 +84,7 @@ struct CLExtTable {
8484
(clMemBlockingFreeINTEL_fn)queryCLExtFunc(plat, MemBlockingFreeName);
8585
setKernelArgMemPtr = (clSetKernelArgMemPointerINTEL_fn)queryCLExtFunc(
8686
plat, SetKernelArgMemPointerName);
87-
enqueneMemcpy =
87+
enqueueMemcpy =
8888
(clEnqueueMemcpyINTEL_fn)queryCLExtFunc(plat, EnqueueMemcpyName);
8989
}
9090
};
@@ -390,6 +390,14 @@ extern "C" OCL_RUNTIME_EXPORT void gpuMemFree(GPUCLQUEUE *queue, void *ptr) {
390390
}
391391
}
392392

393+
extern "C" OCL_RUNTIME_EXPORT void gpuMemCopy(GPUCLQUEUE *queue, void *dst,
394+
void *src, uint64_t size) {
395+
auto func = queue->ext_table_ ? queue->ext_table_->enqueueMemcpy
396+
: (clEnqueueMemcpyINTEL_fn)queryCLExtFunc(
397+
queue->device_, EnqueueMemcpyName);
398+
CL_SAFE_CALL(func(queue->queue_, true, dst, src, size, 0, nullptr, nullptr));
399+
}
400+
393401
extern "C" OCL_RUNTIME_EXPORT cl_program
394402
gpuModuleLoad(GPUCLQUEUE *queue, const unsigned char *data, size_t dataSize) {
395403
if (queue) {

0 commit comments

Comments
 (0)