Skip to content

Commit

Permalink
ggml: update unit tests for the new vec_dot interface
Browse files Browse the repository at this point in the history
  • Loading branch information
snadampal committed Jan 23, 2024
1 parent f3a8465 commit 99b811d
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 6 deletions.
7 changes: 5 additions & 2 deletions pocs/vdot/q8dot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,11 @@ int main(int argc, char** argv) {

t1 = std::chrono::high_resolution_clock::now();
float fs;
if (type == 0) funcs.vec_dot(kVecSize * QK4_1, &fs, x40.data(), y.data());
else funcs.vec_dot(kVecSize * QK4_1, &fs, x41.data(), y.data());
const void * x40_data_l[1] = {x40.data()};
const void * x41_data_l[1] = {x41.data()};
const void * y_data_l[1] = {y.data()};
if (type == 0) funcs.vec_dot(kVecSize * QK4_1, &fs, x40_data_l, y_data_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);
else funcs.vec_dot(kVecSize * QK4_1, &fs, x41_data_l, y_data_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);
t2 = std::chrono::high_resolution_clock::now();
t = 1e-3*std::chrono::duration_cast<std::chrono::nanoseconds>(t2-t1).count();
if (iloop > 3) ggml.addResult(fs, t);
Expand Down
7 changes: 5 additions & 2 deletions pocs/vdot/vdot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,11 @@ int main(int argc, char** argv) {
else {
auto vdot = ggml_internal_get_type_traits(funcs.vec_dot_type);
vdot.from_float(y1.data(), q8.data(), kVecSize);
if (useQ4_1) funcs.vec_dot(kVecSize, &result, q41.data(), q8.data());
else funcs.vec_dot(kVecSize, &result, q40.data(), q8.data());
const void * q40_data_l[1] = {q40.data()};
const void * q41_data_l[1] = {q41.data()};
const void * q8_data_l[1] = {q8.data()};
if (useQ4_1) funcs.vec_dot(kVecSize, &result, q41_data_l, q8_data_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);
else funcs.vec_dot(kVecSize, &result, q40_data_l, q8_data_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);
}
sumq += result;
t2 = std::chrono::high_resolution_clock::now();
Expand Down
4 changes: 3 additions & 1 deletion tests/test-quantize-fns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ static float dot_product_error(
vdot.from_float(test_data2, tmp_q2.data(), test_size);

float result = INFINITY;
qfns.vec_dot(test_size, &result, tmp_q1.data(), tmp_q2.data());
const void * tmp_q1_data_l[1] = {tmp_q1.data()};
const void * tmp_q2_data_l[1] = {tmp_q2.data()};
qfns.vec_dot(test_size, &result, tmp_q1_data_l, tmp_q2_data_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);

const float dot_ref = dot_product(test_data1, test_data2, test_size);

Expand Down
4 changes: 3 additions & 1 deletion tests/test-quantize-perf.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,9 @@ int main(int argc, char * argv[]) {
printf(" %zu values (%.2f MB)\n", size, 4*size/(float)(1024*1024));
auto quantize_fn = [&](void) -> float {
float result;
qfns.vec_dot(size, &result, test_q1, test_q2);
const void * test_q1_l[1] = {test_q1};
const void * test_q2_l[1] = {test_q2};
qfns.vec_dot(size, &result, test_q1_l, test_q2_l, MAX_NUM_ROWS_COLS_DOT_PRODUCT);
return result;
};
size_t quantized_size = ggml_row_size(type, size);
Expand Down

0 comments on commit 99b811d

Please sign in to comment.