Skip to content

Commit 12192c3

Browse files
committed
sycl: Adding additional cpy dbg print output
1 parent 669c13e commit 12192c3

File tree

3 files changed

+33
-30
lines changed

3 files changed

+33
-30
lines changed

ggml/src/ggml-sycl/common.hpp

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -515,9 +515,9 @@ constexpr size_t ceil_div(const size_t m, const size_t n) {
515515

516516
bool gpu_has_xmx(sycl::device &dev);
517517

518-
template <int N, class T> void debug_print_array(const std::string & prefix, const T array[N]) {
518+
template <int N, class T> std::string debug_get_array_str(const std::string & prefix, const T array[N]) {
519519
if (LIKELY(!g_ggml_sycl_debug)) {
520-
return;
520+
return "";
521521
}
522522
std::stringstream ss;
523523
ss << prefix << "=[";
@@ -528,29 +528,33 @@ template <int N, class T> void debug_print_array(const std::string & prefix, con
528528
ss << array[N - 1];
529529
}
530530
ss << "]";
531-
GGML_SYCL_DEBUG("%s", ss.str().c_str());
531+
return ss.str();
532532
}
533533

534-
inline void debug_print_tensor(const std::string & prefix, const ggml_tensor * tensor,
534+
inline std::string debug_get_tensor_str(const std::string & prefix, const ggml_tensor * tensor,
535535
const std::string & suffix = "") {
536+
std::stringstream ss;
536537
if (LIKELY(!g_ggml_sycl_debug)) {
537-
return;
538+
return ss.str();
538539
}
539-
GGML_SYCL_DEBUG("%s=", prefix.c_str());
540+
ss << prefix.c_str();
540541
if (tensor) {
541-
GGML_SYCL_DEBUG("'%s':type=%s", tensor->name, ggml_type_name(tensor->type));
542-
debug_print_array<GGML_MAX_DIMS>(";ne", tensor->ne);
543-
debug_print_array<GGML_MAX_DIMS>(";nb", tensor->nb);
542+
ss <<"'"<<tensor->name<<"':type="<<ggml_type_name(tensor->type);
543+
ss << debug_get_array_str<GGML_MAX_DIMS>(";ne",tensor->ne);
544+
ss << debug_get_array_str<GGML_MAX_DIMS>(";nb",tensor->nb);
545+
546+
544547
if (!ggml_is_contiguous(tensor)) {
545-
GGML_SYCL_DEBUG(";strided");
548+
ss << ";strided";
546549
}
547550
if (ggml_is_permuted(tensor)) {
548-
GGML_SYCL_DEBUG(";permuted");
551+
ss << ";permuted";
549552
}
550553
} else {
551-
GGML_SYCL_DEBUG("nullptr");
554+
ss << "nullptr";
552555
}
553-
GGML_SYCL_DEBUG("%s", suffix.c_str());
556+
ss << suffix;
557+
return ss.str();
554558
}
555559

556560
// Use scope_op_debug_print to log operations coming from running a model
@@ -566,10 +570,10 @@ struct scope_op_debug_print {
566570
return;
567571
}
568572
GGML_SYCL_DEBUG("[SYCL][OP] call %s%s:", func.data(), func_suffix.data());
569-
debug_print_tensor(" dst", dst);
573+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(" dst", dst).c_str());
570574
if (dst) {
571575
for (std::size_t i = 0; i < num_src; ++i) {
572-
debug_print_tensor("\tsrc" + std::to_string(i), dst->src[i]);
576+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str("\tsrc" + std::to_string(i), dst->src[i]).c_str());
573577
}
574578
}
575579
GGML_SYCL_DEBUG("%s\n", suffix.data());

ggml/src/ggml-sycl/cpy.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -617,8 +617,7 @@ static void ggml_cpy_i32_i32_sycl(const char * cx, char * cdst, const int ne, co
617617

618618
void ggml_sycl_cpy(ggml_backend_sycl_context & ctx, const ggml_tensor * src0, const ggml_tensor * src1) try {
619619
// Unlike other operators ggml_sycl_cpy takes 2 distinct tensors instead of a dst ggml_tensor and rely on its src field
620-
scope_op_debug_print scope_dbg_print(__func__, src1, /*num_src=*/0,
621-
std::string(" src0 type=") + ggml_type_name(src0->type));
620+
scope_op_debug_print scope_dbg_print(__func__, src1, /*num_src=*/0, debug_get_tensor_str("\tsrc0", src0));
622621
const int64_t ne = ggml_nelements(src0);
623622
GGML_ASSERT(ne == ggml_nelements(src1));
624623

ggml/src/ggml-sycl/ggml-sycl.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ static enum ggml_status
347347
ggml_backend_sycl_buffer_init_tensor(ggml_backend_buffer_t buffer,
348348
ggml_tensor *tensor) try {
349349
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
350-
debug_print_tensor(": tensor=", tensor, "\n");
350+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor, "\n").c_str());
351351
ggml_backend_sycl_buffer_context * ctx = (ggml_backend_sycl_buffer_context *)buffer->context;
352352

353353
if (tensor->view_src != NULL) {
@@ -384,7 +384,7 @@ static void ggml_backend_sycl_buffer_set_tensor(ggml_backend_buffer_t buffer,
384384
const void *data, size_t offset,
385385
size_t size) try {
386386
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
387-
debug_print_tensor(": tensor=", tensor);
387+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
388388
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
389389
ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
390390
ggml_sycl_set_device(ctx->device);
@@ -412,7 +412,7 @@ static void ggml_backend_sycl_buffer_get_tensor(ggml_backend_buffer_t buffer,
412412
void *data, size_t offset,
413413
size_t size) try {
414414
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
415-
debug_print_tensor(": tensor=", tensor);
415+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
416416
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
417417
ggml_backend_sycl_buffer_context * ctx = ( ggml_backend_sycl_buffer_context *)buffer->context;
418418

@@ -443,8 +443,8 @@ ggml_backend_sycl_buffer_cpy_tensor(ggml_backend_buffer_t buffer,
443443
ggml_tensor *dst) try {
444444
bool is_cpy_supported = ggml_backend_buffer_is_sycl(src->buffer);
445445
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
446-
debug_print_tensor(": dst=", dst);
447-
debug_print_tensor(" src=", src);
446+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": dst=", dst).c_str());
447+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(" src=", src).c_str());
448448
GGML_SYCL_DEBUG(" is_cpy_supported=%d\n", is_cpy_supported);
449449
if (is_cpy_supported) {
450450
ggml_backend_sycl_buffer_context * src_ctx = (ggml_backend_sycl_buffer_context *)src->buffer->context;
@@ -524,7 +524,7 @@ catch (sycl::exception const &exc) {
524524
static void ggml_backend_sycl_buffer_memset_tensor(ggml_backend_buffer_t buffer, ggml_tensor * tensor, uint8_t value,
525525
size_t offset, size_t size) {
526526
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
527-
debug_print_tensor(": tensor=", tensor);
527+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
528528
GGML_SYCL_DEBUG(" size=%zu offset=%zu value=%u\n", size, offset, value);
529529
ggml_backend_sycl_buffer_context * ctx = (ggml_backend_sycl_buffer_context *) buffer->context;
530530
SYCL_CHECK(ggml_sycl_set_device(ctx->device));
@@ -804,7 +804,7 @@ static enum ggml_status
804804
ggml_backend_sycl_split_buffer_init_tensor(ggml_backend_buffer_t buffer,
805805
ggml_tensor *tensor) try {
806806
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
807-
debug_print_tensor(": tensor=", tensor, "\n");
807+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor, "\n").c_str());
808808
GGML_ASSERT(tensor->view_src == nullptr); // views of split tensors are not supported
809809

810810
ggml_backend_sycl_split_buffer_context * ctx = (ggml_backend_sycl_split_buffer_context *)buffer->context;
@@ -890,7 +890,7 @@ ggml_backend_sycl_split_buffer_set_tensor(ggml_backend_buffer_t buffer,
890890
ggml_tensor *tensor, const void *data,
891891
size_t offset, size_t size) try {
892892
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
893-
debug_print_tensor(": tensor=", tensor);
893+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
894894
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
895895
// split tensors must always be set in their entirety at once
896896
GGML_ASSERT(offset == 0);
@@ -946,7 +946,7 @@ ggml_backend_sycl_split_buffer_get_tensor(ggml_backend_buffer_t buffer,
946946
const ggml_tensor *tensor, void *data,
947947
size_t offset, size_t size) try {
948948
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
949-
debug_print_tensor(": tensor=", tensor);
949+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
950950
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
951951
// split tensors must always be set in their entirety at once
952952
GGML_ASSERT(offset == 0);
@@ -3816,7 +3816,7 @@ static void ggml_backend_sycl_set_tensor_async(ggml_backend_t backend,
38163816
const void *data, size_t offset,
38173817
size_t size) try {
38183818
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
3819-
debug_print_tensor(": tensor=", tensor);
3819+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
38203820
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
38213821
ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
38223822
ggml_backend_buffer_t buf = tensor->view_src ? tensor->view_src->buffer : tensor->buffer;
@@ -3837,7 +3837,7 @@ static void ggml_backend_sycl_get_tensor_async(ggml_backend_t backend,
38373837
void *data, size_t offset,
38383838
size_t size) try {
38393839
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
3840-
debug_print_tensor(": tensor=", tensor);
3840+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": tensor=", tensor).c_str());
38413841
GGML_SYCL_DEBUG(" size=%zu offset=%zu\n", size, offset);
38423842
ggml_backend_sycl_context * sycl_ctx = (ggml_backend_sycl_context *)backend->context;
38433843
ggml_backend_buffer_t buf = tensor->view_src ? tensor->view_src->buffer : tensor->buffer;
@@ -3860,8 +3860,8 @@ static bool ggml_backend_sycl_cpy_tensor_async(ggml_backend_t backend,
38603860
bool is_cpy_supported = dst->buffer->buft == ggml_backend_sycl_buffer_type(sycl_ctx->device) &&
38613861
ggml_backend_buffer_is_sycl(src->buffer);
38623862
GGML_SYCL_DEBUG("[SYCL] call %s", __func__);
3863-
debug_print_tensor(": dst=", dst);
3864-
debug_print_tensor(" src=", src);
3863+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(": dst=", dst).c_str());
3864+
GGML_SYCL_DEBUG("%s", debug_get_tensor_str(" src=", src).c_str());
38653865
GGML_SYCL_DEBUG(" is_cpy_supported=%d\n", is_cpy_supported);
38663866
if (is_cpy_supported) {
38673867
/*

0 commit comments

Comments
 (0)