MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / test_backend

Function test_backend

smallthinker/tests/test-backend-ops.cpp:4612–4676  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4610}
4611
4612static bool test_backend(ggml_backend_t backend, test_mode mode, const char * op_name, const char * params_filter) {
4613 auto filter_test_cases = [](std::vector<std::unique_ptr<test_case>> & test_cases, const char * params_filter) {
4614 if (params_filter == nullptr) {
4615 return;
4616 }
4617
4618 std::regex params_filter_regex(params_filter);
4619
4620 for (auto it = test_cases.begin(); it != test_cases.end();) {
4621 if (!std::regex_search((*it)->vars(), params_filter_regex)) {
4622 it = test_cases.erase(it);
4623 continue;
4624 }
4625
4626 it++;
4627 }
4628 };
4629
4630 if (mode == MODE_TEST) {
4631 auto test_cases = make_test_cases_eval();
4632 filter_test_cases(test_cases, params_filter);
4633 ggml_backend_t backend_cpu = ggml_backend_init_by_type(GGML_BACKEND_DEVICE_TYPE_CPU, NULL);
4634 if (backend_cpu == NULL) {
4635 printf(" Failed to initialize CPU backend\n");
4636 return false;
4637 }
4638
4639 size_t n_ok = 0;
4640 for (auto & test : test_cases) {
4641 if (test->eval(backend, backend_cpu, op_name)) {
4642 n_ok++;
4643 }
4644 }
4645 printf(" %zu/%zu tests passed\n", n_ok, test_cases.size());
4646
4647 ggml_backend_free(backend_cpu);
4648
4649 return n_ok == test_cases.size();
4650 }
4651
4652 if (mode == MODE_GRAD) {
4653 auto test_cases = make_test_cases_eval();
4654 filter_test_cases(test_cases, params_filter);
4655 size_t n_ok = 0;
4656 for (auto & test : test_cases) {
4657 if (test->eval_grad(backend, op_name)) {
4658 n_ok++;
4659 }
4660 }
4661 printf(" %zu/%zu tests passed\n", n_ok, test_cases.size());
4662
4663 return n_ok == test_cases.size();
4664 }
4665
4666 if (mode == MODE_PERF) {
4667 auto test_cases = make_test_cases_perf();
4668 filter_test_cases(test_cases, params_filter);
4669 for (auto & test : test_cases) {

Callers 1

mainFunction · 0.70

Calls 12

make_test_cases_evalFunction · 0.85
printfFunction · 0.85
make_test_cases_perfFunction · 0.85
evalMethod · 0.80
eval_gradMethod · 0.80
eval_perfMethod · 0.80
ggml_backend_freeFunction · 0.50
beginMethod · 0.45
endMethod · 0.45
varsMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected