Skip to content

Commit 9b7ea9c

Browse files
zonglinpengfacebook-github-bot
authored andcommitted
fix random manager not seeded in some case (#10)
Summary: Pull Request resolved: #10 In facto, some callsite directly use the [facto rand manager as global var](https://fburl.com/code/2fqili99) . Because those callsites just use the global var, they does not seed the RandomManager. Added a simple option to seed when initializing the RandomManager object. **Better designs can be shipped in following diffs. Please ship to solve flakiness on Falcon G3 CI** Reviewed By: hsharma35, manuelcandales Differential Revision: D75302905 fbshipit-source-id: 33de46a168c6e5ec1df0c48e302d846dfa586be1
1 parent 13edf47 commit 9b7ea9c

File tree

5 files changed

+8
-5
lines changed

5 files changed

+8
-5
lines changed

facto/inputgen/argument/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from facto.inputgen.attribute.model import Attribute
1313
from facto.inputgen.attribute.solve import AttributeSolver
1414
from facto.inputgen.specs.model import Constraint, ConstraintSuffix
15-
from facto.inputgen.utils.random_manager import random_manager as rm
15+
from facto.inputgen.utils.random_manager import seeded_random_manager as rm
1616
from facto.inputgen.variable.type import ScalarDtype
1717

1818

facto/inputgen/argument/gen.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import torch
1111
from facto.inputgen.argument.engine import MetaArg
12-
from facto.inputgen.utils.random_manager import random_manager
12+
from facto.inputgen.utils.random_manager import seeded_random_manager
1313
from facto.inputgen.variable.gen import VariableGenerator
1414
from facto.inputgen.variable.space import VariableSpace
1515
from torch.testing._internal.common_dtype import floating_types, integral_types
@@ -42,7 +42,7 @@ def gen(self):
4242
)
4343

4444
def get_random_tensor(self, size, dtype, high=None, low=None):
45-
torch_rng = random_manager.get_torch()
45+
torch_rng = seeded_random_manager.get_torch()
4646

4747
if low is None and high is None:
4848
low = -100

facto/inputgen/utils/random_manager.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@ def get_torch(self):
3131

3232

3333
random_manager = RandomManager()
34+
seeded_random_manager = RandomManager()
35+
# 1792 is a random seed that was used to generate the random inputs for the Facto benchmark results
36+
seeded_random_manager.seed(1792)

facto/inputgen/variable/gen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import math
88
from typing import Any, List, Optional, Set, Union
99

10-
from facto.inputgen.utils.random_manager import random_manager as rm
10+
from facto.inputgen.utils.random_manager import seeded_random_manager as rm
1111
from facto.inputgen.variable.constants import BOUND_ON_INF, INT64_MAX, INT64_MIN
1212
from facto.inputgen.variable.space import Interval, Intervals, VariableSpace
1313
from facto.inputgen.variable.type import sort_values_of_type

facto/specdb/function.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# LICENSE file in the root directory of this source tree.
66

77
import torch
8-
from facto.inputgen.utils.random_manager import random_manager as rm
8+
from facto.inputgen.utils.random_manager import seeded_random_manager as rm
99
from facto.inputgen.variable.type import ScalarDtype
1010
from facto.inputgen.variable.utils import nextdown, nextup
1111

0 commit comments

Comments
 (0)