2010-12-03 29 views
7

? Esta es una pregunta bastante simple, pero Google no parece tener la respuesta, entonces.¿Es posible ejecutar un kernel cuda en múltiples gpus

Lo que quiero saber es si tengo dos tarjetas gpu (idénticas) capaces de ejecutar cuda, ¿puede mi kernel extender estas tarjetas? ¿O está vinculado a una carta u otra? Es decir. se presenta cuda con todo el conjunto de núcleos de GPU disponibles, o solo los que están en la tarjeta en la que se ejecuta.

Si es así, ¿hay algo especial que necesite saber para que esto suceda y hay ejemplos más allá del cuda sdk que vale la pena conocer?

El idioma de destino es, por supuesto, C/C++.

Gracias de antemano.

Respuesta

4

Un único lanzamiento de núcleo CUDA está vinculado a una sola GPU. Para usar múltiples GPU, se requerirán múltiples lanzamientos de kernel.

El tiempo de ejecución del dispositivo cuda API focuses on whichever device is selected. Cualquier lanzamiento del núcleo determinado se pondrá en marcha en cualquier dispositivo más recientemente fue seleccionado usando cudaSetDevice()

Ejemplos de programación multi-GPU se dan en las muestras cuda simple multi-gpu with P2P y simple multi-gpu

Cuestiones relacionadas