From 89e211a0dfd11f75e79d2c3bd2f4a8b400a926a2 Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Tue, 18 Apr 2023 22:17:55 +0800 Subject: [PATCH 1/8] add `multinomial`, adjust `dropout`'s gen_function --- diopirt | 2 +- impl | 2 +- python/conformance/conformance_test.py | 15 ++++++++++++++- python/conformance/diopi_configs.py | 26 +++++++++++++++++++++++--- python/conformance/diopi_functions.py | 15 +++++++++++++++ 5 files changed, 54 insertions(+), 6 deletions(-) diff --git a/diopirt b/diopirt index ce8c68e..fb0d521 160000 --- a/diopirt +++ b/diopirt @@ -1 +1 @@ -Subproject commit ce8c68e986a374aaf32157568b132776bf4b84a1 +Subproject commit fb0d5217b0f8349e9da12bb2910db43d78fbfd63 diff --git a/impl b/impl index 2a11dcf..fa99cee 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit 2a11dcf2a4cf91b3e48c37e2c32c5875cbc23588 +Subproject commit fa99ceeca235ab497734b0dbdbf27e2b5ea199ac diff --git a/python/conformance/conformance_test.py b/python/conformance/conformance_test.py index 87040a9..9f53799 100644 --- a/python/conformance/conformance_test.py +++ b/python/conformance/conformance_test.py @@ -118,7 +118,7 @@ def test_dropout_(func, input, p=0.5, training=True, inplace=False): if training: # compute ratio - real_ratio = np.sum(mask_numpy) / mask.numel() + real_ratio = np.sum(mask_numpy) / mask.numel() #真实丢弃的比例 # check data if func == F.dropout2d: tmp = np.ones(input.shape) @@ -208,6 +208,19 @@ def test_normal_(input, mean, std, shape=None): out_numpy = out_numpy.flatten() p_value = stats.kstest(out_numpy, 'norm', args=(mean, std))[1] assert p_value > 0.05, "failed to execute normal_" + + def test_multinomial(input, num_samples, replacement): + out = F.multinomial(input, num_samples, replacement) + out_numpy = out.numpy() + has_duplicates = False + if len(out.size()) == 2: + has_duplicates = len(out_numpy[0]) != len(set(out_numpy[0])) + else: + has_duplicates = len(out_numpy) != len(set(out_numpy)) + if not replacement: + assert has_duplicates == False, "failed to execute multinomial" + out_numpy = out_numpy.flatten() + assert len(out_numpy) % num_samples == 0, "failed to execute multinomial" def config_to_format_string(data, indent=0): diff --git a/python/conformance/diopi_configs.py b/python/conformance/diopi_configs.py index cf45f88..4cc22fd 100644 --- a/python/conformance/diopi_configs.py +++ b/python/conformance/diopi_configs.py @@ -2217,7 +2217,7 @@ "ins": ['input'], "shape": ((2, 4096), (32, 49, 256), (2, 16, 64, 64), (1, 2304, 1, 1, 1)), "dtype": [Dtype.float32, Dtype.float64], - "gen_fn": Genfunc.randn, + "gen_fn": Genfunc.positive, }, ], ), @@ -2237,7 +2237,7 @@ "shape": ((2, 4096), (32, 49, 256), (2, 16, 64, 64), (1, 2304, 1, 1, 1)), "dtype": [Dtype.float32, Dtype.float64], - "gen_fn": Genfunc.randn, + "gen_fn": Genfunc.positive, }, ], ), @@ -2256,7 +2256,7 @@ "ins": ['input'], "shape": ((32, 49, 256), (32, 16, 64, 64)), "dtype": [Dtype.float32, Dtype.float64], - "gen_fn": Genfunc.randn, + "gen_fn": Genfunc.positive, }, ], ), @@ -4341,4 +4341,24 @@ ), ), + 'multinomial': dict( + name=["multinomial"], + interface=['torch'], + no_output_ref=True, + para=dict( + num_samples=[6, 60, 200, 128], + replacement=[True, True, False, False], + ), + tensor_para=dict( + gen_fn=Genfunc.positive, + args=[ + { + "ins": ['input'], + "shape": ((8, ), (16, 64,), (128, 256,), (256, 128,)), + "dtype": [Dtype.float32, Dtype.float64, Dtype.float64, Dtype.float64], + }, + ], + ), + ), + } diff --git a/python/conformance/diopi_functions.py b/python/conformance/diopi_functions.py index 0991844..1aee461 100644 --- a/python/conformance/diopi_functions.py +++ b/python/conformance/diopi_functions.py @@ -3514,3 +3514,18 @@ def meshgrid(tensors, shape=None): ret = func(tensors[0].context_handle, pointer(co_tensors), pointer(c_tensors), c_int64(inputsNum)) check_returncode(ret) return out + + +def multinomial(input, num_samples, replacement) -> Tensor: + call = "diopiMultinomial" + func = check_function(call) + if len(input.size()) == 2: + out = Tensor(size=(input.size()[0], num_samples), dtype=Dtype.int64) + ret = func(input.context_handle, out.tensor_handle, input.tensor_handle, c_int64(num_samples), c_bool(replacement)) + check_returncode(ret) + return out + if len(input.size()) == 1: + out = Tensor(size=(num_samples,), dtype=Dtype.int64) + ret = func(input.context_handle, out.tensor_handle, input.tensor_handle, c_int64(num_samples), c_bool(replacement)) + check_returncode(ret) + return out From b178165877dbacebe741a690ed985d900524659e Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Wed, 19 Apr 2023 10:32:16 +0800 Subject: [PATCH 2/8] fix lint --- python/conformance/conformance_test.py | 6 +++--- python/conformance/diopi_configs.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/python/conformance/conformance_test.py b/python/conformance/conformance_test.py index 9f53799..477cd10 100644 --- a/python/conformance/conformance_test.py +++ b/python/conformance/conformance_test.py @@ -118,7 +118,7 @@ def test_dropout_(func, input, p=0.5, training=True, inplace=False): if training: # compute ratio - real_ratio = np.sum(mask_numpy) / mask.numel() #真实丢弃的比例 + real_ratio = np.sum(mask_numpy) / mask.numel() # check data if func == F.dropout2d: tmp = np.ones(input.shape) @@ -208,7 +208,7 @@ def test_normal_(input, mean, std, shape=None): out_numpy = out_numpy.flatten() p_value = stats.kstest(out_numpy, 'norm', args=(mean, std))[1] assert p_value > 0.05, "failed to execute normal_" - + def test_multinomial(input, num_samples, replacement): out = F.multinomial(input, num_samples, replacement) out_numpy = out.numpy() @@ -218,7 +218,7 @@ def test_multinomial(input, num_samples, replacement): else: has_duplicates = len(out_numpy) != len(set(out_numpy)) if not replacement: - assert has_duplicates == False, "failed to execute multinomial" + assert has_duplicates is False, "failed to execute multinomial" out_numpy = out_numpy.flatten() assert len(out_numpy) % num_samples == 0, "failed to execute multinomial" diff --git a/python/conformance/diopi_configs.py b/python/conformance/diopi_configs.py index 4cc22fd..69b046b 100644 --- a/python/conformance/diopi_configs.py +++ b/python/conformance/diopi_configs.py @@ -4359,6 +4359,6 @@ }, ], ), - ), + ), } From 4aceda2b106687d4c57243ccf24e331c87346f31 Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Wed, 19 Apr 2023 11:47:49 +0800 Subject: [PATCH 3/8] fix submodule --- diopirt | 2 +- impl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/diopirt b/diopirt index fb0d521..4993832 160000 --- a/diopirt +++ b/diopirt @@ -1 +1 @@ -Subproject commit fb0d5217b0f8349e9da12bb2910db43d78fbfd63 +Subproject commit 49938320a90506dd97ac1fc1c7b4f594d8834059 diff --git a/impl b/impl index fa99cee..2197595 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit fa99ceeca235ab497734b0dbdbf27e2b5ea199ac +Subproject commit 21975957ec5681932e0dad1d031703bdd404bcde From c9e5e69f9ddb8cbbae3988f9b43e359e454065ec Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Wed, 19 Apr 2023 12:39:42 +0800 Subject: [PATCH 4/8] fix submodule --- diopirt | 2 +- impl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/diopirt b/diopirt index 4993832..fa65866 160000 --- a/diopirt +++ b/diopirt @@ -1 +1 @@ -Subproject commit 49938320a90506dd97ac1fc1c7b4f594d8834059 +Subproject commit fa65866a2dc13fb40d0656b838cf6ca85cce9784 diff --git a/impl b/impl index 2197595..c76da77 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit 21975957ec5681932e0dad1d031703bdd404bcde +Subproject commit c76da77d82f741e09656a7075d73c33d6fccd990 From 0519cc3c0f51cc4479d2db090b998e58f5c4104e Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Thu, 20 Apr 2023 11:23:54 +0800 Subject: [PATCH 5/8] fix submodule --- impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/impl b/impl index c76da77..a6a17c6 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit c76da77d82f741e09656a7075d73c33d6fccd990 +Subproject commit a6a17c6671bc9fbfed40957c10aa902cd0f9a352 From cd93d17fcdf853f32a8ac5ae6ec1489d22302a68 Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Thu, 20 Apr 2023 13:01:29 +0800 Subject: [PATCH 6/8] update code --- python/conformance/diopi_functions.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/python/conformance/diopi_functions.py b/python/conformance/diopi_functions.py index 1aee461..e7c9673 100644 --- a/python/conformance/diopi_functions.py +++ b/python/conformance/diopi_functions.py @@ -3521,11 +3521,8 @@ def multinomial(input, num_samples, replacement) -> Tensor: func = check_function(call) if len(input.size()) == 2: out = Tensor(size=(input.size()[0], num_samples), dtype=Dtype.int64) - ret = func(input.context_handle, out.tensor_handle, input.tensor_handle, c_int64(num_samples), c_bool(replacement)) - check_returncode(ret) - return out if len(input.size()) == 1: out = Tensor(size=(num_samples,), dtype=Dtype.int64) - ret = func(input.context_handle, out.tensor_handle, input.tensor_handle, c_int64(num_samples), c_bool(replacement)) - check_returncode(ret) - return out + ret = func(input.context_handle, out.tensor_handle, input.tensor_handle, c_int64(num_samples), c_bool(replacement)) + check_returncode(ret) + return out From 82689482c074a01507897a413b79a8e0dea72db9 Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Thu, 20 Apr 2023 16:28:20 +0800 Subject: [PATCH 7/8] update impl --- impl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/impl b/impl index a6a17c6..e63739e 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit a6a17c6671bc9fbfed40957c10aa902cd0f9a352 +Subproject commit e63739e54f0ee0fa2a1fb11a1ae76e6ad145013a From 1ffbc8dc3de22f720face998f23632af1ab9e06a Mon Sep 17 00:00:00 2001 From: z37903589 <379035389@qq.com> Date: Thu, 20 Apr 2023 17:04:49 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9conv2d=20padding=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- impl | 2 +- python/conformance/diopi_configs.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/impl b/impl index e63739e..6d5a303 160000 --- a/impl +++ b/impl @@ -1 +1 @@ -Subproject commit e63739e54f0ee0fa2a1fb11a1ae76e6ad145013a +Subproject commit 6d5a303f2ba79ec16428d50f527d7a590b34bce5 diff --git a/python/conformance/diopi_configs.py b/python/conformance/diopi_configs.py index 69b046b..3c3019e 100644 --- a/python/conformance/diopi_configs.py +++ b/python/conformance/diopi_configs.py @@ -80,7 +80,7 @@ dtype=[Dtype.float32, Dtype.float16, Dtype.float64], para=dict( stride=[2, 1, 1, (2, 2)], - padding=[0, 12, 0, (0, 0)], + padding=[0, 12, (2, 1), (0, 0)], dilation=[1, 12, 1, (1, 1)], groups=[1, 2048, 1, 1], ),