Pregunta

Ahora CUDA permite la asignación dinámica de la memoria global. Sin embargo, no pude encontrar ninguna referencia a la escalabilidad de esa función malloc: ¿es mejor que, por ejemplo, asignar previamente un trozo de memoria y luego simplemente asignar la siguiente tirada de memoria a un hilo incrementando atómicamente un número entero global? Este último funciona la solución "hechos en casa", pero hay un problema obvio con la escalabilidad, así que me pregunto si malloc se encarga de que de alguna manera.

¿Fue útil?

Solución

Creo que mientras el "hecho en casa" solución podría ser tan bueno en la actualidad, a pesar de llamadas simultáneas a un número entero mundial podrían reducir la velocidad, Malloc sería mi elección.

Esto es debido a que permite Nvidia lidiar con el dolor de cabeza de la escalabilidad y para hacer mejoras, ya sea en la implementación de hardware o software, que puede aprovechado con sólo volver a compilar el código en una fecha posterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top