2009-10-18 11 views

Respuesta

5

Voy a usar la terminología de CUDA aquí.

scattered write significa que usted está escribiendo el uno del hilo de CUDA a una dirección arbitraria (es decir. Los hilos de urdimbre su no escribirán en la memoria consecutiva, por ejemplo). Contrasta con las escrituras frame-buffer, que son coherentes en 2d, y pueden ser fusionadas por el hardware. Esas fueron las únicas escrituras disponibles para GPU hasta hace no mucho.

Ellos son la operación inversa de un gather read, que lee los datos de ubicación dispersa, y reúne todos ellos antes de la urdimbre de hilos de ejecución de un modo SIMD en los datos recopilados. Sin embargo, las lecturas de recopilación han estado disponibles durante mucho tiempo en GPU a través de búsquedas arbitrarias de texturas.

5

La escritura dispersa es excelente porque le permite escribir en cualquier dirección de memoria. Las impedancias de sombreado anteriores generalmente estaban limitadas en las direcciones de memoria en las que un programa de sombreador podría escribir.

"Considerando que los programas de fragmentos de API de gráficos se limitan a dar salida a 32 flotadores (RGBA * 8 objetivos de renderización) en un lugar previamente especificado, CUDA soporta las escrituras dispersas -., Es decir, un número ilimitado de tiendas a cualquier dirección Esto permite que muchos de los nuevos algoritmos que no eran posibles usando gráficos API para realizar de manera eficiente usando CUDA"

Desde el FAQ CUDA:

http://forums.nvidia.com/index.php?s=fd8a3833d78a50e273c5c731476eed0d&showtopic=84440&pid=478583&start=0&#entry478583

Básicamente se hace programas CUDA más fácil de escribir porque no son tan limitados por donde puede escribir resultados Tenga en cuenta que una de las claves para obtener un buen rendimiento en una GPU es explotar la localidad de memoria. El uso excesivo de escrituras dispersas escribiendo en la memoria global probablemente afecte su rendimiento.

+0

que todavía está presente en la "memoria del dispositivo", ¿verdad? (a diferencia de las operaciones de dispersión/recopilación de E/S que permitirían que un motor DMA dirija el contenido desde la ubicación de la memoria principal diferente a, por ejemplo, una sola banda de E/S) – PypeBros

+0

Correcto. Esto se refiere a la memoria en la GPU, no en la memoria global. –

Cuestiones relacionadas