<div dir="ltr">Hello,<div><br></div><div>currently the Cuda kernel uses the same launch bounds for Pascal (SM 6.x) as for Maxwell (SM 5.x) hardware, that is 63 registers for branched path tracing and 48 registers for path tracing. Are all of those derived from benchmarks or is the value for Pascal just being carried over from Maxwell?</div><div><br></div><div>The reason I'm asking is that I'm observing a performance increase on Pascal when I increase the number of registers to 64 for path tracing. Here are before/after benchmarks from a GTX 1080Ti/Win10:</div><div><br></div><div><div>48 registers (as is):</div><div>BMW: 1m52</div><div>Classroom: 3m31s</div><div>Fishy Cat: 4m33s</div><div>Koro: 8m30s</div><div>Pavillion: 7m39s</div></div><div><br></div><div><div>64 registers:</div><div>BMW: 1m36s</div><div>Classroom: 3m34s</div><div>Fishy Cat: 3m57s</div><div>Koro: 6m45s</div><div>Pavillion: 6m39s</div></div><div><br></div><div>With the exception of the classroom scene, all benchmarks show significantly better performance. If there are no objections, I'd like to commit that register increase for SM 6.x to master.</div><div><br></div><div>Running the same test on a Quadro M4000 (Maxwell) shows much smaller differences, so I'd leave SM 5.x as is:</div><div><br></div><div>48 registers (as is):</div><div><div>BMW: 4m38s</div><div>Classroom: 12m32s</div><div>Fishy Cat: 11m18s</div><div>Koro: 20m38s</div><div>Pavillion: 21m12s</div></div><div><br></div><div><div>64 registers:<br></div><div>BMW: 4m38s</div><div>Classroom: 13m07s</div><div>Fishy Cat: 10m52s</div><div>Koro: 18m51s</div><div>Pavillion: 21m32s</div></div><div><br></div><div>Another note: 63 registers was a hard limit for SM 2.x hardware. Is 63 instead of 64 as register limit for kernels SM 3.x and higher just carried over or is there a reason to not go to 64 registers?</div><div><br></div><div>-Stefan</div><div>PS: I'd love it if someone would sacrifice the time to run 48/64 register comparison benchmarks on other Pascal hardware and/or on Linux.</div></div>