Skip to content

Commit 98a5efc

Browse files
andylytensorflower-gardener
authored andcommitted
Introduce new resource type to model TPU program ops.
Annotate tf.LoadTPUEmbedding* ops with this new resource type. This resource type will later be used to determine predecessors and successors of such TPU ops in relation to resource variable and unknown side effecting ops. PiperOrigin-RevId: 345115131 Change-Id: Id94060d4de014236805efd75c8944a2704aadfad
1 parent f292782 commit 98a5efc

File tree

3 files changed

+29
-20
lines changed

3 files changed

+29
-20
lines changed

tensorflow/compiler/mlir/tensorflow/ir/tf_generated_ops.td

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5701,7 +5701,7 @@ idx ==> [1, 3, 5]
57015701
TF_DerivedResultTypeAttr out_idx = TF_DerivedResultTypeAttr<1>;
57025702
}
57035703

5704-
def TF_LoadTPUEmbeddingADAMParametersOp : TF_Op<"LoadTPUEmbeddingADAMParameters", []> {
5704+
def TF_LoadTPUEmbeddingADAMParametersOp : TF_Op<"LoadTPUEmbeddingADAMParameters", [TF_TPUEmbeddingSideEffect]> {
57055705
let summary = "Load ADAM embedding parameters.";
57065706

57075707
let description = [{
@@ -5727,7 +5727,7 @@ executed.
57275727
let results = (outs);
57285728
}
57295729

5730-
def TF_LoadTPUEmbeddingADAMParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingADAMParametersGradAccumDebug", []> {
5730+
def TF_LoadTPUEmbeddingADAMParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingADAMParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
57315731
let summary = "Load ADAM embedding parameters with debug support.";
57325732

57335733
let description = [{
@@ -5754,7 +5754,7 @@ executed.
57545754
let results = (outs);
57555755
}
57565756

5757-
def TF_LoadTPUEmbeddingAdadeltaParametersOp : TF_Op<"LoadTPUEmbeddingAdadeltaParameters", []> {
5757+
def TF_LoadTPUEmbeddingAdadeltaParametersOp : TF_Op<"LoadTPUEmbeddingAdadeltaParameters", [TF_TPUEmbeddingSideEffect]> {
57585758
let summary = "Load Adadelta embedding parameters.";
57595759

57605760
let description = [{
@@ -5780,7 +5780,7 @@ executed.
57805780
let results = (outs);
57815781
}
57825782

5783-
def TF_LoadTPUEmbeddingAdadeltaParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingAdadeltaParametersGradAccumDebug", []> {
5783+
def TF_LoadTPUEmbeddingAdadeltaParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingAdadeltaParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
57845784
let summary = "Load Adadelta parameters with debug support.";
57855785

57865786
let description = [{
@@ -5807,7 +5807,7 @@ executed.
58075807
let results = (outs);
58085808
}
58095809

5810-
def TF_LoadTPUEmbeddingAdagradParametersOp : TF_Op<"LoadTPUEmbeddingAdagradParameters", []> {
5810+
def TF_LoadTPUEmbeddingAdagradParametersOp : TF_Op<"LoadTPUEmbeddingAdagradParameters", [TF_TPUEmbeddingSideEffect]> {
58115811
let summary = "Load Adagrad embedding parameters.";
58125812

58135813
let description = [{
@@ -5832,7 +5832,7 @@ executed.
58325832
let results = (outs);
58335833
}
58345834

5835-
def TF_LoadTPUEmbeddingAdagradParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingAdagradParametersGradAccumDebug", []> {
5835+
def TF_LoadTPUEmbeddingAdagradParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingAdagradParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
58365836
let summary = "Load Adagrad embedding parameters with debug support.";
58375837

58385838
let description = [{
@@ -5858,7 +5858,7 @@ executed.
58585858
let results = (outs);
58595859
}
58605860

5861-
def TF_LoadTPUEmbeddingCenteredRMSPropParametersOp : TF_Op<"LoadTPUEmbeddingCenteredRMSPropParameters", []> {
5861+
def TF_LoadTPUEmbeddingCenteredRMSPropParametersOp : TF_Op<"LoadTPUEmbeddingCenteredRMSPropParameters", [TF_TPUEmbeddingSideEffect]> {
58625862
let summary = "Load centered RMSProp embedding parameters.";
58635863

58645864
let description = [{
@@ -5885,7 +5885,7 @@ executed.
58855885
let results = (outs);
58865886
}
58875887

5888-
def TF_LoadTPUEmbeddingFTRLParametersOp : TF_Op<"LoadTPUEmbeddingFTRLParameters", []> {
5888+
def TF_LoadTPUEmbeddingFTRLParametersOp : TF_Op<"LoadTPUEmbeddingFTRLParameters", [TF_TPUEmbeddingSideEffect]> {
58895889
let summary = "Load FTRL embedding parameters.";
58905890

58915891
let description = [{
@@ -5911,7 +5911,7 @@ executed.
59115911
let results = (outs);
59125912
}
59135913

5914-
def TF_LoadTPUEmbeddingFTRLParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingFTRLParametersGradAccumDebug", []> {
5914+
def TF_LoadTPUEmbeddingFTRLParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingFTRLParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
59155915
let summary = "Load FTRL embedding parameters with debug support.";
59165916

59175917
let description = [{
@@ -5938,7 +5938,7 @@ executed.
59385938
let results = (outs);
59395939
}
59405940

5941-
def TF_LoadTPUEmbeddingMDLAdagradLightParametersOp : TF_Op<"LoadTPUEmbeddingMDLAdagradLightParameters", []> {
5941+
def TF_LoadTPUEmbeddingMDLAdagradLightParametersOp : TF_Op<"LoadTPUEmbeddingMDLAdagradLightParameters", [TF_TPUEmbeddingSideEffect]> {
59425942
let summary = "Load MDL Adagrad Light embedding parameters.";
59435943

59445944
let description = [{
@@ -5965,7 +5965,7 @@ executed.
59655965
let results = (outs);
59665966
}
59675967

5968-
def TF_LoadTPUEmbeddingMomentumParametersOp : TF_Op<"LoadTPUEmbeddingMomentumParameters", []> {
5968+
def TF_LoadTPUEmbeddingMomentumParametersOp : TF_Op<"LoadTPUEmbeddingMomentumParameters", [TF_TPUEmbeddingSideEffect]> {
59695969
let summary = "Load Momentum embedding parameters.";
59705970

59715971
let description = [{
@@ -5990,7 +5990,7 @@ executed.
59905990
let results = (outs);
59915991
}
59925992

5993-
def TF_LoadTPUEmbeddingMomentumParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingMomentumParametersGradAccumDebug", []> {
5993+
def TF_LoadTPUEmbeddingMomentumParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingMomentumParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
59945994
let summary = "Load Momentum embedding parameters with debug support.";
59955995

59965996
let description = [{
@@ -6016,7 +6016,7 @@ executed.
60166016
let results = (outs);
60176017
}
60186018

6019-
def TF_LoadTPUEmbeddingProximalAdagradParametersOp : TF_Op<"LoadTPUEmbeddingProximalAdagradParameters", []> {
6019+
def TF_LoadTPUEmbeddingProximalAdagradParametersOp : TF_Op<"LoadTPUEmbeddingProximalAdagradParameters", [TF_TPUEmbeddingSideEffect]> {
60206020
let summary = "Load proximal Adagrad embedding parameters.";
60216021

60226022
let description = [{
@@ -6041,7 +6041,7 @@ executed.
60416041
let results = (outs);
60426042
}
60436043

6044-
def TF_LoadTPUEmbeddingProximalAdagradParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug", []> {
6044+
def TF_LoadTPUEmbeddingProximalAdagradParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
60456045
let summary = [{
60466046
Load proximal Adagrad embedding parameters with debug support.
60476047
}];
@@ -6069,7 +6069,7 @@ executed.
60696069
let results = (outs);
60706070
}
60716071

6072-
def TF_LoadTPUEmbeddingProximalYogiParametersOp : TF_Op<"LoadTPUEmbeddingProximalYogiParameters", []> {
6072+
def TF_LoadTPUEmbeddingProximalYogiParametersOp : TF_Op<"LoadTPUEmbeddingProximalYogiParameters", [TF_TPUEmbeddingSideEffect]> {
60736073
let summary = "";
60746074

60756075
let arguments = (ins
@@ -6087,7 +6087,7 @@ def TF_LoadTPUEmbeddingProximalYogiParametersOp : TF_Op<"LoadTPUEmbeddingProxima
60876087
let results = (outs);
60886088
}
60896089

6090-
def TF_LoadTPUEmbeddingProximalYogiParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingProximalYogiParametersGradAccumDebug", []> {
6090+
def TF_LoadTPUEmbeddingProximalYogiParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingProximalYogiParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
60916091
let summary = "";
60926092

60936093
let arguments = (ins
@@ -6106,7 +6106,7 @@ def TF_LoadTPUEmbeddingProximalYogiParametersGradAccumDebugOp : TF_Op<"LoadTPUEm
61066106
let results = (outs);
61076107
}
61086108

6109-
def TF_LoadTPUEmbeddingRMSPropParametersOp : TF_Op<"LoadTPUEmbeddingRMSPropParameters", []> {
6109+
def TF_LoadTPUEmbeddingRMSPropParametersOp : TF_Op<"LoadTPUEmbeddingRMSPropParameters", [TF_TPUEmbeddingSideEffect]> {
61106110
let summary = "Load RMSProp embedding parameters.";
61116111

61126112
let description = [{
@@ -6132,7 +6132,7 @@ executed.
61326132
let results = (outs);
61336133
}
61346134

6135-
def TF_LoadTPUEmbeddingRMSPropParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingRMSPropParametersGradAccumDebug", []> {
6135+
def TF_LoadTPUEmbeddingRMSPropParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingRMSPropParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
61366136
let summary = "Load RMSProp embedding parameters with debug support.";
61376137

61386138
let description = [{
@@ -6159,7 +6159,7 @@ executed.
61596159
let results = (outs);
61606160
}
61616161

6162-
def TF_LoadTPUEmbeddingStochasticGradientDescentParametersOp : TF_Op<"LoadTPUEmbeddingStochasticGradientDescentParameters", []> {
6162+
def TF_LoadTPUEmbeddingStochasticGradientDescentParametersOp : TF_Op<"LoadTPUEmbeddingStochasticGradientDescentParameters", [TF_TPUEmbeddingSideEffect]> {
61636163
let summary = "Load SGD embedding parameters.";
61646164

61656165
let description = [{
@@ -6183,7 +6183,7 @@ executed.
61836183
let results = (outs);
61846184
}
61856185

6186-
def TF_LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug", []> {
6186+
def TF_LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebugOp : TF_Op<"LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug", [TF_TPUEmbeddingSideEffect]> {
61876187
let summary = "Load SGD embedding parameters.";
61886188

61896189
let description = [{

tensorflow/compiler/mlir/tensorflow/ir/tf_op_base.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def TF_LookupTableResource : TF_ResourceBase<"LookupTable">;
140140
def TF_DatasetSeedGeneratorResource : TF_ResourceBase<"DatasetSeedGenerator">;
141141
def TF_DatasetMemoryCacheResource : TF_ResourceBase<"DatasetMemoryCache">;
142142
def TF_DatasetIteratorResource : TF_ResourceBase<"DatasetIterator">;
143+
def TF_TPUEmbeddingResource : TF_ResourceBase<"TPUEmbedding">;
143144

144145
def TF_VariableRead : MemRead<TF_VariableResource>;
145146
def TF_StackRead : MemRead<TF_StackResource>;
@@ -174,6 +175,8 @@ def TF_DatasetSeedGeneratorFree : MemFree<TF_DatasetSeedGeneratorResource>;
174175
def TF_DatasetMemoryCacheFree : MemFree<TF_DatasetMemoryCacheResource>;
175176
def TF_DatasetIteratorFree : MemFree<TF_DatasetIteratorResource>;
176177

178+
def TF_TPUEmbeddingSideEffect : MemoryEffects<[MemWrite<TF_TPUEmbeddingResource>]>;
179+
177180
//===----------------------------------------------------------------------===//
178181
// TensorFlow op definitions
179182
//===----------------------------------------------------------------------===//

tensorflow/compiler/mlir/tensorflow/ir/tf_side_effects.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ struct DatasetIterator : ::mlir::SideEffects::Resource::Base<DatasetIterator> {
5757
StringRef getName() final { return "DatasetIterator"; }
5858
};
5959

60+
// Special resource type to track TPU Embedding specific ops, which must execute
61+
// but do not have side effects with one another or with resource variable ops.
62+
struct TPUEmbedding : ::mlir::SideEffects::Resource::Base<TPUEmbedding> {
63+
StringRef getName() final { return "TPUEmbedding"; }
64+
};
65+
6066
} // namespace ResourceEffects
6167
} // namespace TF
6268
} // namespace mlir

0 commit comments

Comments
 (0)