| 66 | } |
| 67 | |
| 68 | void PoolingForwardImpl::AlgoMIOpen::exec(const ExecArgs& args) const { |
| 69 | auto handle = miopen_handle(args.handle); |
| 70 | TensorDesc src_desc, dst_desc; |
| 71 | args.init_desc(src_desc, dst_desc); |
| 72 | miopenPoolingMode_t mode; |
| 73 | init_mode(args, mode); |
| 74 | |
| 75 | miopenPoolingDescriptor_t miopen_desc; |
| 76 | miopen_check(miopenCreatePoolingDescriptor(&miopen_desc)); |
| 77 | miopen_check(miopenSet2dPoolingDescriptor( |
| 78 | miopen_desc, mode, args.opr->param().window_h, args.opr->param().window_w, |
| 79 | args.opr->param().pad_h, args.opr->param().pad_w, |
| 80 | args.opr->param().stride_h, args.opr->param().stride_w)); |
| 81 | |
| 82 | dt_float32 alpha = 1.0f, beta = 0.0f; |
| 83 | miopen_check(miopenPoolingForward( |
| 84 | handle, miopen_desc, &alpha, src_desc.desc, args.src_tensor->raw_ptr(), |
| 85 | &beta, dst_desc.desc, args.dst_tensor->raw_ptr(), false, nullptr, 0_z)); |
| 86 | miopen_check(miopenDestroyPoolingDescriptor(miopen_desc)); |
| 87 | } |
| 88 | |
| 89 | PoolingBackwardImpl::AlgoPack::AlgoPack() { |
| 90 | all_algos.push_back(&algo_miopen); |
nothing calls this directly
no test coverage detected