MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / dispatch_custom_op

Function dispatch_custom_op

src/custom/impl/op.cpp:571–593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

569}
570
571void dispatch_custom_op(
572 std::shared_ptr<const CustomOp> op, const Param& param,
573 std::shared_ptr<::megdnn::SmallVector<::mgb::DeviceTensorND>> inputs,
574 std::shared_ptr<::megdnn::SmallVector<::mgb::DeviceTensorND>> outputs) {
575 if (outputs->size() == 0) {
576 return;
577 }
578
579 auto compnode = outputs->at(0).comp_node();
580 if (compnode.device_type() == CompNode::DeviceType::CPU) {
581 auto&& cpu_env = CompNodeEnv::from_comp_node(compnode).cpu_env();
582 cpu_env.dispatch([op, param, inputs, outputs]() {
583 compute_impl(op, param, inputs, outputs);
584 });
585
586 } else {
587 mgb_assert(
588 compnode.device_type() == CompNode::DeviceType::CUDA,
589 "custom op only support cuda/cpu now, but get %s",
590 compnode.to_string().c_str());
591 compute_impl(op, param, inputs, outputs);
592 }
593}
594
595} // namespace custom
596

Callers 3

computeMethod · 0.85
TESTFunction · 0.85
do_executeMethod · 0.85

Calls 7

compute_implFunction · 0.85
sizeMethod · 0.45
comp_nodeMethod · 0.45
atMethod · 0.45
device_typeMethod · 0.45
dispatchMethod · 0.45
to_stringMethod · 0.45

Tested by 1

TESTFunction · 0.68