Evaluación de generación de números pseudoaleatorios en tarjetas GPU
Autores: Askar, Tair; Shukirgaliyev, Bekdaulet; Lukac, Martin; Abdikamalov, Ernazar
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Evaluación de generación de números pseudoaleatorios en tarjetas GPU
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Sistemas
Palabras clave
Métodos de Monte Carlo
Generadores de números pseudoaleatorios
Biblioteca curand
Tarjetas GPU de Nvidia
Método de aceptación-rechazo
Implementaciones híbridas GPU/CPU
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 19
Citaciones: Sin citaciones
Los métodos de Monte Carlo dependen de secuencias de números aleatorios para obtener soluciones a muchos problemas en ciencia e ingeniería. En este trabajo, evaluamos el rendimiento de diferentes generadores de números pseudoaleatorios (PRNGs) de la biblioteca Curand en una serie de tarjetas GPU modernas de Nvidia. Como prueba numérica, generamos secuencias de números pseudoaleatorios (PRN) y obtenemos distribuciones no uniformes utilizando el método de aceptación-rechazo. Consideramos implementaciones de GPU, CPU y CPU/GPU híbrida. Para la GPU, también consideramos dos implementaciones diferentes utilizando las interfaces de programación de aplicaciones (API) del host y del dispositivo. Estudiamos cómo el rendimiento depende de los parámetros de implementación, incluido el número de hilos por bloque y el número de bloques por multiprocesador de transmisión. Para lograr el rendimiento más rápido, se debe minimizar el tiempo consumido por la configuración de la semilla del PRNG y la actualización del estado. La duración del tiempo de configuración de la semilla aumenta con el número de hilos, mientras que la actualización del estado del PRNG disminuye. Por lo tanto, el rendimiento más rápido se logra mediante el equilibrio óptimo de estos efectos opuestos.
Descripción
Los métodos de Monte Carlo dependen de secuencias de números aleatorios para obtener soluciones a muchos problemas en ciencia e ingeniería. En este trabajo, evaluamos el rendimiento de diferentes generadores de números pseudoaleatorios (PRNGs) de la biblioteca Curand en una serie de tarjetas GPU modernas de Nvidia. Como prueba numérica, generamos secuencias de números pseudoaleatorios (PRN) y obtenemos distribuciones no uniformes utilizando el método de aceptación-rechazo. Consideramos implementaciones de GPU, CPU y CPU/GPU híbrida. Para la GPU, también consideramos dos implementaciones diferentes utilizando las interfaces de programación de aplicaciones (API) del host y del dispositivo. Estudiamos cómo el rendimiento depende de los parámetros de implementación, incluido el número de hilos por bloque y el número de bloques por multiprocesador de transmisión. Para lograr el rendimiento más rápido, se debe minimizar el tiempo consumido por la configuración de la semilla del PRNG y la actualización del estado. La duración del tiempo de configuración de la semilla aumenta con el número de hilos, mientras que la actualización del estado del PRNG disminuye. Por lo tanto, el rendimiento más rápido se logra mediante el equilibrio óptimo de estos efectos opuestos.