@@ -670,6 +670,126 @@ TEST(Converters, ATenRepeatInterleave3dScalarNoDimConvertsCorrectlyWithDynamicIn
670
670
ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt, 2e-6 ));
671
671
}
672
672
673
+ TEST (Converters, ATenTileConvertsCorrectly) {
674
+ const auto graph = R"IR(
675
+ graph(%x.1 : Tensor):
676
+ %2 : int[] = prim::Constant[value=[4, 1]]()
677
+ %3 : Tensor = aten::tile(%x.1, %2)
678
+ return (%3))IR" ;
679
+
680
+ auto g = std::make_shared<torch::jit::Graph>();
681
+
682
+ torch::jit::parseIR (graph, g.get ());
683
+
684
+ auto in = at::randint (1 , 10 , {1 , 3 }, {at::kCUDA });
685
+
686
+ auto jit_in = at::clone (in);
687
+ auto params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
688
+ auto jit_results = torch_tensorrt::tests::util::RunGraph (g, params, {jit_in});
689
+
690
+ auto trt_in = at::clone (jit_in);
691
+ params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
692
+ auto trt_results = torch_tensorrt::tests::util::RunGraphEngine (g, params, {trt_in});
693
+
694
+ ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt_results[0 ], 2e-6 ));
695
+ }
696
+
697
+ TEST (Converters, ATenTileRepeatRankConvertsCorrectly) {
698
+ const auto graph = R"IR(
699
+ graph(%x.1 : Tensor):
700
+ %2 : int[] = prim::Constant[value=[4, 1, 2]]()
701
+ %3 : Tensor = aten::tile(%x.1, %2)
702
+ return (%3))IR" ;
703
+
704
+ auto g = std::make_shared<torch::jit::Graph>();
705
+
706
+ torch::jit::parseIR (graph, g.get ());
707
+
708
+ auto in = at::randint (1 , 10 , {1 , 3 }, {at::kCUDA });
709
+
710
+ auto jit_in = at::clone (in);
711
+ auto params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
712
+ auto jit_results = torch_tensorrt::tests::util::RunGraph (g, params, {jit_in});
713
+
714
+ auto trt_in = at::clone (jit_in);
715
+ params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
716
+ auto trt_results = torch_tensorrt::tests::util::RunGraphEngine (g, params, {trt_in});
717
+
718
+ ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt_results[0 ], 2e-6 ));
719
+ }
720
+
721
+ TEST (Converters, ATenTileConvertsCorrectlyWithDynamicInput) {
722
+ const auto graph = R"IR(
723
+ graph(%x.1 : Tensor):
724
+ %2 : int[] = prim::Constant[value=[4, 1]]()
725
+ %3 : Tensor = aten::tile(%x.1, %2)
726
+ return (%3))IR" ;
727
+
728
+ auto g = std::make_shared<torch::jit::Graph>();
729
+
730
+ torch::jit::parseIR (graph, g.get ());
731
+
732
+ auto in = at::randint (1 , 10 , {1 , 3 }, {at::kCUDA });
733
+
734
+ auto jit_in = at::clone (in);
735
+ auto params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
736
+ auto jit_results = torch_tensorrt::tests::util::RunGraph (g, params, {jit_in});
737
+
738
+ auto trt_in = at::clone (jit_in);
739
+ params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
740
+ auto trt_results = torch_tensorrt::tests::util::RunGraphEngineDynamic (g, params, {trt_in});
741
+
742
+ ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt_results[0 ], 2e-6 ));
743
+ }
744
+
745
+ TEST (Converters, ATenTile3dConvertsCorrectly) {
746
+ const auto graph = R"IR(
747
+ graph(%x.1 : Tensor):
748
+ %2 : int[] = prim::Constant[value=[2, 2, 2]]()
749
+ %3 : Tensor = aten::tile(%x.1, %2)
750
+ return (%3))IR" ;
751
+
752
+ auto g = std::make_shared<torch::jit::Graph>();
753
+
754
+ torch::jit::parseIR (graph, g.get ());
755
+
756
+ auto in = at::randint (1 , 10 , {2 , 3 , 2 }, {at::kCUDA });
757
+
758
+ auto jit_in = at::clone (in);
759
+ auto params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
760
+ auto jit_results = torch_tensorrt::tests::util::RunGraph (g, params, {jit_in});
761
+
762
+ auto trt_in = at::clone (jit_in);
763
+ params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
764
+ auto trt_results = torch_tensorrt::tests::util::RunGraphEngine (g, params, {trt_in});
765
+
766
+ ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt_results[0 ], 2e-6 ));
767
+ }
768
+
769
+ TEST (Converters, ATenTile3dConvertsCorrectlyWithDynamicInput) {
770
+ const auto graph = R"IR(
771
+ graph(%x.1 : Tensor):
772
+ %2 : int[] = prim::Constant[value=[2, 2, 2]]()
773
+ %3 : Tensor = aten::tile(%x.1, %2)
774
+ return (%3))IR" ;
775
+
776
+ auto g = std::make_shared<torch::jit::Graph>();
777
+
778
+ torch::jit::parseIR (graph, g.get ());
779
+
780
+ auto in = at::randint (1 , 10 , {2 , 3 , 2 }, {at::kCUDA });
781
+
782
+ auto jit_in = at::clone (in);
783
+ auto params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
784
+ auto jit_results = torch_tensorrt::tests::util::RunGraph (g, params, {jit_in});
785
+
786
+ auto trt_in = at::clone (jit_in);
787
+ params = torch_tensorrt::core::ir::get_static_params (g->inputs (), {});
788
+ auto trt_results = torch_tensorrt::tests::util::RunGraphEngineDynamic (g, params, {trt_in});
789
+
790
+ ASSERT_TRUE (torch_tensorrt::tests::util::almostEqual (jit_results[0 ], trt_results[0 ], 2e-6 ));
791
+ }
792
+
673
793
TEST (Converters, ATenMeshGridConvertsCorrectly) {
674
794
const auto graph = R"IR(
675
795
graph(%x : Tensor, %y : Tensor, %z : Tensor):
0 commit comments