(target="llvm")
| 57 | return f |
| 58 | |
| 59 | def verify(target="llvm"): |
| 60 | if not tvm.testing.device_enabled(target): |
| 61 | print(f"skip because {target} is not enabled...") |
| 62 | return |
| 63 | if not tvm.get_global_func(lib.__name__ + ".matmul", True): |
| 64 | print("skip because extern function is not available") |
| 65 | return |
| 66 | dev = tvm.cpu(0) |
| 67 | name = "test_matmul_add" |
| 68 | f = tvm.compile( |
| 69 | te.create_prim_func([input1_data, input2_data, final_result, bias]).with_attr( |
| 70 | "global_symbol", name |
| 71 | ), |
| 72 | target=target, |
| 73 | ) |
| 74 | if target == "c": |
| 75 | f = compiling(f, name) |
| 76 | matrix_input1 = tvm.runtime.tensor( |
| 77 | np.random.uniform(size=ashape).astype(input1_data.dtype), dev |
| 78 | ) |
| 79 | matrix_input2 = tvm.runtime.tensor( |
| 80 | np.random.uniform(size=bshape).astype(input2_data.dtype), dev |
| 81 | ) |
| 82 | matrix_result = tvm.runtime.tensor( |
| 83 | np.zeros((matrix_n, matrix_m), dtype=final_result.dtype), dev |
| 84 | ) |
| 85 | matrix_bias = 10.0 |
| 86 | f(matrix_input1, matrix_input2, matrix_result, matrix_bias) |
| 87 | tvm.testing.assert_allclose( |
| 88 | matrix_result.numpy(), |
| 89 | get_numpy(matrix_input1.numpy(), matrix_input2.numpy(), matrix_bias, transa, transb), |
| 90 | rtol=1e-5, |
| 91 | ) |
| 92 | |
| 93 | verify("llvm") |
| 94 | verify("c") |
no test coverage detected
searching dependent graphs…