已合并
test update ut #37734
huangyunlong创建于 6月5日
test update ut #37734
已合并
huangyunlong创建于 6月5日
7 个文件变更+36-22
Mtest/custom_ops/test_float_status.py+6-1
@@ -1,3 +1,4 @@
1+import os
1import unittest2import unittest
2import torch3import torch
3import torch_npu4import torch_npu
@@ -5,9 +6,13 @@ import torch_npu
5from torch_npu.testing.testcase import TestCase, run_tests6from torch_npu.testing.testcase import TestCase, run_tests
6 7 
7 8 
9+# for A2/A3
10+os.environ["INF_NAN_MODE_FORCE_DISABLE"] = "1"
11+os.environ["INF_NAN_MODE_ENABLE"] = "1"
12+ 
13+ 
8class TestFloatStatus(TestCase):14class TestFloatStatus(TestCase):
9 15 
10- @unittest.skip("Temporarily skipping")
11 def test_float_status(self, device="npu"):16 def test_float_status(self, device="npu"):
12 float_tensor = torch.tensor([40000.0], dtype=torch.float16).npu()17 float_tensor = torch.tensor([40000.0], dtype=torch.float16).npu()
13 float_tensor = float_tensor + float_tensor18 float_tensor = float_tensor + float_tensor
Mtest/nn/test_init.py+5-1
@@ -441,7 +441,11 @@ class TestNNInit(TestCase):
441 def fn():441 def fn():
442 init.normal(x)442 init.normal(x)
443 443 
444- with self.assertWarnsRegex(UserWarning, 'deprecated', msg='methods not suffixed with underscore should be deprecated'):444+ with self.assertWarnsRegex(
445+ FutureWarning,
446+ "deprecated",
447+ msg="methods not suffixed with underscore should be deprecated",
448+ ):
445 fn()449 fn()
446 450 
447 451 
Mtest/optim/test_lrscheduler.py+4-4
@@ -10,7 +10,7 @@ import torch_npu
10import torch_npu.testing10import torch_npu.testing
11import torch.nn.functional as F11import torch.nn.functional as F
12from torch.nn import Parameter12from torch.nn import Parameter
13-from torch.optim import Adam, SGD13+from torch.optim import Adam, Rprop, SGD
14from torch.optim.lr_scheduler import (14from torch.optim.lr_scheduler import (
15 LambdaLR,15 LambdaLR,
16 MultiplicativeLR,16 MultiplicativeLR,
@@ -1503,9 +1503,9 @@ class TestLRScheduler(TestCase):
1503 self.opt = old_opt # set optimizer back to SGD1503 self.opt = old_opt # set optimizer back to SGD
1504 1504 
1505 def test_cycle_lr_cycle_momentum_fail_with_momentumless_optimizer(self):1505 def test_cycle_lr_cycle_momentum_fail_with_momentumless_optimizer(self):
1506- with self.assertRaises(ValueError):1506+ with self.assertRaises(ValueError):
1507- adam_opt = Adam(self.net.parameters())1507+ rprop_opt = Rprop(self.net.parameters())
1508- scheduler = CyclicLR(adam_opt, base_lr=1, max_lr=5, cycle_momentum=True)1508+ scheduler = CyclicLR(rprop_opt, base_lr=1, max_lr=5, cycle_momentum=True)
1509 1509 
1510 def test_cycle_lr_removed_after_out_of_scope(self):1510 def test_cycle_lr_removed_after_out_of_scope(self):
1511 import gc1511 import gc
Mtest/test_flop_counter.py+5-6
@@ -338,14 +338,13 @@ class TestFlopCounter(TestCase):
338 model = torch.nn.Linear(100, 100)338 model = torch.nn.Linear(100, 100)
339 x = torch.randn(3, 100)339 x = torch.randn(3, 100)
340 340 
341- flop_counter = FlopCounterMode(model)341+ with FlopCounterMode() as mode:
342- with flop_counter:342+ self.assertEqual(len(torch.nn.modules.module._global_forward_pre_hooks), 1)
343- self.assertEqual(len(model._forward_pre_hooks), 1)343+ self.assertEqual(len(torch.nn.modules.module._global_forward_hooks), 1)
344- self.assertEqual(len(model._forward_hooks), 1)
345 model(x).sum().backward()344 model(x).sum().backward()
346 345 
347- self.assertEqual(len(model._forward_pre_hooks), 0)346+ self.assertEqual(len(torch.nn.modules.module._global_forward_pre_hooks), 0)
348- self.assertEqual(len(model._forward_hooks), 0)347+ self.assertEqual(len(torch.nn.modules.module._global_forward_hooks), 0)
349 348 
350 def test_pytrees(self):349 def test_pytrees(self):
351 class Foo(torch.nn.Module):350 class Foo(torch.nn.Module):
Mtest/trans_contiguous/test_single_reshape_copy_to_contiguous.py+8-5
@@ -11,6 +11,12 @@ os.environ["COMBINED_ENABLE"] = "1" # Open combined-view cases optimization
11 11 
12# Optimized view Ops contains Transpose, permute, narrow, strideslice, select, unfold12# Optimized view Ops contains Transpose, permute, narrow, strideslice, select, unfold
13 13 
14+# The test case is a continuous optimization test case for aclop
15+# By default, we will use aclnn in the following steps. To ensure the test case passes, we have added the path to aclnn
16+# If the primary function is to maintain the original functionality, you can configure jit_compile and internal formats
17+# torch_npu.npu.set_compile_mode(jit_compile=True)
18+# torch.npu.config.allow_internal_format = True
19+ 
14 20 
15class SingleViewCopyToContiguous(TestCase):21class SingleViewCopyToContiguous(TestCase):
16 def test_view_copy(self, device="npu"):22 def test_view_copy(self, device="npu"):
@@ -173,7 +179,6 @@ class SingleViewCopyToContiguous(TestCase):
173 cpu_out2 = cpu_input[1:10, :, :].clone()179 cpu_out2 = cpu_input[1:10, :, :].clone()
174 self.assertRtolEqual(npu_out2.to("cpu").numpy(), cpu_out2.numpy())180 self.assertRtolEqual(npu_out2.to("cpu").numpy(), cpu_out2.numpy())
175 181 
176- @unittest.skip("Temporarily skipping")
177 def test_select_at_first_axis_to_single_element_tensor_copy(self, device="npu"):182 def test_select_at_first_axis_to_single_element_tensor_copy(self, device="npu"):
178 dtype_list5 = [torch.float32]183 dtype_list5 = [torch.float32]
179 format_list5 = [2, 3, 29]184 format_list5 = [2, 3, 29]
@@ -203,15 +208,13 @@ class SingleViewCopyToContiguous(TestCase):
203 npu_out2 = npu_input[0] + 1208 npu_out2 = npu_input[0] + 1
204 if match_case:209 if match_case:
205 self.assertEqual(check_operators_in_prof(['contiguous_h_memRepoint'], prof) or210 self.assertEqual(check_operators_in_prof(['contiguous_h_memRepoint'], prof) or
206- check_operators_in_prof(['aclnnInplaceCopy'], prof) or
207 check_operators_in_prof(['aclnnAdds'], prof),211 check_operators_in_prof(['aclnnAdds'], prof),
208- True, message="contiguous_h_memRepoint or aclnnInplaceCopy or aclnnAdds is not called!")212+ True, message="contiguous_h_memRepoint or aclnnAdds is not called!")
209 else:213 else:
210 # refresh storage desc after transdata214 # refresh storage desc after transdata
211 self.assertEqual(check_operators_in_prof(['Identity'], prof) or215 self.assertEqual(check_operators_in_prof(['Identity'], prof) or
212- check_operators_in_prof(['aclnnInplaceCopy'], prof) or
213 check_operators_in_prof(['aclnnAdds'], prof),216 check_operators_in_prof(['aclnnAdds'], prof),
214- True, message="Identity or aclnnInplaceCopy or aclnnAdds is not called!")217+ True, message="Identity or aclnnAdds is not called!")
215 cpu_out2 = cpu_input[0] + 1218 cpu_out2 = cpu_input[0] + 1
216 self.assertRtolEqual(npu_out2.to("cpu").numpy(), cpu_out2.numpy())219 self.assertRtolEqual(npu_out2.to("cpu").numpy(), cpu_out2.numpy())
217 220 
Mtest/trans_contiguous/test_special_cases_copy_to_contiguous.py+8-0
@@ -1,3 +1,4 @@
1+import unittest
1import os2import os
2import torch3import torch
3import numpy as np4import numpy as np
@@ -8,8 +9,15 @@ from torch_npu.testing.common_utils import create_common_tensor
8 9 
9os.environ["COMBINED_ENABLE"] = "1" # Open combined-view cases optimization10os.environ["COMBINED_ENABLE"] = "1" # Open combined-view cases optimization
10 11 
12+DEVICE_NAME = torch_npu.npu.get_device_name(0)
13+ 
14+device_is_910A = False
15+if "Ascend910A" in DEVICE_NAME or "Ascend910P" in DEVICE_NAME:
16+ device_is_910A = True
17+ 
11 18 
12class TestSpecialCasesCopyToContiguous(TestCase):19class TestSpecialCasesCopyToContiguous(TestCase):
20+ @unittest.skipIf(device_is_910A, "skip")
13 def test_expand_copy_to_slice_discontiguous_tensor(self, device="npu"):21 def test_expand_copy_to_slice_discontiguous_tensor(self, device="npu"):
14 dtype_list = [np.bool_, np.int8, np.int16, np.float16, np.float32, np.int32, np.int64]22 dtype_list = [np.bool_, np.int8, np.int16, np.float16, np.float32, np.int32, np.int64]
15 index_list = [3, 8, 16, 32]23 index_list = [3, 8, 16, 32]
Mtest/unsupported_test_cases/.pytorch-disabled-tests.json+0-5
@@ -31160,7 +31160,6 @@
31160 "test_forward_mode_AD_abs_npu_float64 (__main__.TestFwdGradientsPRIVATEUSE1)": ["", ["A2"]],31160 "test_forward_mode_AD_abs_npu_float64 (__main__.TestFwdGradientsPRIVATEUSE1)": ["", ["A2"]],
31161 "test_flatten_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],31161 "test_flatten_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],
31162 "test_narrow_at_first_axis_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],31162 "test_narrow_at_first_axis_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],
31163- "test_select_at_first_axis_to_single_element_tensor_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],
31164 "test_unsqueeze_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],31163 "test_unsqueeze_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],
31165 "test_view_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],31164 "test_view_copy (__main__.SingleViewCopyToContiguous)": ["", ["A2"]],
31166 "test_view_narrow_permute_copy_contiguous (__main__.TestTriCombinedViewsCopyToContiguous)": ["", ["A2"]],31165 "test_view_narrow_permute_copy_contiguous (__main__.TestTriCombinedViewsCopyToContiguous)": ["", ["A2"]],
@@ -31193,7 +31192,6 @@
31193 "test_npu_deform_conv_2 (__main__.TestDeformConv)": ["", ["A2"]],31192 "test_npu_deform_conv_2 (__main__.TestDeformConv)": ["", ["A2"]],
31194 "test_grad_scaling_unscale_float16 (__main__.TestAmpForeachNonFiniteCheckAndUnscale)": ["", ["A2"]],31193 "test_grad_scaling_unscale_float16 (__main__.TestAmpForeachNonFiniteCheckAndUnscale)": ["", ["A2"]],
31195 "test_grad_scaling_unscale_float32 (__main__.TestAmpForeachNonFiniteCheckAndUnscale)": ["", ["A2"]],31194 "test_grad_scaling_unscale_float32 (__main__.TestAmpForeachNonFiniteCheckAndUnscale)": ["", ["A2"]],
31196- "test_float_status (__main__.TestFloatStatus)": ["", ["A2"]],
31197 "test_npu_fused_attention_score_fwd (__main__.TestFusedAttentionScoreFwd)": ["", ["A2"]],31195 "test_npu_fused_attention_score_fwd (__main__.TestFusedAttentionScoreFwd)": ["", ["A2"]],
31198 "test_save_graph_repro (__main__.TestAfterAot)": ["", ["A2"]],31196 "test_save_graph_repro (__main__.TestAfterAot)": ["", ["A2"]],
31199 "test_explain_with_backend (__main__.TestExplainWithBackend)": ["", ["A2"]],31197 "test_explain_with_backend (__main__.TestExplainWithBackend)": ["", ["A2"]],
@@ -32050,7 +32048,6 @@
32050 "test_sym_sqrt (__main__.TestPySymInt)": ["", [""]],32048 "test_sym_sqrt (__main__.TestPySymInt)": ["", [""]],
32051 "test_unbacked_substitution (__main__.TestPySymInt)": ["", [""]],32049 "test_unbacked_substitution (__main__.TestPySymInt)": ["", [""]],
32052 "test_symnode_hashing (__main__.TestSymNumberMagicMethods)": ["", [""]],32050 "test_symnode_hashing (__main__.TestSymNumberMagicMethods)": ["", [""]],
32053- "test_hook_registration (__main__.TestFlopCounter)": ["", [""]],
32054 "test_batch_norm (__main__.TestCrossRefFunctionalization)": ["", [""]],32051 "test_batch_norm (__main__.TestCrossRefFunctionalization)": ["", [""]],
32055 "test_cat (__main__.TestCrossRefFunctionalization)": ["", [""]],32052 "test_cat (__main__.TestCrossRefFunctionalization)": ["", [""]],
32056 "test_index_mutation_on_non_input (__main__.TestCrossRefFunctionalization)": ["", [""]],32053 "test_index_mutation_on_non_input (__main__.TestCrossRefFunctionalization)": ["", [""]],
@@ -32070,7 +32067,6 @@
32070 "test_multidevice_serialization_npu (__main__.TestDevicePrecisionPRIVATEUSE1)": ["", [""]],32067 "test_multidevice_serialization_npu (__main__.TestDevicePrecisionPRIVATEUSE1)": ["", [""]],
32071 "test_cdist_grad_p_lt_1_no_nan_npu (__main__.TestTorchDeviceTypePRIVATEUSE1)": ["", [""]],32068 "test_cdist_grad_p_lt_1_no_nan_npu (__main__.TestTorchDeviceTypePRIVATEUSE1)": ["", [""]],
32072 "test_serialization_npu (__main__.TestTorchDeviceTypePRIVATEUSE1)": ["", [""]],32069 "test_serialization_npu (__main__.TestTorchDeviceTypePRIVATEUSE1)": ["", [""]],
32073- "test_deprecation (__main__.TestNNInit)": ["", [""]],
32074 "test_fake_tensor_mode_simple_invalid_input (__main__.TestFxToOnnx)": ["", [""]],32070 "test_fake_tensor_mode_simple_invalid_input (__main__.TestFxToOnnx)": ["", [""]],
32075 "test_missing_complex_onnx_variant_raises_errors_in_dispatcher (__main__.TestFxToOnnx)": ["", [""]],32071 "test_missing_complex_onnx_variant_raises_errors_in_dispatcher (__main__.TestFxToOnnx)": ["", [""]],
32076 "test_no_graph_break_on_item (__main__.SubGraphTests)": ["", [""]],32072 "test_no_graph_break_on_item (__main__.SubGraphTests)": ["", [""]],
@@ -32135,7 +32131,6 @@
32135 "test_matmul_unshardable (__main__.TestRegisterSharding)": ["", [""]],32131 "test_matmul_unshardable (__main__.TestRegisterSharding)": ["", [""]],
32136 "test_npu_fussion_attention_forward (__main__.TestRegisterSharding)": ["", [""]],32132 "test_npu_fussion_attention_forward (__main__.TestRegisterSharding)": ["", [""]],
32137 "test_npu_fussion_attention_grad (__main__.TestRegisterSharding)": ["", [""]],32133 "test_npu_fussion_attention_grad (__main__.TestRegisterSharding)": ["", [""]],
32138- "test_cycle_lr_cycle_momentum_fail_with_momentumless_optimizer (optim.test_lrscheduler.TestLRScheduler)": ["", [""]],
32139 "test_as_strided (__main__.TestFunctionalization)": ["", [""]],32134 "test_as_strided (__main__.TestFunctionalization)": ["", [""]],
32140 "test_copy_ (__main__.TestFunctionalization)": ["", [""]],32135 "test_copy_ (__main__.TestFunctionalization)": ["", [""]],
32141 "test_diagonal (__main__.TestFunctionalization)": ["", [""]],32136 "test_diagonal (__main__.TestFunctionalization)": ["", [""]],