Spaces:
Running
Running
Neo Zhang Jianyu
commited on
Commit
·
3d4b079
1
Parent(s):
5560cd6
Revert "sycl:remove redundant memcopy in function ggml_backend_sycl_buffer_set_tensor" (llama/12812)
Browse files* Revert "sycl: remove redundant memcopy in function ggml_backend_sycl_buffer_s…"
This reverts commit 518a01480eb3a7c80a4951b430db9dee55428310.
* Update ggml/src/ggml-sycl/ggml-sycl.cpp
* Update ggml/src/ggml-sycl/ggml-sycl.cpp
* rm tail space
ggml/src/ggml-sycl/ggml-sycl.cpp
CHANGED
|
@@ -372,9 +372,14 @@ static void ggml_backend_sycl_buffer_set_tensor(ggml_backend_buffer_t buffer,
|
|
| 372 |
auto stream = &(dpct::dev_mgr::instance().get_device(ctx->device).default_queue());
|
| 373 |
SYCL_CHECK(
|
| 374 |
CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw()));
|
|
|
|
|
|
|
|
|
|
|
|
|
| 375 |
SYCL_CHECK(
|
| 376 |
-
CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset,
|
| 377 |
.wait()));
|
|
|
|
| 378 |
}
|
| 379 |
catch (sycl::exception const &exc) {
|
| 380 |
std::cerr << exc.what() << "Exception caught at file:" << __FILE__
|
|
|
|
| 372 |
auto stream = &(dpct::dev_mgr::instance().get_device(ctx->device).default_queue());
|
| 373 |
SYCL_CHECK(
|
| 374 |
CHECK_TRY_ERROR(dpct::dev_mgr::instance().get_device(ctx->device).queues_wait_and_throw()));
|
| 375 |
+
// Note: Use host buffer to save the data from mmap(), then copy to device. It's workaround for mmap() issue on PVC GPU.
|
| 376 |
+
// This function will be called during load model from disk. Use memory buffer replace dynamic won't save more time and brings potential memory leak risk here.
|
| 377 |
+
char* host_buf = (char*)malloc(size);
|
| 378 |
+
memcpy(host_buf, data, size);
|
| 379 |
SYCL_CHECK(
|
| 380 |
+
CHECK_TRY_ERROR((*stream).memcpy((char *)tensor->data + offset, host_buf, size)
|
| 381 |
.wait()));
|
| 382 |
+
free(host_buf);
|
| 383 |
}
|
| 384 |
catch (sycl::exception const &exc) {
|
| 385 |
std::cerr << exc.what() << "Exception caught at file:" << __FILE__
|