CUDA compile error with `prb_projective` using `'guiding': 'octree'`
LinasBeres opened this issue · 0 comments
Summary
CUDA compile error with prb_projective
using 'guiding': 'octree'
.
Error:
Critical Dr.Jit compiler failure: jit_optix_compile(): optixModuleGetCompilationState() indicates that the compilation did not complete succesfully. The module's compilation state is: 0x2363
System configuration
System information:
OS: Fedora Linux 39 (Workstation Edition)
CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
GPU: NVIDIA GeForce GTX 1080
Python: 3.12.5 (main, Aug 7 2024, 00:00:00) [GCC 13.3.1 20240522 (Red Hat 13.3.1-1)]
NVidia driver: 560.35.03
LLVM: 17.0.6
Dr.Jit: 0.4.6
Mitsuba: 3.5.2
Is custom build? False
Compiled with: GNU 10.2.1
Variants:
scalar_rgb
scalar_spectral
cuda_ad_rgb
llvm_ad_rgb
Description
Created a simple test for the projective prb integrator where a wall is moved slightly and then try to optimise the position of the wall from a reference image.
Note that there is no error when using a grid
or none
as the guiding structure.
I can also provide the stderr
if need be.
Steps to reproduce
Run the following program in the mitsuba 3 repo.
import os
import drjit as dr
import mitsuba as mi
mi.set_variant('cuda_ad_rgb')
scene = mi.load_file(os.path.join(os.getcwd(), 'tutorials/scenes/cbox.xml'))
image_ref = mi.render(scene)
params = mi.traverse(scene)
key = 'greenwall.vertex_positions'
initial_to_world = dr.unravel(mi.Point3f, params[key])
def apply_transformation(params, opt):
opt['trans'] = dr.clamp(opt['trans'], -0.5, 0.5)
trafo = mi.Transform4f.translate([opt['trans'].x, opt['trans'].y, opt['trans'].z])
params[key] = dr.ravel(trafo @ initial_to_world)
params.update()
opt = mi.ad.Adam(lr=0.025)
opt['trans'] = mi.Point3f(1,0,1)
apply_transformation(params, opt)
integrator = mi.load_dict({
'type': 'prb_projective',
'guiding': 'octree',
})
iteration_count = 20
for it in range(iteration_count):
apply_transformation(params, opt)
image = mi.render(scene, params, seed=it, integrator=integrator)
loss = dr.sum(dr.sqr(image - image_ref)) / len(image)
dr.backward(loss)
opt.step()