| 87 | TEST_SUITE(Validate) |
| 88 | |
| 89 | TEST_CASE(SupportedBlockSizes, framework::DatasetMode::ALL) |
| 90 | { |
| 91 | using MatMulConfigurationPair = std::pair<MatMulKernelInfo, bool>; |
| 92 | |
| 93 | const std::vector<MatMulConfigurationPair> supported_block_sizes = { |
| 94 | // MatMulKernelInfo(adj_lhs, adj_rhs, M0, N0, K0, export_rhs_to_cl_image = false) |
| 95 | // Lhs not-transposed, Rhs-not-transposed |
| 96 | {MatMulKernelInfo(false, false, 0, 1, 1), false}, // M0 should be > 0 |
| 97 | {MatMulKernelInfo(false, false, 3, 5, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 98 | {MatMulKernelInfo(false, false, 3, 6, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 99 | {MatMulKernelInfo(false, false, 3, 3, 17), false}, // K0 not in {1, 2, 3, 4, 8, 16} |
| 100 | {MatMulKernelInfo(false, false, 3, 3, 7), false}, // K0 not in {1, 2, 3, 4, 8, 16} |
| 101 | {MatMulKernelInfo(false, false, 9, 1, 2), true}, |
| 102 | {MatMulKernelInfo(false, false, 3, 16, 3), true}, |
| 103 | {MatMulKernelInfo(false, false, 7, 3, 4), true}, |
| 104 | {MatMulKernelInfo(false, false, 7, 3, 4, true), false}, // N0 not in {4, 8, 16} |
| 105 | {MatMulKernelInfo(false, false, 7, 1, 4, true), false}, // N0 not in {4, 8, 16} |
| 106 | {MatMulKernelInfo(false, false, 7, 12, 4, true), false}, // N0 not in {4, 8, 16} |
| 107 | {MatMulKernelInfo(false, false, 7, 4, 4, true), true}, |
| 108 | {MatMulKernelInfo(false, false, 7, 8, 4, true), true}, |
| 109 | {MatMulKernelInfo(false, false, 7, 16, 4, true), true}, |
| 110 | |
| 111 | // Lhs not-transposed, Rhs transposed |
| 112 | {MatMulKernelInfo(false, true, 0, 1, 1), false}, // M0 should be > 0 |
| 113 | {MatMulKernelInfo(false, true, 3, 11, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 114 | {MatMulKernelInfo(false, true, 3, 7, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 115 | {MatMulKernelInfo(false, true, 3, 3, 12), false}, // K0 not in {1, 2, 3, 4, 8, 16} |
| 116 | {MatMulKernelInfo(false, true, 3, 3, 6), false}, // K0 not in {1, 2, 3, 4, 8, 16} |
| 117 | {MatMulKernelInfo(false, true, 5, 1, 2), true}, |
| 118 | {MatMulKernelInfo(false, true, 3, 3, 3), true}, |
| 119 | {MatMulKernelInfo(false, true, 2, 4, 8), true}, |
| 120 | {MatMulKernelInfo(false, true, 2, 4, 5, true), false}, // K0 not in {4, 8, 16} |
| 121 | {MatMulKernelInfo(false, true, 2, 4, 9, true), false}, // K0 not in {4, 8, 16} |
| 122 | {MatMulKernelInfo(false, true, 2, 4, 3, true), false}, // K0 not in {4, 8, 16} |
| 123 | {MatMulKernelInfo(false, true, 2, 4, 4, true), true}, |
| 124 | {MatMulKernelInfo(false, true, 2, 4, 8, true), true}, |
| 125 | {MatMulKernelInfo(false, true, 2, 8, 16, true), true}, |
| 126 | |
| 127 | // Lhs transposed, Rhs-not-transposed |
| 128 | {MatMulKernelInfo(true, false, 1, 1, 0), false}, // K0 should be > 0 |
| 129 | {MatMulKernelInfo(true, false, 3, 11, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 130 | {MatMulKernelInfo(true, false, 3, 7, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
| 131 | {MatMulKernelInfo(true, false, 6, 3, 12), false}, // M0 not in {1, 2, 3, 4, 8, 16} |
| 132 | {MatMulKernelInfo(true, false, 5, 3, 6), false}, // M0 not in {1, 2, 3, 4, 8, 16} |
| 133 | {MatMulKernelInfo(true, false, 4, 1, 22), true}, |
| 134 | {MatMulKernelInfo(true, false, 3, 3, 3), true}, |
| 135 | {MatMulKernelInfo(true, false, 2, 4, 8), true}, |
| 136 | {MatMulKernelInfo(true, false, 2, 3, 8, true), false}, // N0 not in {4, 8, 16} |
| 137 | {MatMulKernelInfo(true, false, 2, 7, 8, true), false}, // N0 not in {4, 8, 16} |
| 138 | {MatMulKernelInfo(true, false, 2, 5, 8, true), false}, // N0 not in {4, 8, 16} |
| 139 | {MatMulKernelInfo(true, false, 2, 4, 8, true), true}, |
| 140 | {MatMulKernelInfo(true, false, 2, 8, 8, true), true}, |
| 141 | {MatMulKernelInfo(true, false, 2, 16, 8, true), true}, |
| 142 | |
| 143 | // Lhs transposed, Rhs-transposed |
| 144 | {MatMulKernelInfo(true, true, 2, 1, 5), false}, // K0 should in {1, 2, 3, 4, 8, 16} |
| 145 | {MatMulKernelInfo(true, true, 1, 8, 7), false}, // K0 should in {1, 2, 3, 4, 8, 16} |
| 146 | {MatMulKernelInfo(true, true, 3, 11, 1), false}, // N0 not in {1, 2, 3, 4, 8, 16} |
nothing calls this directly
no test coverage detected