| |
| |
| |
| |
| |
|
|
| from itertools import product |
|
|
| import torch |
| from fvcore.common.benchmark import benchmark |
| from tests.test_chamfer import TestChamfer |
|
|
|
|
| def bm_chamfer() -> None: |
| |
| return |
| devices = ["cpu"] |
| if torch.cuda.is_available(): |
| devices.append("cuda:0") |
|
|
| kwargs_list_naive = [] |
| batch_size = [1, 32] |
| return_normals = [True, False] |
| test_cases = product(batch_size, return_normals, devices) |
|
|
| for case in test_cases: |
| b, n, d = case |
| kwargs_list_naive.append( |
| {"batch_size": b, "P1": 32, "P2": 64, "return_normals": n, "device": d} |
| ) |
|
|
| benchmark( |
| TestChamfer.chamfer_naive_with_init, |
| "CHAMFER_NAIVE", |
| kwargs_list_naive, |
| warmup_iters=1, |
| ) |
|
|
| if torch.cuda.is_available(): |
| device = "cuda:0" |
| kwargs_list = [] |
| batch_size = [1, 32] |
| P1 = [32, 1000, 10000] |
| P2 = [64, 3000, 30000] |
| return_normals = [True, False] |
| homogeneous = [True, False] |
| test_cases = product(batch_size, P1, P2, return_normals, homogeneous) |
|
|
| for case in test_cases: |
| b, p1, p2, n, h = case |
| kwargs_list.append( |
| { |
| "batch_size": b, |
| "P1": p1, |
| "P2": p2, |
| "return_normals": n, |
| "homogeneous": h, |
| "device": device, |
| } |
| ) |
| benchmark(TestChamfer.chamfer_with_init, "CHAMFER", kwargs_list, warmup_iters=1) |
|
|
|
|
| if __name__ == "__main__": |
| bm_chamfer() |
|
|