added render CUDA kernel telemetries

This commit is contained in:
Tomas Dougan 2025-04-30 17:39:33 -04:00
parent 4be62a26b9
commit db60836c44
2 changed files with 19 additions and 6 deletions

View File

@ -88,7 +88,7 @@ def render(viewpoint_camera, pc : GaussianModel, pipe, bg_color : torch.Tensor,
# Rasterize visible Gaussians to image, obtain their radii (on screen).
if separate_sh:
rendered_image, radii, depth_image = rasterizer(
rendered_image, radii, depth_image, k1_time, k2_time = rasterizer(
means3D = means3D,
means2D = means2D,
dc = dc,
@ -99,7 +99,7 @@ def render(viewpoint_camera, pc : GaussianModel, pipe, bg_color : torch.Tensor,
rotations = rotations,
cov3D_precomp = cov3D_precomp)
else:
rendered_image, radii, depth_image = rasterizer(
rendered_image, radii, depth_image, k1_time, k2_time = rasterizer(
means3D = means3D,
means2D = means2D,
shs = shs,
@ -122,7 +122,9 @@ def render(viewpoint_camera, pc : GaussianModel, pipe, bg_color : torch.Tensor,
"viewspace_points": screenspace_points,
"visibility_filter" : (radii > 0).nonzero(),
"radii": radii,
"depth" : depth_image
"depth" : depth_image,
"k1_time" : k1_time,
"k2_time" : k2_time
}
return out

View File

@ -130,7 +130,6 @@ def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoi
# Loss
bp_start.record()
gt_image = viewpoint_cam.original_image.cuda()
Ll1 = l1_loss(image, gt_image)
@ -155,6 +154,8 @@ def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoi
else:
Ll1depth = 0
bp_start.record()
loss.backward()
bp_end.record()
@ -173,7 +174,15 @@ def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoi
progress_bar.close()
# Log and save
training_report(tb_writer, iteration, Ll1, loss, l1_loss, iter_start.elapsed_time(iter_end), render_start.elapsed_time(render_end), bp_start.elapsed_time(bp_end), testing_iterations, scene, render, (pipe, background, 1., SPARSE_ADAM_AVAILABLE, None, dataset.train_test_exp), dataset.train_test_exp)
iter_elapsed = iter_start.elapsed_time(iter_end)
render_elapsed = render_start.elapsed_time(render_end)
bp_elapsed = bp_start.elapsed_time(bp_end)
k1_elapsed = render_pkg["k1_time"]
k2_elapsed = render_pkg["k2_time"]
training_report(tb_writer, iteration, Ll1, loss, l1_loss, iter_elapsed, render_elapsed, bp_elapsed, k1_elapsed, k2_elapsed, testing_iterations, scene, render, (pipe, background, 1., SPARSE_ADAM_AVAILABLE, None, dataset.train_test_exp), dataset.train_test_exp)
if (iteration in saving_iterations):
print("\n[ITER {}] Saving Gaussians".format(iteration))
scene.save(iteration)
@ -229,13 +238,15 @@ def prepare_output_and_logger(args):
print("Tensorboard not available: not logging progress")
return tb_writer
def training_report(tb_writer, iteration, Ll1, loss, l1_loss, iter_elapsed, render_elapsed, bp_elapsed, testing_iterations, scene : Scene, renderFunc, renderArgs, train_test_exp):
def training_report(tb_writer, iteration, Ll1, loss, l1_loss, iter_elapsed, render_elapsed, bp_elapsed, k1_elapsed, k2_elapsed, testing_iterations, scene : Scene, renderFunc, renderArgs, train_test_exp):
if tb_writer:
tb_writer.add_scalar('train_loss_patches/l1_loss', Ll1.item(), iteration)
tb_writer.add_scalar('train_loss_patches/total_loss', loss.item(), iteration)
tb_writer.add_scalar('iter_time', iter_elapsed, iteration)
tb_writer.add_scalar('render_time', render_elapsed, iteration)
tb_writer.add_scalar('bp_time', bp_elapsed, iteration)
tb_writer.add_scalar('k1_time', k1_elapsed, iteration)
tb_writer.add_scalar('k2_time', k2_elapsed, iteration)
# Report test and samples of training set
if iteration in testing_iterations: