"vscode:/vscode.git/clone" did not exist on "aad8d128a0107686bd69305e8b44cb140ee370e0"
bm_rasterize_meshes.py 2.28 KB
Newer Older
facebook-github-bot's avatar
facebook-github-bot committed
1
2
3
4
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.


from itertools import product
5

facebook-github-bot's avatar
facebook-github-bot committed
6
7
8
9
import torch
from fvcore.common.benchmark import benchmark
from test_rasterize_meshes import TestRasterizeMeshes

10

facebook-github-bot's avatar
facebook-github-bot committed
11
12
13
14
15
# ico levels:
# 0: (12 verts, 20 faces)
# 1: (42 verts, 80 faces)
# 3: (642 verts, 1280 faces)
# 4: (2562 verts, 5120 faces)
Nikhila Ravi's avatar
Nikhila Ravi committed
16
17
# 5: (10242 verts, 20480 faces)
# 6: (40962 verts, 81920 faces)
facebook-github-bot's avatar
facebook-github-bot committed
18
19
20
21
22
23
24
25
26


def bm_rasterize_meshes() -> None:
    kwargs_list = [
        {
            "num_meshes": 1,
            "ico_level": 0,
            "image_size": 10,  # very slow with large image size
            "blur_radius": 0.0,
Nikhila Ravi's avatar
Nikhila Ravi committed
27
            "faces_per_pixel": 3,
facebook-github-bot's avatar
facebook-github-bot committed
28
29
30
31
32
33
34
35
36
37
38
39
40
        }
    ]
    benchmark(
        TestRasterizeMeshes.rasterize_meshes_python_with_init,
        "RASTERIZE_MESHES",
        kwargs_list,
        warmup_iters=1,
    )

    kwargs_list = []
    num_meshes = [1]
    ico_level = [1]
    image_size = [64, 128]
Nikhila Ravi's avatar
Nikhila Ravi committed
41
42
43
    blur = [1e-6]
    faces_per_pixel = [3, 50]
    test_cases = product(num_meshes, ico_level, image_size, blur, faces_per_pixel)
facebook-github-bot's avatar
facebook-github-bot committed
44
    for case in test_cases:
Nikhila Ravi's avatar
Nikhila Ravi committed
45
        n, ic, im, b, f = case
facebook-github-bot's avatar
facebook-github-bot committed
46
        kwargs_list.append(
Nikhila Ravi's avatar
Nikhila Ravi committed
47
48
49
50
51
52
53
            {
                "num_meshes": n,
                "ico_level": ic,
                "image_size": im,
                "blur_radius": b,
                "faces_per_pixel": f,
            }
facebook-github-bot's avatar
facebook-github-bot committed
54
55
56
57
58
59
60
61
62
63
        )
    benchmark(
        TestRasterizeMeshes.rasterize_meshes_cpu_with_init,
        "RASTERIZE_MESHES",
        kwargs_list,
        warmup_iters=1,
    )

    if torch.cuda.is_available():
        kwargs_list = []
Nikhila Ravi's avatar
Nikhila Ravi committed
64
65
        num_meshes = [8, 16]
        ico_level = [4, 5, 6]
facebook-github-bot's avatar
facebook-github-bot committed
66
        image_size = [64, 128, 512]
Nikhila Ravi's avatar
Nikhila Ravi committed
67
68
69
70
        blur = [1e-6]
        faces_per_pixel = [50]
        test_cases = product(num_meshes, ico_level, image_size, blur, faces_per_pixel)

facebook-github-bot's avatar
facebook-github-bot committed
71
        for case in test_cases:
Nikhila Ravi's avatar
Nikhila Ravi committed
72
            n, ic, im, b, f = case
facebook-github-bot's avatar
facebook-github-bot committed
73
74
75
76
77
78
            kwargs_list.append(
                {
                    "num_meshes": n,
                    "ico_level": ic,
                    "image_size": im,
                    "blur_radius": b,
Nikhila Ravi's avatar
Nikhila Ravi committed
79
                    "faces_per_pixel": f,
facebook-github-bot's avatar
facebook-github-bot committed
80
81
82
83
84
85
86
87
                }
            )
        benchmark(
            TestRasterizeMeshes.rasterize_meshes_cuda_with_init,
            "RASTERIZE_MESHES_CUDA",
            kwargs_list,
            warmup_iters=1,
        )