mitsuba-renderer / mitsuba2

Mitsuba 2: A Retargetable Forward and Inverse Renderer
Other
2.05k stars 267 forks source link

[πŸ› bug report] rt_check(): OptiX API error = 7900 (CUDA error) in ../src/librender/scene_optix.inl:66 #350

Open justanhduc opened 3 years ago

justanhduc commented 3 years ago

Summary

I compiled successfully gpu_spectral. Upon running, I got this issue. CPU rendering works fine.

System configuration

For bug report, please enter information regarding your system configuration<- [remove this]

Updates: added CUDA version

Speierers commented 3 years ago

Hi @justanhduc ,

I will need more information to debug this issue. What is the scene you are rendering here? Are you rendering it from the command line?

As a sanity check, could you try to decrease the resolution of the film, and/or the samples_per_pixel parameter to see if this solves your issue?

justanhduc commented 3 years ago

Hi @Speierers. I decreased the resolution and samples_per_pixel but the problem persists. I am trying to render a point cloud from command line. You can find the xml file attached here. The full output stack is like this

2020-12-10 16:16:47 INFO  main  [mitsuba.cpp:218] Mitsuba version 2.2.1 (master[76445e90], Linux, 64bit, 4 threads, 8-wide SIMD)
2020-12-10 16:16:47 INFO  main  [mitsuba.cpp:219] Copyright 2020, Realistic Graphics Lab, EPFL
2020-12-10 16:16:47 INFO  main  [mitsuba.cpp:220] Enabled processor features: cuda avx2 avx fma f16c sse4.2 x86_64
2020-12-10 16:16:47 INFO  main  [xml.cpp:1221] Loading XML file "pointcloud.xml" ..
2020-12-10 16:16:47 INFO  main  [xml.cpp:1222] Using variant "gpu_spectral"
2020-12-10 16:16:47 INFO  main  [xml.cpp:355] "pointcloud.xml": in-memory version upgrade (v2.0.0 -> v2.2.1) ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/srgb.so" ..
2020-12-10 16:16:47 INFO  main  [srgb.cpp:22] Loading spectral upsampling model "data/srgb.coeff" .. 
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/srgb_d65.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/d65.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/regular.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/path.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/ldsampler.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/gaussian.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/hdrfilm.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/perspective.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/roughplastic.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/diffuse.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/sphere.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/rectangle.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/area.so" ..
2020-12-10 16:16:47 INFO  main  [PluginManager] Loading plugin "plugins/uniform.so" ..
2020-12-10 16:16:47 INFO  main  [Scene] Building scene in OptiX ..
rt_check(): OptiX API error = 7900 (CUDA error) in ../src/librender/scene_optix.inl:66.

THanks! pointcloud.xml.zip

Update: My GPU is GeForce GTX 1050, if it might help.

Speierers commented 3 years ago

This issue seems to be related to the bery high number of spheres in the scene. I can successfully render this scene when cutting the point cloud in half. The upcoming version of Mitsuba 2 (including a complete redesing of the enoki backend) handles this much better.

I doubt I will be able to fix this before the next year. I would recommend that you take a look into implementing your own "pointcloud" Shape plugin with dedicated Optix instructions. This should be more efficient and should solve your issue.

Otherwise maybe you could use a smaller point cloud in the meantime?

justanhduc commented 3 years ago

Hi @Speierers. Thanks for your feedback. Still, I got the error even with a point cloud of 10 points and 4 samples. DId you change anything else besides the number of points?

Speierers commented 3 years ago

No this works on my end. Can you even render a single sphere shape with the gpu_* variant?

justanhduc commented 3 years ago

No. I tried both gpu_spectral and gpu_rgb even with 1 point but this error keeps showing.

Speierers commented 3 years ago

Could you maybe try with CUDA 11?

justanhduc commented 3 years ago

I tried with CUDA 10.1, 10.2 and 11 and had no luck. I tried to install on a server but I suddenly got this weird CUDA compilation error

FAILED: ext_build/enoki/CMakeFiles/enoki-cuda.dir/src/cuda/jit.cu.o 
/home/justanhduc/cuda/cuda-10.2/bin/nvcc -forward-unknown-to-host-compiler -DENOKI_AUTODIFF=1 -DENOKI_BUILD=1 -DENOKI_CUDA=1 -DENOKI_CUDA_COMPUTE_CAPABILITY=50 -DTHRUST_IGNORE_CUB_VERSION_CHECK -Denoki_cuda_EXPORTS -I/usr/include/libcxxabi -I../ext/enoki/include -I../ext/enoki/ext/cub -gencode arch=compute_50,code=compute_50 -Xcompiler -fvisibility=hidden -DNDEBUG -O3 -DNDEBUG -Xcompiler=-fPIC -std=c++14 -MD -MT ext_build/enoki/CMakeFiles/enoki-cuda.dir/src/cuda/jit.cu.o -MF ext_build/enoki/CMakeFiles/enoki-cuda.dir/src/cuda/jit.cu.o.d -x cu -c ../ext/enoki/src/cuda/jit.cu -o ext_build/enoki/CMakeFiles/enoki-cuda.dir/src/cuda/jit.cu.o
../ext/enoki/src/cuda/jit.cu:84:49: error: array must be initialized with a brace-enclosed initializer
../ext/enoki/src/cuda/jit.cu:84:49: error: too many initializers for β€˜std::array<unsigned int, 3ul>’

Is there a known bug or should I open another issue? The server is Ubuntu 16.04.

Speierers commented 3 years ago

I don't think we have ever tested this version of Mitsuba 2 on Ubuntu 16.04.

Regarding the Optix error, could you compile Mitsuba in Debug mode and share the output log. This would really help figuring out what's going on as I can't reproduce this error on my machine.

justanhduc commented 3 years ago

Hi. Sorry for the late reply. Do you mean the compile log or the log generated when I run rendering? Where can I find it btw?

Speierers commented 3 years ago

Here I meant the runtime log to better understand what this Optix error is about.