-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerator_test.py
executable file
·34 lines (32 loc) · 1.41 KB
/
generator_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/python
import time
def build_module(name):
from os import system
if system(f"g++ -Ofast -DNDEBUG -fno-stack-protector -Wall -Wpedantic -shared -fPIC $(python3 -m pybind11 --includes) -I. {name}.cpp -o {name}$(python3-config --extension-suffix)") != 0:
print(f"ERROR: Unable to compile `{name}.cpp`.")
import sys
sys.exit(1)
try:
from os.path import getmtime
from importlib.util import find_spec
generator_module = find_spec('generator')
if generator_module == None:
raise ModuleNotFoundError
elif getmtime(generator_module.origin) < getmtime('generator.cpp'):
print("C++ module `generator` is out-of-date. Compiling from source...")
build_module("generator")
import generator
except ModuleNotFoundError:
print("C++ module `generator` not found. Compiling from source...")
build_module("generator")
import generator
print("C++ module `generator` loaded.")
reserved_inputs = set()
start_time = time.perf_counter()
generator.set_seed(9)
dataset_size = 2 ** 12
#output = generator.generate_training_set(128, dataset_size, 2, 5, reserved_inputs, -1, False)
#output = generator.generate_dfs_training_set(48, dataset_size, reserved_inputs, 10, False, True, False)
output = generator.generate_si_training_set(128, dataset_size, reserved_inputs, 11, 4, False, True)
print("({},{}) Throughput: {} examples generated/s".format(11, 4, dataset_size / (time.perf_counter() - start_time)))
import pdb; pdb.set_trace()