Skip to content

Commit 5912316

Browse files
smessmerfacebook-github-bot
authored andcommitted
Making ops c10-full: Generator arguments (#49013)
Summary: Pull Request resolved: #49013 I don't know why this works. I know, this is never a good way to start a PR description :P I know that Generator is a dispatch relevant argument when called from an unboxed API and is ignored for dispatch purposes when called from a boxed API. This should break something, but maybe we don't have test cases for that. We likely need to align the unboxed and boxed dispatch behavior before landing this. The best solution would be to make Generator not dispatch relevant in unboxing. But that might be a bigger change. An acceptable solution could be to make Generator dispatch relevant in boxing, but that needs perf measurements. This PR needs further discussion. ghstack-source-id: 118619230 (Note: this ignores all push blocking failures!) Test Plan: waitforsandcastle Reviewed By: bhosmer Differential Revision: D25394998 fbshipit-source-id: f695c659ee6e3738f74cdf0af1a514ac0c30ebff
1 parent a6274c1 commit 5912316

File tree

3 files changed

+112
-67
lines changed

3 files changed

+112
-67
lines changed

aten/src/ATen/VmapModeRegistrations.cpp

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -42,70 +42,70 @@ TORCH_LIBRARY_IMPL(aten, VmapMode, m) {
4242
#define TENSOROPTIONS c10::optional<c10::ScalarType>, c10::optional<c10::Layout>, c10::optional<c10::Device>, c10::optional<bool>
4343

4444
// random operations (out-of-place)
45-
m.impl_UNBOXED("bernoulli", unsupportedRandomOp<const Tensor&, optional<Generator>>);
46-
m.impl_UNBOXED("bernoulli.out", unsupportedRandomOp_<Tensor&, const Tensor&, optional<Generator>>);
47-
m.impl_UNBOXED("bernoulli.p", unsupportedRandomOp<const Tensor&, double, optional<Generator>>);
48-
m.impl_UNBOXED("bernoulli_.Tensor", unsupportedRandomOp_<Tensor&, const Tensor&, optional<Generator>>);
49-
m.impl_UNBOXED("bernoulli_.float", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
50-
51-
m.impl_UNBOXED("cauchy_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
52-
m.impl_UNBOXED("exponential_", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
53-
m.impl_UNBOXED("geometric_", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
54-
m.impl_UNBOXED("log_normal_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
55-
m.impl_UNBOXED("multinomial", unsupportedRandomOp<const Tensor&, int64_t, bool, optional<Generator>>);
56-
m.impl_UNBOXED("multinomial.out", unsupportedRandomOp_<Tensor&, const Tensor&, int64_t, bool, optional<Generator>>);
57-
58-
m.impl_UNBOXED("normal.Tensor_float", unsupportedRandomOp<const Tensor&, double, optional<Generator>>);
59-
m.impl_UNBOXED("normal.Tensor_float_out", unsupportedRandomOp_<Tensor&, const Tensor&, double, optional<Generator>>);
60-
m.impl_UNBOXED("normal.float_Tensor_out", unsupportedRandomOp_<Tensor&, double, const Tensor&, optional<Generator>>);
61-
m.impl_UNBOXED("normal.float_Tensor", unsupportedRandomOp<double, const Tensor&, optional<Generator>>);
62-
m.impl_UNBOXED("normal.Tensor_Tensor", unsupportedRandomOp<const Tensor&, const Tensor&, optional<Generator>>);
63-
m.impl_UNBOXED("normal.Tensor_Tensor_out", unsupportedRandomOp_<Tensor&, const Tensor&, const Tensor&, optional<Generator>>);
64-
m.impl_UNBOXED("normal.float_float", unsupportedRandomOp<double, double, IntArrayRef, optional<Generator>, const TensorOptions&>);
65-
m.impl_UNBOXED("normal.float_float_out", unsupportedRandomOp_<Tensor&, double, double, IntArrayRef, optional<Generator>>);
66-
m.impl_UNBOXED("normal_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
67-
68-
m.impl_UNBOXED("poisson", unsupportedRandomOp<const Tensor&, optional<Generator>>);
69-
70-
m.impl_UNBOXED("random_.from", unsupportedRandomOp_<Tensor&, int64_t, optional<int64_t>, optional<Generator>>);
71-
m.impl_UNBOXED("random_.to", unsupportedRandomOp_<Tensor&, int64_t, optional<Generator>>);
72-
m.impl_UNBOXED("random_", unsupportedRandomOp_<Tensor&, optional<Generator>>);
73-
74-
m.impl_UNBOXED("rand_like", unsupportedRandomOp<const Tensor&, TENSOROPTIONS, optional<MemoryFormat>>);
75-
m.impl_UNBOXED("randn_like", unsupportedRandomOp<const Tensor&, TENSOROPTIONS, optional<MemoryFormat>>);
76-
77-
m.impl_UNBOXED("randint_like", unsupportedRandomOp<const Tensor&, int64_t, TENSOROPTIONS, optional<MemoryFormat>>);
78-
m.impl_UNBOXED("randint_like.low_dtype", unsupportedRandomOp<const Tensor&, int64_t, int64_t, TENSOROPTIONS, optional<MemoryFormat>>);
45+
m.impl("bernoulli", unsupportedRandomOp<const Tensor&, optional<Generator>>);
46+
m.impl("bernoulli.out", unsupportedRandomOp_<const Tensor&, optional<Generator>, Tensor&>);
47+
m.impl("bernoulli.p", unsupportedRandomOp<const Tensor&, double, optional<Generator>>);
48+
m.impl("bernoulli_.Tensor", unsupportedRandomOp_<Tensor&, const Tensor&, optional<Generator>>);
49+
m.impl("bernoulli_.float", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
50+
51+
m.impl("cauchy_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
52+
m.impl("exponential_", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
53+
m.impl("geometric_", unsupportedRandomOp_<Tensor&, double, optional<Generator>>);
54+
m.impl("log_normal_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
55+
m.impl("multinomial", unsupportedRandomOp<const Tensor&, int64_t, bool, optional<Generator>>);
56+
m.impl("multinomial.out", unsupportedRandomOp_<const Tensor&, int64_t, bool, optional<Generator>, Tensor&>);
57+
58+
m.impl("normal.Tensor_float", unsupportedRandomOp<const Tensor&, double, optional<Generator>>);
59+
m.impl("normal.Tensor_float_out", unsupportedRandomOp_<const Tensor&, double, optional<Generator>, Tensor&>);
60+
m.impl("normal.float_Tensor_out", unsupportedRandomOp_<double, const Tensor&, optional<Generator>, Tensor&>);
61+
m.impl("normal.float_Tensor", unsupportedRandomOp<double, const Tensor&, optional<Generator>>);
62+
m.impl("normal.Tensor_Tensor", unsupportedRandomOp<const Tensor&, const Tensor&, optional<Generator>>);
63+
m.impl("normal.Tensor_Tensor_out", unsupportedRandomOp_<const Tensor&, const Tensor&, optional<Generator>, Tensor&>);
64+
m.impl("normal.float_float", unsupportedRandomOp<double, double, IntArrayRef, optional<Generator>, TENSOROPTIONS>);
65+
m.impl("normal.float_float_out", unsupportedRandomOp_<double, double, IntArrayRef, optional<Generator>, Tensor&>);
66+
m.impl("normal_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
67+
68+
m.impl("poisson", unsupportedRandomOp<const Tensor&, optional<Generator>>);
69+
70+
m.impl("random_.from", unsupportedRandomOp_<Tensor&, int64_t, optional<int64_t>, optional<Generator>>);
71+
m.impl("random_.to", unsupportedRandomOp_<Tensor&, int64_t, optional<Generator>>);
72+
m.impl("random_", unsupportedRandomOp_<Tensor&, optional<Generator>>);
73+
74+
m.impl("rand_like", unsupportedRandomOp<const Tensor&, TENSOROPTIONS, optional<MemoryFormat>>);
75+
m.impl("randn_like", unsupportedRandomOp<const Tensor&, TENSOROPTIONS, optional<MemoryFormat>>);
76+
77+
m.impl("randint_like", unsupportedRandomOp<const Tensor&, int64_t, TENSOROPTIONS, optional<MemoryFormat>>);
78+
m.impl("randint_like.low_dtype", unsupportedRandomOp<const Tensor&, int64_t, int64_t, TENSOROPTIONS, optional<MemoryFormat>>);
7979

8080
m.impl("rand", unsupportedRandomOp<IntArrayRef, TENSOROPTIONS>);
81-
m.impl_UNBOXED("rand.generator", unsupportedRandomOp<IntArrayRef, optional<Generator>, const TensorOptions&>);
81+
m.impl("rand.generator", unsupportedRandomOp<IntArrayRef, optional<Generator>, TENSOROPTIONS>);
8282
m.impl_UNBOXED("rand.names", unsupportedRandomOp<IntArrayRef, optional<DimnameList>, const TensorOptions&>);
8383
m.impl_UNBOXED("rand.generator_with_names", unsupportedRandomOp<IntArrayRef, optional<Generator>, optional<DimnameList>, const TensorOptions&>);
8484
m.impl("rand.out", unsupportedRandomOp_<IntArrayRef, Tensor&>);
85-
m.impl_UNBOXED("rand.generator_out", unsupportedRandomOp_<Tensor&, IntArrayRef, optional<Generator>>);
85+
m.impl("rand.generator_out", unsupportedRandomOp_<IntArrayRef, optional<Generator>, Tensor&>);
8686

8787
m.impl("randn", unsupportedRandomOp<IntArrayRef, TENSOROPTIONS>);
88-
m.impl_UNBOXED("randn.generator", unsupportedRandomOp<IntArrayRef, optional<Generator>, const TensorOptions&>);
88+
m.impl("randn.generator", unsupportedRandomOp<IntArrayRef, optional<Generator>, TENSOROPTIONS>);
8989
m.impl_UNBOXED("randn.names", unsupportedRandomOp<IntArrayRef, optional<DimnameList>, const TensorOptions&>);
9090
m.impl_UNBOXED("randn.generator_with_names", unsupportedRandomOp<IntArrayRef, optional<Generator>, optional<DimnameList>, const TensorOptions&>);
9191
m.impl("randn.out", unsupportedRandomOp_<IntArrayRef, Tensor&>);
92-
m.impl_UNBOXED("randn.generator_out", unsupportedRandomOp_<Tensor&, IntArrayRef, optional<Generator>>);
92+
m.impl("randn.generator_out", unsupportedRandomOp_<IntArrayRef, optional<Generator>, Tensor&>);
9393

9494
m.impl("randperm", unsupportedRandomOp<int64_t, TENSOROPTIONS>);
95-
m.impl_UNBOXED("randperm.generator", unsupportedRandomOp<int64_t, optional<Generator>, const TensorOptions&>);
95+
m.impl("randperm.generator", unsupportedRandomOp<int64_t, optional<Generator>, TENSOROPTIONS>);
9696
m.impl("randperm.out", unsupportedRandomOp_<int64_t, Tensor&>);
97-
m.impl_UNBOXED("randperm.generator_out", unsupportedRandomOp_<Tensor&, int64_t, optional<Generator>>);
97+
m.impl("randperm.generator_out", unsupportedRandomOp_<int64_t, optional<Generator>, Tensor&>);
9898

9999
m.impl("randint", unsupportedRandomOp<int64_t, IntArrayRef, TENSOROPTIONS>);
100-
m.impl_UNBOXED("randint.generator", unsupportedRandomOp<int64_t, IntArrayRef, optional<Generator>, const TensorOptions&>);
100+
m.impl("randint.generator", unsupportedRandomOp<int64_t, IntArrayRef, optional<Generator>, TENSOROPTIONS>);
101101
m.impl("randint.low", unsupportedRandomOp<int64_t, int64_t, IntArrayRef, TENSOROPTIONS>);
102-
m.impl_UNBOXED("randint.low_generator", unsupportedRandomOp<int64_t, int64_t, IntArrayRef, optional<Generator>, const TensorOptions&>);
102+
m.impl("randint.low_generator", unsupportedRandomOp<int64_t, int64_t, IntArrayRef, optional<Generator>, TENSOROPTIONS>);
103103
m.impl("randint.out", unsupportedRandomOp_<int64_t, IntArrayRef, Tensor&>);
104-
m.impl_UNBOXED("randint.generator_out", unsupportedRandomOp_<Tensor&, int64_t, IntArrayRef, optional<Generator>>);
104+
m.impl("randint.generator_out", unsupportedRandomOp_<int64_t, IntArrayRef, optional<Generator>, Tensor&>);
105105
m.impl("randint.low_out", unsupportedRandomOp_<int64_t, int64_t, IntArrayRef, Tensor&>);
106-
m.impl_UNBOXED("randint.low_generator_out", unsupportedRandomOp_<Tensor&, int64_t, int64_t, IntArrayRef, optional<Generator>>);
106+
m.impl("randint.low_generator_out", unsupportedRandomOp_<int64_t, int64_t, IntArrayRef, optional<Generator>, Tensor&>);
107107

108-
m.impl_UNBOXED("uniform_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
108+
m.impl("uniform_", unsupportedRandomOp_<Tensor&, double, double, optional<Generator>>);
109109

110110
#undef TENSOROPTIONS
111111
}

0 commit comments

Comments
 (0)