@@ -46,7 +46,7 @@ TEST_F(AliasAnalysisTest, View_SymbolicTensor) {
4646
4747 optimization::AliasAnalysisResult alias_analysis =
4848 optimization::findAliases (&fusion);
49- EXPECT_EQ (alias_analysis.findRoot (out), in);
49+ EXPECT_EQ (alias_analysis.getRoot (out), in);
5050}
5151
5252TEST_F (AliasAnalysisTest, ChainOfViews) {
@@ -65,7 +65,7 @@ TEST_F(AliasAnalysisTest, ChainOfViews) {
6565
6666 optimization::AliasAnalysisResult alias_analysis =
6767 optimization::findAliases (&fusion);
68- EXPECT_EQ (alias_analysis.findRoot (out), in);
68+ EXPECT_EQ (alias_analysis.getRoot (out), in);
6969}
7070
7171TEST_F (AliasAnalysisTest, View_Contiguous) {
@@ -82,7 +82,7 @@ TEST_F(AliasAnalysisTest, View_Contiguous) {
8282
8383 optimization::AliasAnalysisResult alias_analysis =
8484 optimization::findAliases (&fusion);
85- EXPECT_EQ (alias_analysis.findRoot (out), in);
85+ EXPECT_EQ (alias_analysis.getRoot (out), in);
8686 optimization::Layout preferred_layout = alias_analysis.preferredLayout (out);
8787 EXPECT_THAT (
8888 preferred_layout.allocation_domain ,
@@ -108,7 +108,7 @@ TEST_F(AliasAnalysisTest, View_MergeNonContiguous) {
108108
109109 optimization::AliasAnalysisResult alias_analysis =
110110 optimization::findAliases (&fusion);
111- EXPECT_EQ (alias_analysis.findRoot (out), out );
111+ EXPECT_EQ (alias_analysis.getRoot (out), nullptr );
112112}
113113
114114TEST_F (AliasAnalysisTest, Set) {
@@ -124,7 +124,7 @@ TEST_F(AliasAnalysisTest, Set) {
124124
125125 optimization::AliasAnalysisResult alias_analysis =
126126 optimization::findAliases (&fusion);
127- EXPECT_EQ (alias_analysis.findRoot (out), in);
127+ EXPECT_EQ (alias_analysis.getRoot (out), in);
128128
129129 const std::vector<IterDomain*>& out_rfactor = out->getMaybeRFactorDomain ();
130130 EXPECT_THAT (
@@ -145,7 +145,7 @@ TEST_F(AliasAnalysisTest, Permute) {
145145
146146 optimization::AliasAnalysisResult alias_analysis =
147147 optimization::findAliases (&fusion);
148- EXPECT_EQ (alias_analysis.findRoot (out), in);
148+ EXPECT_EQ (alias_analysis.getRoot (out), in);
149149
150150 const std::vector<IterDomain*>& out_rfactor = out->getMaybeRFactorDomain ();
151151 EXPECT_THAT (
@@ -157,47 +157,49 @@ TEST_F(AliasAnalysisTest, View_SplitExpandedBroadcast) {
157157 Fusion fusion;
158158 FusionGuard fg (&fusion);
159159
160- TensorView* in = makeContigConcreteTensor ({4 , 5 });
160+ TensorView* in = TensorViewBuilder ()
161+ .ndims (3 )
162+ .dtype (DataType::Float)
163+ .contiguity ({true , true , std::nullopt })
164+ .shape ({4 , 5 , 6 })
165+ .expanded ({false , false , true })
166+ .build ();
161167 fusion.addInput (in);
162- TensorView* broadcast_out = broadcast (in, {false , false , true });
163- TensorView* expand_out = expand (
164- broadcast_out,
165- {IrBuilder::create<Val>(4 ),
166- IrBuilder::create<Val>(5 ),
167- IrBuilder::create<Val>(6 )});
168168 // tryStaticReshape used to fail to get the expanded extent, which is 6.
169- TensorView* out = reshape (
170- expand_out, {IrBuilder::create<Val>(40 ), IrBuilder::create<Val>(3 )});
169+ // Therefore, we use the `vector<Val*>` version of `reshape` as a regression
170+ // test.
171+ TensorView* out =
172+ reshape (in, {IrBuilder::create<Val>(40 ), IrBuilder::create<Val>(3 )});
171173 fusion.addOutput (out);
172174
173175 optimization::AliasAnalysisResult alias_analysis =
174176 optimization::findAliases (&fusion);
175- EXPECT_EQ (alias_analysis.findRoot (out), out );
177+ EXPECT_EQ (alias_analysis.getRoot (out), nullptr );
176178}
177179
178180TEST_F (AliasAnalysisTest, View_ForwardExpandedBroadcast) {
179181 Fusion fusion;
180182 FusionGuard fg (&fusion);
181183
182- TensorView* in = makeContigConcreteTensor ({4 , 5 });
184+ TensorView* in = TensorViewBuilder ()
185+ .ndims (3 )
186+ .dtype (DataType::Float)
187+ .contiguity ({true , true , std::nullopt })
188+ .shape ({4 , 5 , 6 })
189+ .expanded ({false , false , true })
190+ .build ();
183191 fusion.addInput (in);
184- TensorView* broadcast_out = broadcast (in, {false , false , true });
185- TensorView* expand_out = expand (
186- broadcast_out,
187- {IrBuilder::create<Val>(4 ),
188- IrBuilder::create<Val>(5 ),
189- IrBuilder::create<Val>(6 )});
190- TensorView* out = reshape (expand_out, {4 , 5 , 6 }, {20 , -1 });
192+ TensorView* out = reshape (in, {4 , 5 , 6 }, {20 , -1 });
191193 fusion.addOutput (out);
192194
193195 optimization::AliasAnalysisResult alias_analysis =
194196 optimization::findAliases (&fusion);
195- EXPECT_EQ (alias_analysis.findRoot (out), expand_out );
197+ EXPECT_EQ (alias_analysis.getRoot (out), in );
196198
197199 // Verify the last dimension isn't expanded physically.
198200 FusionExecutor fe;
199201 at::Tensor in_tensor =
200- at::randn ({4 , 5 }, at::dtype (at:: kFloat ). device (at:: kCUDA , 0 ) );
202+ at::randn ({4 , 5 }). cuda (). as_strided ({ 4 , 5 , 6 }, { 5 , 1 , 0 } );
201203 fe.compileFusion (&fusion, {in_tensor});
202204 at::Tensor out_tensor = fe.runFusion ({in_tensor})[0 ];
203205
@@ -208,20 +210,20 @@ TEST_F(AliasAnalysisTest, View_MergeExpandedBroadcast) {
208210 Fusion fusion;
209211 FusionGuard fg (&fusion);
210212
211- TensorView* in = makeContigConcreteTensor ({4 , 5 });
213+ TensorView* in = TensorViewBuilder ()
214+ .ndims (3 )
215+ .dtype (DataType::Float)
216+ .contiguity ({true , true , std::nullopt })
217+ .shape ({4 , 5 , 6 })
218+ .expanded ({false , false , true })
219+ .build ();
212220 fusion.addInput (in);
213- TensorView* broadcast_out = broadcast (in, {false , false , true });
214- TensorView* expand_out = expand (
215- broadcast_out,
216- {IrBuilder::create<Val>(4 ),
217- IrBuilder::create<Val>(5 ),
218- IrBuilder::create<Val>(6 )});
219- TensorView* out = reshape (expand_out, {4 , 5 , 6 }, {4 , -1 });
221+ TensorView* out = reshape (in, {4 , 5 , 6 }, {4 , -1 });
220222 fusion.addOutput (out);
221223
222224 optimization::AliasAnalysisResult alias_analysis =
223225 optimization::findAliases (&fusion);
224- EXPECT_EQ (alias_analysis.findRoot (out), out );
226+ EXPECT_EQ (alias_analysis.getRoot (out), nullptr );
225227}
226228
227229TEST_F (AliasAnalysisTest, TrivialSlice) {
@@ -236,7 +238,7 @@ TEST_F(AliasAnalysisTest, TrivialSlice) {
236238
237239 optimization::AliasAnalysisResult alias_analysis =
238240 optimization::findAliases (&fusion);
239- EXPECT_EQ (alias_analysis.findRoot (out), in);
241+ EXPECT_EQ (alias_analysis.getRoot (out), in);
240242}
241243
242244TEST_F (AliasAnalysisTest, MergeTriviallySlicedDimensions) {
@@ -251,7 +253,7 @@ TEST_F(AliasAnalysisTest, MergeTriviallySlicedDimensions) {
251253
252254 optimization::AliasAnalysisResult alias_analysis =
253255 optimization::findAliases (&fusion);
254- EXPECT_EQ (alias_analysis.findRoot (out), in);
256+ EXPECT_EQ (alias_analysis.getRoot (out), in);
255257}
256258
257259TEST_F (AliasAnalysisTest, MergeSlicedDimensions) {
@@ -266,8 +268,7 @@ TEST_F(AliasAnalysisTest, MergeSlicedDimensions) {
266268
267269 optimization::AliasAnalysisResult alias_analysis =
268270 optimization::findAliases (&fusion);
269- EXPECT_EQ (alias_analysis.findRoot (out), out);
270- EXPECT_EQ (alias_analysis.findRoot (slice_out), in);
271+ EXPECT_EQ (alias_analysis.getRoot (out), nullptr );
271272}
272273
273274using AliasTest = NVFuserTest;
0 commit comments