| |
| |
| |
| |
| |
|
|
| 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() |
|
|