Assertion failure at line 2616 of …/…/be/cg/NVISA/cgtarget.cxx:
Compiler Error in file /tmp/xxx.cpp3.i during Register Allocation phase:
ran out of registers in predicate
One interesting thing is that when I add more and complicate logic into the kernel function (in fact, 10000+ more lines in .ptx file), the compiler tells me:
“compiler may run out of memory or run very slowly”
However, it does not throw the " ran out of registers in predicate" error anymore, and the compilation finishes correctly.
I am wondering what’s the assertion here, it seems like unreasonable because when i uses a relative simple logic in the kernel function, it gives me “ran out of registers”, but when i add (not replace, just add some new computation, the original still exists) more logic, this assertion failure gone.
An assertion error of this nature indicates that there is a problem inside the compiler. You did not mention what version of CUDA you are using. If this problem reproduces with the CUDA 3.1 toolchain it would be helpful if you could file a bug if you are a registered developer. If you are not a registered developer, would it be possible to post a self-contained program that reproduces the error? I could take a look at it and file a compiler bug if necessary.