| 259 | } |
| 260 | |
| 261 | void run(context& ctx, const std::vector<argument>& input_args, int32_t solution_idx = 0) const |
| 262 | { |
| 263 | if(strided_batched) |
| 264 | { |
| 265 | auto common_args = create_strided_batched_args_common(ctx, compute_type, input_args); |
| 266 | rocblas_invoke(&rocblas_gemm_strided_batched_ex, |
| 267 | common_args, |
| 268 | rocblas_gemm_algo_solution_index, |
| 269 | solution_idx, |
| 270 | gemm_flags); |
| 271 | } |
| 272 | else |
| 273 | { |
| 274 | auto common_args = create_gemm_ex_args_common(ctx, compute_type, input_args); |
| 275 | rocblas_invoke(&rocblas_gemm_ex, |
| 276 | common_args, |
| 277 | rocblas_gemm_algo_solution_index, |
| 278 | solution_idx, |
| 279 | gemm_flags); |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | #ifdef MIGRAPHX_USE_ROCBLAS_TUNING_API |
| 284 | auto validate(context& ctx, const std::vector<shape>& input_shapes, int32_t solution_idx) const |
no test coverage detected