diff --git a/oneflow/core/job/compiler.cpp b/oneflow/core/job/compiler.cpp
index 6763d790da23fa40cd9d59c58f38cf0a2542de85..158eb38f5c52517e536bec747a594c24900c1e40 100644
--- a/oneflow/core/job/compiler.cpp
+++ b/oneflow/core/job/compiler.cpp
@@ -2,7 +2,7 @@
#include "oneflow/core/persistence/tee_persistent_log_stream.h"
#include "oneflow/core/device/cudnn_conv_ctx_cache.h"
#include "oneflow/core/graph/op_graph.h"
-#include "oneflow/core/autograd/job_completer.h"
+#include "oneflow/core/job_completer/job_completer.h"
namespace oneflow {
diff --git a/oneflow/core/job/job.proto b/oneflow/core/job/job.proto
index 386daf40d4cacf7d202b60013bebd90964ed12c2..02261e82557ca96faf2a5264393589df7fee50be 100644
--- a/oneflow/core/job/job.proto
+++ b/oneflow/core/job/job.proto
@@ -11,6 +11,8 @@ import "oneflow/core/operator/op_conf.proto";
message JobHelperConf {
map<string, LogicalBlobIdPairs> tag2lbi_relations = 1;
map<string, OpNameRelations> tag2op_name_relations = 2;
+ map<string, LogicalBlobIdGroups> tag2lbi_groups = 3;
+ map<string, OpNameGroups> tag2op_name_groups = 4;
}
message Job {
@@ -19,4 +21,4 @@ message Job {
required Placement placement = 3;
required Config other = 4;
required JobHelperConf helper = 5;
-}
\ No newline at end of file
+}
diff --git a/oneflow/core/autograd/add_grad.cpp b/oneflow/core/job_completer/add_grad.cpp
similarity index 92%
rename from oneflow/core/autograd/add_grad.cpp
rename to oneflow/core/job_completer/add_grad.cpp
index bb29cd8b40810e23e40b9ad13afbc2fae7d99343..dad3f4cdf63b9786a1d651d014972d8cb7ff3c76 100644
--- a/oneflow/core/autograd/add_grad.cpp
+++ b/oneflow/core/job_completer/add_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/autograd.cpp b/oneflow/core/job_completer/autograd.cpp
similarity index 99%
rename from oneflow/core/autograd/autograd.cpp
rename to oneflow/core/job_completer/autograd.cpp
index 01d0ef0450847b0d90ff06794fb0d25c395a6243..ee8d2bf7f8cba9c10ed1d14bb01d1ce66b2df80e 100644
--- a/oneflow/core/autograd/autograd.cpp
+++ b/oneflow/core/job_completer/autograd.cpp
@@ -1,6 +1,6 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
#include "oneflow/core/job/job_builder.h"
-#include "oneflow/core/autograd/clone_grad.h"
+#include "oneflow/core/job_completer/clone_grad.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/autograd.h b/oneflow/core/job_completer/autograd.h
similarity index 92%
rename from oneflow/core/autograd/autograd.h
rename to oneflow/core/job_completer/autograd.h
index 8f7c0f869611c1a543a5a11c2dacf32fbedbb1fb..cae5ea4817c1336b61f0bc27cfbffd3123f06a02 100644
--- a/oneflow/core/autograd/autograd.h
+++ b/oneflow/core/job_completer/autograd.h
@@ -1,5 +1,5 @@
-#ifndef ONEFLOW_CORE_AUTOGRAD_AUTOGRAD_H_
-#define ONEFLOW_CORE_AUTOGRAD_AUTOGRAD_H_
+#ifndef ONEFLOW_CORE_JOB_COMPLETER_AUTOGRAD_H_
+#define ONEFLOW_CORE_JOB_COMPLETER_AUTOGRAD_H_
#include "oneflow/core/job/job_desc.h"
#include "oneflow/core/operator/operator.h"
@@ -40,4 +40,4 @@ class GenerateBackwardOpConfWrapperStruct final {
} // namespace oneflow
-#endif // ONEFLOW_CORE_AUTOGRAD_AUTOGRAD_H_
+#endif // ONEFLOW_CORE_JOB_COMPLETER_AUTOGRAD_H_
diff --git a/oneflow/core/autograd/autotick.cpp b/oneflow/core/job_completer/autotick.cpp
similarity index 98%
rename from oneflow/core/autograd/autotick.cpp
rename to oneflow/core/job_completer/autotick.cpp
index e7a0f8f0186e2a49e362384dc5fe2c510fa0ab2c..94042ed8181626bb77627ba03e11c2e0d8ddd9d5 100644
--- a/oneflow/core/autograd/autotick.cpp
+++ b/oneflow/core/job_completer/autotick.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autotick.h"
+#include "oneflow/core/job_completer/autotick.h"
#include "oneflow/core/job/job_builder.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/autotick.h b/oneflow/core/job_completer/autotick.h
similarity index 58%
rename from oneflow/core/autograd/autotick.h
rename to oneflow/core/job_completer/autotick.h
index 3b51268ac13c5cf4bd84c226652903adcd168265..146ac401872565752cc521c65924032952609f22 100644
--- a/oneflow/core/autograd/autotick.h
+++ b/oneflow/core/job_completer/autotick.h
@@ -1,5 +1,5 @@
-#ifndef ONEFLOW_CORE_AUTOGRAD_AUTOTICK_H_
-#define ONEFLOW_CORE_AUTOGRAD_AUTOTICK_H_
+#ifndef ONEFLOW_CORE_JOB_COMPLETER_AUTOTICK_H_
+#define ONEFLOW_CORE_JOB_COMPLETER_AUTOTICK_H_
#include "oneflow/core/job/job_desc.h"
#include "oneflow/core/operator/operator.h"
@@ -10,4 +10,4 @@ namespace oneflow {
void AutoTick(const OpGraph& op_graph, Job* job);
}
-#endif // ONEFLOW_CORE_AUTOGRAD_AUTOTICK_H_
+#endif // ONEFLOW_CORE_JOB_COMPLETER_AUTOTICK_H_
diff --git a/oneflow/core/autograd/autovar.cpp b/oneflow/core/job_completer/autovar.cpp
similarity index 96%
rename from oneflow/core/autograd/autovar.cpp
rename to oneflow/core/job_completer/autovar.cpp
index de7db46abd64fbb8f5ed15f690a394686ea80d87..1f05d336950900657b92458986458d7cfcc1c7af 100644
--- a/oneflow/core/autograd/autovar.cpp
+++ b/oneflow/core/job_completer/autovar.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autovar.h"
+#include "oneflow/core/job_completer/autovar.h"
#include "oneflow/core/job/job_builder.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/autovar.h b/oneflow/core/job_completer/autovar.h
similarity index 89%
rename from oneflow/core/autograd/autovar.h
rename to oneflow/core/job_completer/autovar.h
index ec9a0e6c8db270e5b6ca639bcc06fc771a277d74..3eab1e93a5706c01bb95ab6b783c04c8f7137e14 100644
--- a/oneflow/core/autograd/autovar.h
+++ b/oneflow/core/job_completer/autovar.h
@@ -1,5 +1,5 @@
-#ifndef ONEFLOW_CORE_AUTOGRAD_AUTOVAR_H_
-#define ONEFLOW_CORE_AUTOGRAD_AUTOVAR_H_
+#ifndef ONEFLOW_CORE_JOB_COMPLETER_AUTOVAR_H_
+#define ONEFLOW_CORE_JOB_COMPLETER_AUTOVAR_H_
#include "oneflow/core/job/job_desc.h"
#include "oneflow/core/operator/operator.h"
@@ -33,4 +33,4 @@ class GenerateInputVarOpConfWrapperStruct final {
} // namespace oneflow
-#endif // ONEFLOW_CORE_AUTOGRAD_AUTOVAR_H_
+#endif // ONEFLOW_CORE_JOB_COMPLETER_AUTOVAR_H_
diff --git a/oneflow/core/autograd/batch_gather_grad.cpp b/oneflow/core/job_completer/batch_gather_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/batch_gather_grad.cpp
rename to oneflow/core/job_completer/batch_gather_grad.cpp
index 1805233f283a576d26c663fbea154de0c720edf1..671f17c6233aa8a9c05150d136a40028d10fa6a8 100644
--- a/oneflow/core/autograd/batch_gather_grad.cpp
+++ b/oneflow/core/job_completer/batch_gather_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/bias_add_grad.cpp b/oneflow/core/job_completer/bias_add_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/bias_add_grad.cpp
rename to oneflow/core/job_completer/bias_add_grad.cpp
index b6d344438895e6689bcc7653e83d9e1972212cf5..a2ff8facb73f15dcb45ef6d61b7c4d342f2ba3e7 100644
--- a/oneflow/core/autograd/bias_add_grad.cpp
+++ b/oneflow/core/job_completer/bias_add_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/broadcast_add_grad.cpp b/oneflow/core/job_completer/broadcast_add_grad.cpp
similarity index 97%
rename from oneflow/core/autograd/broadcast_add_grad.cpp
rename to oneflow/core/job_completer/broadcast_add_grad.cpp
index dfe745fdd268450b121cc070fc0ab737f9f2f544..b4d75f3ccdb2630d4c488464527127b03e05cb72 100644
--- a/oneflow/core/autograd/broadcast_add_grad.cpp
+++ b/oneflow/core/job_completer/broadcast_add_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/broadcast_div_grad.cpp b/oneflow/core/job_completer/broadcast_div_grad.cpp
similarity index 98%
rename from oneflow/core/autograd/broadcast_div_grad.cpp
rename to oneflow/core/job_completer/broadcast_div_grad.cpp
index 67f807778f5246b48e33af860006fd4711631b9d..e972af364308ed1102be158c241fd26f82901e70 100644
--- a/oneflow/core/autograd/broadcast_div_grad.cpp
+++ b/oneflow/core/job_completer/broadcast_div_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/broadcast_mul_grad.cpp b/oneflow/core/job_completer/broadcast_mul_grad.cpp
similarity index 98%
rename from oneflow/core/autograd/broadcast_mul_grad.cpp
rename to oneflow/core/job_completer/broadcast_mul_grad.cpp
index be8a766e84cf0f8e6b7a99544de1c2f883b5b10c..b06fddbf1fd590396287716a6474d958ab23a668 100644
--- a/oneflow/core/autograd/broadcast_mul_grad.cpp
+++ b/oneflow/core/job_completer/broadcast_mul_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/cast_grad.cpp b/oneflow/core/job_completer/cast_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/cast_grad.cpp
rename to oneflow/core/job_completer/cast_grad.cpp
index 81f484aac6bb02dec24c73c5b306c637e0519fa9..c5dd4b86a2621ac4071cb2e0236e325dfbe39bc3 100644
--- a/oneflow/core/autograd/cast_grad.cpp
+++ b/oneflow/core/job_completer/cast_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/clone_grad.cpp b/oneflow/core/job_completer/clone_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/clone_grad.cpp
rename to oneflow/core/job_completer/clone_grad.cpp
index f76b3073faf91a83afc0027380c6342120696e2e..d161105150f37f6830beeca90e1f798d2399e1c5 100644
--- a/oneflow/core/autograd/clone_grad.cpp
+++ b/oneflow/core/job_completer/clone_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/clone_grad.h"
+#include "oneflow/core/job_completer/clone_grad.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/clone_grad.h b/oneflow/core/job_completer/clone_grad.h
similarity index 58%
rename from oneflow/core/autograd/clone_grad.h
rename to oneflow/core/job_completer/clone_grad.h
index 4193ed0716afd893078bad9f223b20d986789fc1..4e87e63018ea2a225cd72744ec930339d1f18b1d 100644
--- a/oneflow/core/autograd/clone_grad.h
+++ b/oneflow/core/job_completer/clone_grad.h
@@ -1,7 +1,7 @@
-#ifndef ONEFLOW_CORE_AUTOGRAD_CLONE_GRAD_H_
-#define ONEFLOW_CORE_AUTOGRAD_CLONE_GRAD_H_
+#ifndef ONEFLOW_CORE_JOB_COMPLETER_CLONE_GRAD_H_
+#define ONEFLOW_CORE_JOB_COMPLETER_CLONE_GRAD_H_
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
@@ -11,4 +11,4 @@ void GenerateCloneGradOpIfNeed(
HashMap<LogicalBlobId, LogicalBlobId>* lbi2out_diff_lbi);
}
-#endif // ONEFLOW_CORE_AUTOGRAD_CLONE_GRAD_H_
+#endif // ONEFLOW_CORE_JOB_COMPLETER_CLONE_GRAD_H_
diff --git a/oneflow/core/autograd/conv_grad.cpp b/oneflow/core/job_completer/conv_grad.cpp
similarity index 98%
rename from oneflow/core/autograd/conv_grad.cpp
rename to oneflow/core/job_completer/conv_grad.cpp
index b4b808ffd83d6544c449444a46770e2406452824..45379246f4407ea1435c9f81b083687b29f4d342 100644
--- a/oneflow/core/autograd/conv_grad.cpp
+++ b/oneflow/core/job_completer/conv_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/dropout_grad.cpp b/oneflow/core/job_completer/dropout_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/dropout_grad.cpp
rename to oneflow/core/job_completer/dropout_grad.cpp
index 9d60dcec6021debe8c97e4c2fb175f2100ea5242..f4a0ad5b497f24a3cfa04aa7832f6088bc2ce337 100644
--- a/oneflow/core/autograd/dropout_grad.cpp
+++ b/oneflow/core/job_completer/dropout_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/fully_connected_autovar.cpp b/oneflow/core/job_completer/fully_connected_autovar.cpp
similarity index 96%
rename from oneflow/core/autograd/fully_connected_autovar.cpp
rename to oneflow/core/job_completer/fully_connected_autovar.cpp
index 7f39fa986b01c06b095848ebae7e8375a13c53af..12c93dccea888c7cb90e7489361523b04f363353 100644
--- a/oneflow/core/autograd/fully_connected_autovar.cpp
+++ b/oneflow/core/job_completer/fully_connected_autovar.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autovar.h"
+#include "oneflow/core/job_completer/autovar.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/fully_connected_grad.cpp b/oneflow/core/job_completer/fully_connected_grad.cpp
similarity index 97%
rename from oneflow/core/autograd/fully_connected_grad.cpp
rename to oneflow/core/job_completer/fully_connected_grad.cpp
index 4d1a0e687df2a7e530e11bc35ea4724af66c4e30..14adb750d9474de3555dce8f9924fc56ffa12939 100644
--- a/oneflow/core/autograd/fully_connected_grad.cpp
+++ b/oneflow/core/job_completer/fully_connected_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/gather_grad.cpp b/oneflow/core/job_completer/gather_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/gather_grad.cpp
rename to oneflow/core/job_completer/gather_grad.cpp
index 08dc293e6ce3f3980a8422e7016e157a4d9e375a..f7644c3fdffdb03953885b5b57fbaf41e4cbb986 100644
--- a/oneflow/core/autograd/gather_grad.cpp
+++ b/oneflow/core/job_completer/gather_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/gelu_grad.cpp b/oneflow/core/job_completer/gelu_grad.cpp
similarity index 94%
rename from oneflow/core/autograd/gelu_grad.cpp
rename to oneflow/core/job_completer/gelu_grad.cpp
index b728423fcff5d794cf4bd7f07e69e626fa9f97ca..c5aff545b397f0decbcbdddc3040c6f80d882d7f 100644
--- a/oneflow/core/autograd/gelu_grad.cpp
+++ b/oneflow/core/job_completer/gelu_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/identity_loss_grad.cpp b/oneflow/core/job_completer/identity_loss_grad.cpp
similarity index 90%
rename from oneflow/core/autograd/identity_loss_grad.cpp
rename to oneflow/core/job_completer/identity_loss_grad.cpp
index 8ae47f74f13797c2524f90e855db36ce8bfd2c21..06c8514469571c5cf5e8615fd42f790092ce60eb 100644
--- a/oneflow/core/autograd/identity_loss_grad.cpp
+++ b/oneflow/core/job_completer/identity_loss_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/identity_loss_grad.h b/oneflow/core/job_completer/identity_loss_grad.h
similarity index 100%
rename from oneflow/core/autograd/identity_loss_grad.h
rename to oneflow/core/job_completer/identity_loss_grad.h
diff --git a/oneflow/core/autograd/job_completer.cpp b/oneflow/core/job_completer/job_completer.cpp
similarity index 89%
rename from oneflow/core/autograd/job_completer.cpp
rename to oneflow/core/job_completer/job_completer.cpp
index 30469f2d6dbc14fc0c8118348ed4854edd5e2b4c..1143d786b8d67c7d5eff6ab8c8661f21401be806 100644
--- a/oneflow/core/autograd/job_completer.cpp
+++ b/oneflow/core/job_completer/job_completer.cpp
@@ -1,7 +1,7 @@
-#include "oneflow/core/autograd/job_completer.h"
-#include "oneflow/core/autograd/autovar.h"
-#include "oneflow/core/autograd/autograd.h"
-#include "oneflow/core/autograd/autotick.h"
+#include "oneflow/core/job_completer/job_completer.h"
+#include "oneflow/core/job_completer/autovar.h"
+#include "oneflow/core/job_completer/autograd.h"
+#include "oneflow/core/job_completer/autotick.h"
#include "oneflow/core/optimizer/optimizer.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/job_completer.h b/oneflow/core/job_completer/job_completer.h
similarity index 100%
rename from oneflow/core/autograd/job_completer.h
rename to oneflow/core/job_completer/job_completer.h
diff --git a/oneflow/core/autograd/layer_norm_autovar.cpp b/oneflow/core/job_completer/layer_norm_autovar.cpp
similarity index 96%
rename from oneflow/core/autograd/layer_norm_autovar.cpp
rename to oneflow/core/job_completer/layer_norm_autovar.cpp
index 112e5cde38b8fc5416e82c4d65f3730522c8e308..a15f9379138fa941bd2cb28a30b1d66ea0a62f3c 100644
--- a/oneflow/core/autograd/layer_norm_autovar.cpp
+++ b/oneflow/core/job_completer/layer_norm_autovar.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autovar.h"
+#include "oneflow/core/job_completer/autovar.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/layer_norm_grad.cpp b/oneflow/core/job_completer/layer_norm_grad.cpp
similarity index 98%
rename from oneflow/core/autograd/layer_norm_grad.cpp
rename to oneflow/core/job_completer/layer_norm_grad.cpp
index 1fc40c52df81003355be6d35274647b1ec0e01a3..1f4a727ddd11fa637e6af520317369a9e90152fb 100644
--- a/oneflow/core/autograd/layer_norm_grad.cpp
+++ b/oneflow/core/job_completer/layer_norm_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/matmul_grad.cpp b/oneflow/core/job_completer/matmul_grad.cpp
similarity index 97%
rename from oneflow/core/autograd/matmul_grad.cpp
rename to oneflow/core/job_completer/matmul_grad.cpp
index 0b3b0461f22831a48a46b3c5d03276719863e6e1..0064ead070c69460b68961bff9a72fc68a35e9ff 100644
--- a/oneflow/core/autograd/matmul_grad.cpp
+++ b/oneflow/core/job_completer/matmul_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/normalization_grad.cpp b/oneflow/core/job_completer/normalization_grad.cpp
similarity index 98%
rename from oneflow/core/autograd/normalization_grad.cpp
rename to oneflow/core/job_completer/normalization_grad.cpp
index 501ef0461cc414d8d12251d7ce801c15b74b38b1..eb32c1b1d05f555101c87f6ee4e63c12d811bd47 100644
--- a/oneflow/core/autograd/normalization_grad.cpp
+++ b/oneflow/core/job_completer/normalization_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/print_scalar_summary_facade.cpp b/oneflow/core/job_completer/print_scalar_summary_facade.cpp
similarity index 98%
rename from oneflow/core/autograd/print_scalar_summary_facade.cpp
rename to oneflow/core/job_completer/print_scalar_summary_facade.cpp
index 4f17fcbff25cbbeffe1cce04465ab5e11a26b98a..342407b4ba1f1fd274bfb362fdb5ddeb7c74e115 100644
--- a/oneflow/core/autograd/print_scalar_summary_facade.cpp
+++ b/oneflow/core/job_completer/print_scalar_summary_facade.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/job_completer.h"
+#include "oneflow/core/job_completer/job_completer.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/reduce_mean_grad.cpp b/oneflow/core/job_completer/reduce_mean_grad.cpp
similarity index 97%
rename from oneflow/core/autograd/reduce_mean_grad.cpp
rename to oneflow/core/job_completer/reduce_mean_grad.cpp
index 28fd4c9a7f3f0f37fadb4ea63744065232603a50..032b5363c886c18a05e78cf02067e80440fdf8c2 100644
--- a/oneflow/core/autograd/reduce_mean_grad.cpp
+++ b/oneflow/core/job_completer/reduce_mean_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/reduce_sum_grad.cpp b/oneflow/core/job_completer/reduce_sum_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/reduce_sum_grad.cpp
rename to oneflow/core/job_completer/reduce_sum_grad.cpp
index 4d4597fbdfb0cc761a1ab29378195bdb4e1813af..3fda3cca9568d2fcfe7ae435db50f503915173d2 100644
--- a/oneflow/core/autograd/reduce_sum_grad.cpp
+++ b/oneflow/core/job_completer/reduce_sum_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/relu_grad.cpp b/oneflow/core/job_completer/relu_grad.cpp
similarity index 94%
rename from oneflow/core/autograd/relu_grad.cpp
rename to oneflow/core/job_completer/relu_grad.cpp
index 10b9cefa30ffffafed2d06d2f0f1abbf1469e23d..dda78dec0e46710d5b58a9acc998cee04f1bc1a9 100644
--- a/oneflow/core/autograd/relu_grad.cpp
+++ b/oneflow/core/job_completer/relu_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/reshape_grad.cpp b/oneflow/core/job_completer/reshape_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/reshape_grad.cpp
rename to oneflow/core/job_completer/reshape_grad.cpp
index f1b29b6aa1aca6d8319a4851aa329effde19a23d..220349e31c30c708c17b931d716e6dbbf34b5ef9 100644
--- a/oneflow/core/autograd/reshape_grad.cpp
+++ b/oneflow/core/job_completer/reshape_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/scalar_add_grad.cpp b/oneflow/core/job_completer/scalar_add_grad.cpp
similarity index 90%
rename from oneflow/core/autograd/scalar_add_grad.cpp
rename to oneflow/core/job_completer/scalar_add_grad.cpp
index 51a2aed2a912a5e22c88eca55e229ef15a6b7941..af2e8389e067b0d108b4b4fedd63c69a8d2a162b 100644
--- a/oneflow/core/autograd/scalar_add_grad.cpp
+++ b/oneflow/core/job_completer/scalar_add_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/scalar_mul_grad.cpp b/oneflow/core/job_completer/scalar_mul_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/scalar_mul_grad.cpp
rename to oneflow/core/job_completer/scalar_mul_grad.cpp
index 6ce1f9f2a6d91ff881766b548f43a54ee824d69a..e50bd877d11e3d4f6b76251e52601b2d28e5c6ae 100644
--- a/oneflow/core/autograd/scalar_mul_grad.cpp
+++ b/oneflow/core/job_completer/scalar_mul_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/slice_grad.cpp b/oneflow/core/job_completer/slice_grad.cpp
similarity index 95%
rename from oneflow/core/autograd/slice_grad.cpp
rename to oneflow/core/job_completer/slice_grad.cpp
index 90e02c3ffa1abb6aa4b974ab452d8968b0833263..554c1bd26bb1d8c42d9c728379a801fd783485de 100644
--- a/oneflow/core/autograd/slice_grad.cpp
+++ b/oneflow/core/job_completer/slice_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/softmax_grad.cpp b/oneflow/core/job_completer/softmax_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/softmax_grad.cpp
rename to oneflow/core/job_completer/softmax_grad.cpp
index d31e1a050e1bdceb5e5925e2ad5f76c6d0b38a58..63f3d573a3fa513c6bf6174953135af590bc1bff 100644
--- a/oneflow/core/autograd/softmax_grad.cpp
+++ b/oneflow/core/job_completer/softmax_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/sparse_cross_entropy_grad.cpp b/oneflow/core/job_completer/sparse_cross_entropy_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/sparse_cross_entropy_grad.cpp
rename to oneflow/core/job_completer/sparse_cross_entropy_grad.cpp
index 1a61a4c0a4b8e6ad46ed0fe92f0727f64a3aa080..5f95db5c7ed05b53665a72268dece67f70529d82 100644
--- a/oneflow/core/autograd/sparse_cross_entropy_grad.cpp
+++ b/oneflow/core/job_completer/sparse_cross_entropy_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/transpose_grad.cpp b/oneflow/core/job_completer/transpose_grad.cpp
similarity index 96%
rename from oneflow/core/autograd/transpose_grad.cpp
rename to oneflow/core/job_completer/transpose_grad.cpp
index b5e8242cabb7bb12cced0bb9e965ff168322446f..38a9f2c82e3215ec79c52337393f0816fe66a1ec 100644
--- a/oneflow/core/autograd/transpose_grad.cpp
+++ b/oneflow/core/job_completer/transpose_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/autograd/variable_grad.cpp b/oneflow/core/job_completer/variable_grad.cpp
similarity index 87%
rename from oneflow/core/autograd/variable_grad.cpp
rename to oneflow/core/job_completer/variable_grad.cpp
index 63b111ce40afe6d91ed19df8ca5de7f505bf2f68..e3df77bd8515639f7fe32a4cb23c872d4cc6ad76 100644
--- a/oneflow/core/autograd/variable_grad.cpp
+++ b/oneflow/core/job_completer/variable_grad.cpp
@@ -1,4 +1,4 @@
-#include "oneflow/core/autograd/autograd.h"
+#include "oneflow/core/job_completer/autograd.h"
namespace oneflow {
diff --git a/oneflow/core/operator/op_conf.proto b/oneflow/core/operator/op_conf.proto
index e8f06c718b868d91731b9832f3562eb98ba35255..3fb3aeef86ed2130332f3b949c4fe81ddaf59dd3 100644
--- a/oneflow/core/operator/op_conf.proto
+++ b/oneflow/core/operator/op_conf.proto
@@ -1446,3 +1446,10 @@ message OpNameSet {
message OpNameRelations {
map<string, string> src_op_name2dst_op_name = 1;
}
+
+message OpNameGroups {
+ message OpNameGroup {
+ repeated string op_name = 1;
+ }
+ repeated OpNameGroup op_name_group = 2;
+}
diff --git a/oneflow/core/register/logical_blob_id.proto b/oneflow/core/register/logical_blob_id.proto
index 6bc43b56076ff55ac71914a42cda533e65ee2b29..ed9f4eb499dd123b9d246120af1e4008375a510c 100644
--- a/oneflow/core/register/logical_blob_id.proto
+++ b/oneflow/core/register/logical_blob_id.proto
@@ -15,4 +15,11 @@ message LogicalBlobIdPair {
message LogicalBlobIdPairs {
repeated LogicalBlobIdPair pair = 1;
-}
\ No newline at end of file
+}
+
+message LogicalBlobIdGroups {
+ message LogicalBlobIdGroup {
+ repeated LogicalBlobId lbi = 1;
+ }
+ repeated LogicalBlobIdGroup lbi_group = 2;
+}