This commit is contained in:
mike dupont 2023-11-21 21:12:56 -05:00
parent 9c33f53e9a
commit 6f8adf99d5

104
ggml.cpp
View file

@ -2886,39 +2886,39 @@ int32_t ggml_get_i32_1d(const struct ggml_tensor * tensor, int i) {
void ggml_tensor_checksum(const struct ggml_tensor * tensor); void ggml_tensor_checksum(const struct ggml_tensor * tensor);
void ggml_tensor_checksum(const struct ggml_tensor * tensor) { void ggml_tensor_checksum(const struct ggml_tensor * tensor) {
const int64_t ne = ggml_nelements(tensor) ; // const int64_t ne = ggml_nelements(tensor) ;
float fmin=0; // float fmin=0;
float ffirst=0; // float ffirst=0;
float fmax=0; // float fmax=0;
float fsum=0; // float fsum=0;
for (int64_t j = 0; j < ne; ++j) { // for (int64_t j = 0; j < ne; ++j) {
float f = ggml_get_f32_1d(tensor, j); // float f = ggml_get_f32_1d(tensor, j);
if (j ==0) { // if (j ==0) {
ffirst = f; // ffirst = f;
fmin = f; // fmin = f;
fmax = f; // fmax = f;
} // }
fsum += f; // fsum += f;
if (f < fmin){ // if (f < fmin){
fmin = f; // fmin = f;
} // }
if (f >fmax){ // if (f >fmax){
fmax = f; // fmax = f;
} // }
} // }
auto type_name = magic_enum::enum_name(tensor->type); // auto type_name = magic_enum::enum_name(tensor->type);
// color_name // // color_name
fprintf(stderr, "JSON: { \"cnt\":%ld, \"first\":%f,\"max\":%f,\"min\":%f,\"sum\":%f, \"name\":\"%s\", \"type\":\"%s\"}\n", // fprintf(stderr, "JSON: { \"cnt\":%ld, \"first\":%f,\"max\":%f,\"min\":%f,\"sum\":%f, \"name\":\"%s\", \"type\":\"%s\"}\n",
ne, // ne,
ffirst, // ffirst,
fmax, // fmax,
fmin, // fmin,
fsum, // fsum,
tensor->name, // tensor->name,
std::string(type_name).c_str() // std::string(type_name).c_str()
); // );
} }
void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value) { void ggml_set_i32_1d(const struct ggml_tensor * tensor, int i, int32_t value) {
@ -9568,7 +9568,7 @@ static void ggml_compute_forward_mul_mat(
// nb01 >= nb00 - src0 is not transposed // nb01 >= nb00 - src0 is not transposed
// compute by src0 rows // compute by src0 rows
fprintf(stderr, "%s: params_type:%d src0:%p ->data %p src1:%p ->data %p\n", __func__, params->type, (const void*)src0, src0->data, (const void*)src1, src1->data); //fprintf(stderr, "%s: params_type:%d src0:%p ->data %p src1:%p ->data %p\n", __func__, params->type, (const void*)src0, src0->data, (const void*)src1, src1->data);
#if defined(GGML_USE_CLBLAST) #if defined(GGML_USE_CLBLAST)
if (ggml_cl_can_mul_mat(src0, src1, dst)) { if (ggml_cl_can_mul_mat(src0, src1, dst)) {
@ -9626,7 +9626,7 @@ static void ggml_compute_forward_mul_mat(
} }
} }
printf("CBLAS = %f ms, %d x %d x %d x %d\n", (ggml_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3); //printf("CBLAS = %f ms, %d x %d x %d x %d\n", (ggml_perf_time_us() - t0)/1000.0, ne0, ne1, ne2, ne3);
return; return;
} }
@ -9660,7 +9660,7 @@ static void ggml_compute_forward_mul_mat(
const int64_t nr0 = ne01; // src0 rows const int64_t nr0 = ne01; // src0 rows
const int64_t nr1 = ne11*ne12*ne13; // src1 rows const int64_t nr1 = ne11*ne12*ne13; // src1 rows
printf("nr0 = %ld, nr1 = %ld\n", nr0, nr1); ///printf("nr0 = %ld, nr1 = %ld\n", nr0, nr1);
// distribute the thread work across the inner or outer loop based on which one is larger // distribute the thread work across the inner or outer loop based on which one is larger
@ -9679,7 +9679,7 @@ static void ggml_compute_forward_mul_mat(
const int64_t ir110 = dr1*ith1; const int64_t ir110 = dr1*ith1;
const int64_t ir111 = MIN(ir110 + dr1, nr1); const int64_t ir111 = MIN(ir110 + dr1, nr1);
printf("ir010 = %6ld, ir011 = %6ld, ir110 = %6ld, ir111 = %6ld\n", ir010, ir011, ir110, ir111); //printf("ir010 = %6ld, ir011 = %6ld, ir110 = %6ld, ir111 = %6ld\n", ir010, ir011, ir110, ir111);
// threads with no work simply yield (not sure if it helps) // threads with no work simply yield (not sure if it helps)
if (ir010 >= ir011 || ir110 >= ir111) { if (ir010 >= ir011 || ir110 >= ir111) {
@ -16534,29 +16534,29 @@ static void ggml_graph_export_leaf(const struct ggml_tensor * tensor, FILE * fou
const int64_t * ne = tensor->ne; const int64_t * ne = tensor->ne;
const size_t * nb = tensor->nb; const size_t * nb = tensor->nb;
fprintf(fout, "%-6s %-12s %8d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %16zu %16zu %16zu %16zu %16p %32s\n", // fprintf(fout, "%-6s %-12s %8d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %16zu %16zu %16zu %16zu %16p %32s\n",
ggml_type_name(tensor->type), // ggml_type_name(tensor->type),
ggml_op_name (tensor->op), // ggml_op_name (tensor->op),
tensor->n_dims, // tensor->n_dims,
ne[0], ne[1], ne[2], ne[3], // ne[0], ne[1], ne[2], ne[3],
nb[0], nb[1], nb[2], nb[3], // nb[0], nb[1], nb[2], nb[3],
tensor->data, // tensor->data,
tensor->name); // tensor->name);
} }
static void ggml_graph_export_node(const struct ggml_tensor * tensor, const char * arg, FILE * fout) { static void ggml_graph_export_node(const struct ggml_tensor * tensor, const char * arg, FILE * fout) {
const int64_t * ne = tensor->ne; const int64_t * ne = tensor->ne;
const size_t * nb = tensor->nb; const size_t * nb = tensor->nb;
fprintf(fout, "%-6s %-6s %-12s %8d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %16zu %16zu %16zu %16zu %16p %32s\n", //fprintf(fout, "%-6s %-6s %-12s %8d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %16zu %16zu %16zu %16zu %16p %32s\n",
arg, // arg,
ggml_type_name(tensor->type), // ggml_type_name(tensor->type),
ggml_op_name (tensor->op), // ggml_op_name (tensor->op),
tensor->n_dims, // tensor->n_dims,
ne[0], ne[1], ne[2], ne[3], // ne[0], ne[1], ne[2], ne[3],
nb[0], nb[1], nb[2], nb[3], // nb[0], nb[1], nb[2], nb[3],
tensor->data, // tensor->data,
tensor->name); // tensor->name);
} }
void ggml_graph_export(const struct ggml_cgraph * cgraph, const char * fname) { void ggml_graph_export(const struct ggml_cgraph * cgraph, const char * fname) {