21
21
#ifdef _WIN32
22
22
#define OCL_RUNTIME_EXPORT __declspec (dllexport)
23
23
#else
24
- #define OCL_RUNTIME_EXPORT
24
+ #define OCL_RUNTIME_EXPORT __attribute__ ((visibility( " default " )))
25
25
#endif // _WIN32
26
26
27
27
namespace {
@@ -73,7 +73,7 @@ struct CLExtTable {
73
73
clSharedMemAllocINTEL_fn allocShared;
74
74
clMemBlockingFreeINTEL_fn blockingFree;
75
75
clSetKernelArgMemPointerINTEL_fn setKernelArgMemPtr;
76
- clEnqueueMemcpyINTEL_fn enqueneMemcpy ;
76
+ clEnqueueMemcpyINTEL_fn enqueueMemcpy ;
77
77
CLExtTable () = default ;
78
78
CLExtTable (cl_platform_id plat) {
79
79
allocDev =
@@ -84,7 +84,7 @@ struct CLExtTable {
84
84
(clMemBlockingFreeINTEL_fn)queryCLExtFunc (plat, MemBlockingFreeName);
85
85
setKernelArgMemPtr = (clSetKernelArgMemPointerINTEL_fn)queryCLExtFunc (
86
86
plat, SetKernelArgMemPointerName);
87
- enqueneMemcpy =
87
+ enqueueMemcpy =
88
88
(clEnqueueMemcpyINTEL_fn)queryCLExtFunc (plat, EnqueueMemcpyName);
89
89
}
90
90
};
@@ -390,6 +390,14 @@ extern "C" OCL_RUNTIME_EXPORT void gpuMemFree(GPUCLQUEUE *queue, void *ptr) {
390
390
}
391
391
}
392
392
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
+
393
401
extern " C" OCL_RUNTIME_EXPORT cl_program
394
402
gpuModuleLoad (GPUCLQUEUE *queue, const unsigned char *data, size_t dataSize) {
395
403
if (queue) {
0 commit comments