MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / ForwardDataContent

Method ForwardDataContent

oneflow/core/kernel/boxing_kernel.cpp:207–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

205
206template<typename T>
207void BoxingKernel<T>::ForwardDataContent(KernelContext* ctx) const {
208 const BoxingOpConf& boxing_conf = op_conf().boxing_conf();
209 ep::Stream* stream = ctx->stream();
210 const auto BnInOp2Blob = [ctx](const std::string& bn) { return ctx->BnInOp2Blob(bn); };
211 if (boxing_conf.in_box_case() == BoxingOpConf::kConcatBox) {
212 if (boxing_conf.out_box_case() == BoxingOpConf::kSplitBox) {
213 ConcatSplitDataContent(stream, BnInOp2Blob, op_attribute().input_bns(),
214 boxing_conf.concat_box().axis(), op_attribute().output_bns(),
215 boxing_conf.split_box().axis());
216 } else if (boxing_conf.out_box_case() == BoxingOpConf::kCloneBox) {
217 ConcatSplitDataContent(stream, BnInOp2Blob, op_attribute().input_bns(),
218 boxing_conf.concat_box().axis(), obn_0_, 0);
219 CopyFromFirstToOtherBlobs(ctx, BnInOp2Blob, op_attribute().output_bns());
220 } else {
221 UNIMPLEMENTED();
222 }
223 } else if (boxing_conf.in_box_case() == BoxingOpConf::kAddBox) {
224 if (boxing_conf.out_box_case() == BoxingOpConf::kSplitBox) {
225 CalcSumOfBlobs<T>(ctx, BnInOp2Blob, op_attribute().input_bns(), "middle");
226 ConcatSplitDataContent(stream, BnInOp2Blob, ConstructPbRpf("middle"), 0,
227 op_attribute().output_bns(), boxing_conf.split_box().axis());
228 } else if (boxing_conf.out_box_case() == BoxingOpConf::kCloneBox) {
229 CalcSumOfBlobs<T>(ctx, BnInOp2Blob, op_attribute().input_bns(), obn_0_.Get(0));
230 CopyFromFirstToOtherBlobs(ctx, BnInOp2Blob, op_attribute().output_bns());
231 } else {
232 UNIMPLEMENTED();
233 }
234 } else {
235 UNIMPLEMENTED();
236 }
237}
238
239ADD_CPU_DEFAULT_KERNEL_CREATOR(OperatorConf::kBoxingConf, BoxingKernel,
240 ARITHMETIC_DATA_TYPE_SEQ FLOAT16_DATA_TYPE_SEQ);

Callers

nothing calls this directly

Calls 6

ConcatSplitDataContentFunction · 0.85
ConstructPbRpfFunction · 0.85
streamMethod · 0.45
BnInOp2BlobMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected