SuLvXiangXin / zipnerf-pytorch

Unofficial implementation of ZipNeRF
Apache License 2.0
802 stars 87 forks source link

Add GPU kernel backend to optimize rendering performance #93

Closed zongwave closed 10 months ago

zongwave commented 11 months ago
  1. add abstract class "Backend" to support different GPU accelerators, CUDA or DPCPP.

  2. import inspect module to load CUDA/DPCPP kernel function defined in backends.

  3. add ray_sampling CUDA kernel function, tested training, rendering & evaluation 360_v2 image set on NV3070.

    • rendering performance increased about 17% compared with original pytorch ray_sampling.
    • evaluation average quality keep constantly PSNR:26.922/SSIM:0.8233 V.S. PSNR:26.921/SSIM:0.8233 compared with original pytorch ray_sampling
    • training 360_v2/bicycle stop at PSNR: 23.78, the time spent 2.355hours V.S. 2.363hours
  4. add cast_ray and grid_encoder DPCPP kernel functions.