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

Method exec

dnn/src/cuda/dropout/opr_impl.cpp:43–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43void DropoutForwardImpl::exec(
44 _megdnn_tensor_in inp, _megdnn_tensor_out oup, _megdnn_tensor_out mask,
45 _megdnn_workspace workspace) {
46 check_exec(inp.layout, oup.layout, mask.layout, workspace.size);
47 uint64_t seed = param().seed;
48 float drop_prob = param().drop_prob;
49
50 if (!dropout_status.initialized()) {
51 dropout_status.set(cudnn_handle(this->handle()), seed, drop_prob);
52 }
53 if (dropout_status.drop_prob != drop_prob) {
54 dropout_status.drop_prob = drop_prob;
55 dropout_status.restore_desc(cudnn_handle(this->handle()));
56 }
57 megdnn_assert(dropout_status.seed == seed);
58
59 DropoutTensorDesc inp_desc(inp.layout), oup_desc(oup.layout);
60 auto&& op_desc = dropout_status.desc;
61
62 cudnn_check(cudnnDropoutForward(
63 cudnn_handle(this->handle()), op_desc.desc, inp_desc.desc, inp.raw_ptr(),
64 oup_desc.desc, oup.raw_ptr(), mask.raw_ptr(),
65 mask.layout.total_nr_elems()));
66}
67
68void DropoutBackwardImpl::exec(
69 _megdnn_tensor_in doup, _megdnn_tensor_in mask, _megdnn_tensor_out dinp,

Callers

nothing calls this directly

Calls 9

cudnn_handleFunction · 0.85
restore_descMethod · 0.80
paramFunction · 0.50
initializedMethod · 0.45
setMethod · 0.45
handleMethod · 0.45
raw_ptrMethod · 0.45
total_nr_elemsMethod · 0.45
restoreMethod · 0.45

Tested by

no test coverage detected