Skip to content

Latest commit

 

History

History
 
 

smallpt

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Global Illumination Renderer (SmallPT) Benchmark

Introduction

SmallPT is a global illumination renderer uses path tracing. Inspired by Kevin Beason's smallpt: Global Illumination in 99 lines of C++. In this benchmark, we compare the performance of Taichi with a CUDA implementation. The measured CUDA implementation is based on an open-source implementation named smallptCuda. The Taichi version is from one of our Taichi developers' implementation path tracing. The two implementations are functional equivalent.

Evaluation

We conduct performance evaluation on the following device.

Device Nvidia RTX 3080 (10GB)
FP32 performance 29700 GFLOPS
Memory bandwidth 760 GB/s
L2 cache capacity 5 MB
Driver version 470.57.02
CUDA version 11.4

The experiments are executed with the following parameters: Image size 1024 by 768, sample on unit sphere surface, max depth (bounce) is 10. The performance is measured in frames per second (fps), with different samples per pixel configured.

Reproduction Steps

  • Pre-requisites
python3 -m pip install --upgrade taichi
python3 -m pip install matplotlib

If you want to compare with CUDA, make sure you have nvcc properly installed.

  • Run the benchmark and draw the plots
python3 plot_benchmark.py