Hello, I’m testing OptiX-IR instead of PTX input.
I have found that kernels compiled as OptiX-IR for debugging make the isnan() function in kernels not working.
“Debuggable” here means the pipeline and the module are compiled/linked with OPTIX_COMPILE_OPTIMIZATION_LEVEL_0 / OPTIX_COMPILE_DEBUG_LEVEL_FULL, and OptiX-IR uses -G -O0 and PTX uses -lineinfo as compile options.
I made a very simple reproducer.
This repro runs the same kernel with 4 configurations (Release ptx, Release optix-ir, Debuggable ptx, Debuggable optix-ir).
The kernel simply print a NaN:
Hey BTW I completely forgot to ask about workarounds.
Are you unblocked and able to continue working by using the test (v != v) in place of isnan(v)? I tried this on your reproducer, and it reports a correct “1” for all cases including the OptiX-IR+Debug config. I just wanted to make sure there isn’t more to it, and that this bug isn’t blocking your development.
OptiX-IR bug is not the blocker for me since we can still use ptx as the input. However OptiX-IR seems not ready as the default input because this bug made me feel there are other potential weird behaviors with other things than isnan() and it also has another bug I reported as you know … :(
Well, debugging with OptiX-IR seems still beta according to the release note though.
I can wait for now for the fixed driver and/or the next OptiX update (and I’m looking forward to see how OptiX API looks like to support OMM and DMM for Ada-Lovelace :) )