Tengo un núcleo que usa 17 registros, reducirlo a 16 me daría un 100% de ocupación. Mi pregunta es: ¿existen métodos que puedan usarse para reducir el número o los registros utilizados, excluyendo la reescritura completa de mis algoritmos de una manera diferente? Siempre he asumido que el compilador es mucho más inteligente que yo, así que, por ejemplo, a menudo uso variables adicionales solo por claridad. ¿Estoy equivocado en este pensamiento?Reducción del número de registros utilizados en Kernel CUDA
Tenga en cuenta: Yo sé de los --max_registers (o lo que sea la sintaxis es) bandera, pero el uso de la memoria local sería más perjudicial que una ocupación del 25% inferior (que debería probar esto)
Curiosamente, he intentado salir maxrregcount = 16 y se reduce realmente se utilizó el número de registros que estaba usando a 15 y sin memoria local . ¡Pero en realidad se hizo más lento! ¿Cómo funciona? – zenna
intenta hacer un perfil de tu aplicación. El compilador bien puede presentar algunas travesuras. – Anycorn
La ocupación es más alta con 15 registros como predije y todo lo demás es igual, excepto que el número de instrucciones aumenta con un recuento de registros más bajo. de 3.9M a 4.3M – zenna