xref: /aosp_15_r20/external/pytorch/benchmarks/dynamo/microbenchmarks/utils.py (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerimport math
2*da0073e9SAndroid Build Coastguard Worker
3*da0073e9SAndroid Build Coastguard Workerimport torch
4*da0073e9SAndroid Build Coastguard Worker
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard Workerdef rounded_linspace(low, high, steps, div):
7*da0073e9SAndroid Build Coastguard Worker    ret = torch.linspace(low, high, steps)
8*da0073e9SAndroid Build Coastguard Worker    ret = (ret.int() + div - 1) // div * div
9*da0073e9SAndroid Build Coastguard Worker    ret = torch.unique(ret)
10*da0073e9SAndroid Build Coastguard Worker    return list(map(int, ret))
11*da0073e9SAndroid Build Coastguard Worker
12*da0073e9SAndroid Build Coastguard Worker
13*da0073e9SAndroid Build Coastguard Workerdef powspace(start, stop, pow, step):
14*da0073e9SAndroid Build Coastguard Worker    start = math.log(start, pow)
15*da0073e9SAndroid Build Coastguard Worker    stop = math.log(stop, pow)
16*da0073e9SAndroid Build Coastguard Worker    steps = int((stop - start + 1) // step)
17*da0073e9SAndroid Build Coastguard Worker    ret = torch.pow(pow, torch.linspace(start, stop, steps))
18*da0073e9SAndroid Build Coastguard Worker    ret = torch.unique(ret)
19*da0073e9SAndroid Build Coastguard Worker    return list(map(int, ret))
20