|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
from itertools import product |
|
|
|
import torch |
|
from fvcore.common.benchmark import benchmark |
|
from tests.test_rasterize_meshes import TestRasterizeMeshes |
|
|
|
BM_RASTERIZE_MESHES_N_THREADS = os.getenv("BM_RASTERIZE_MESHES_N_THREADS", 1) |
|
torch.set_num_threads(int(BM_RASTERIZE_MESHES_N_THREADS)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def bm_rasterize_meshes() -> None: |
|
kwargs_list = [ |
|
{ |
|
"num_meshes": 1, |
|
"ico_level": 0, |
|
"image_size": 10, |
|
"blur_radius": 0.0, |
|
"faces_per_pixel": 3, |
|
} |
|
] |
|
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, 512] |
|
blur = [1e-6] |
|
faces_per_pixel = [3, 50] |
|
test_cases = product(num_meshes, ico_level, image_size, blur, faces_per_pixel) |
|
for case in test_cases: |
|
n, ic, im, b, f = case |
|
kwargs_list.append( |
|
{ |
|
"num_meshes": n, |
|
"ico_level": ic, |
|
"image_size": im, |
|
"blur_radius": b, |
|
"faces_per_pixel": f, |
|
} |
|
) |
|
benchmark( |
|
TestRasterizeMeshes.rasterize_meshes_cpu_with_init, |
|
"RASTERIZE_MESHES", |
|
kwargs_list, |
|
warmup_iters=1, |
|
) |
|
|
|
if torch.cuda.is_available(): |
|
kwargs_list = [] |
|
num_meshes = [8, 16] |
|
ico_level = [4, 5, 6] |
|
|
|
image_size = [64, 128, 512, (512, 256), (256, 512)] |
|
blur = [1e-6] |
|
faces_per_pixel = [40] |
|
test_cases = product(num_meshes, ico_level, image_size, blur, faces_per_pixel) |
|
|
|
for case in test_cases: |
|
n, ic, im, b, f = case |
|
kwargs_list.append( |
|
{ |
|
"num_meshes": n, |
|
"ico_level": ic, |
|
"image_size": im, |
|
"blur_radius": b, |
|
"faces_per_pixel": f, |
|
} |
|
) |
|
benchmark( |
|
TestRasterizeMeshes.rasterize_meshes_cuda_with_init, |
|
"RASTERIZE_MESHES_CUDA", |
|
kwargs_list, |
|
warmup_iters=1, |
|
) |
|
|
|
|
|
|
|
kwargs_list = [] |
|
num_meshes = [8, 16] |
|
|
|
image_size = [64, 128, 512, (512, 256), (256, 512)] |
|
dist = [3, 0.8, 0.5] |
|
test_cases = product(num_meshes, dist, image_size) |
|
|
|
for case in test_cases: |
|
n, d, im = case |
|
kwargs_list.append( |
|
{ |
|
"num_meshes": n, |
|
"ico_level": 4, |
|
"image_size": im, |
|
"blur_radius": 1e-6, |
|
"faces_per_pixel": 40, |
|
"dist": d, |
|
} |
|
) |
|
|
|
benchmark( |
|
TestRasterizeMeshes.bm_rasterize_meshes_with_clipping, |
|
"RASTERIZE_MESHES_CUDA_CLIPPING", |
|
kwargs_list, |
|
warmup_iters=1, |
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
bm_rasterize_meshes() |
|
|