2010-02-14 33 views
20

escribí un programa cuda y lo estoy probando en ubuntu como una máquina virtual. La razón para esto es que tengo Windows 7, no quiero instalar Ubuntu como un sistema operativo secundario, y necesito usar un sistema operativo Linux para probar. mi pregunta es: ¿limitará la máquina virtual los recursos de gpu? Entonces, ¿mi código cuda será más rápido si lo ejecuto en mi sistema operativo principal que si lo ejecutara en una máquina virtual?programa cuda en VMware

+1

Creo que tendrías suerte si funcionó en VM. Puede hacer el desarrollo de CUDA en Windows 7. Si por alguna razón eso es un problema, si está usando desarrollo y no en un entorno de producción, ¿por qué no usar la función de emulación? – dangerstat

+0

necesito resultados precisos de velocidad de mi algoritmo de cuda. ya funciona bajo VM, pero no estoy seguro si estoy usando los recursos de gpu completos (debido a VM). – scatman

+0

En la máquina virtual debería ejecutarse en modo de emulación, ejecutar deviceQuery (desde el SDK) o llamar a cudaGetDeviceProperties para verificar. – Tom

Respuesta

19

Lamentablemente, la máquina virtual simula un dispositivo gráfico y, como tal, no tendrá acceso a la GPU real. Esto se debe a la forma en que la virtualización maneja múltiples máquinas virtuales que acceden al mismo dispositivo: proporciona una capa intermedia para compartir el dispositivo real.

Es posible obtener acceso verdadero al hardware, pero solo si tiene la combinación correcta de software y hardware, consulte el SLI Multi-OS site para obtener más información.

por lo que está probablemente fuera de suerte con la ruta de virtualización - si realmente no puede ejecutar su aplicación en Windows, entonces usted está limitado a lo siguiente:

  1. poco realista: Instalar Linux en lugar
  2. poco realista: Instalar Linux dentro (no es una opción)
  3. de arranque en un CD en vivo, se puede preparar una imagen de disco con CUDA y montar la imagen cada vez
  4. de instalación (o pedir/préstamo) una caja separada con Linux y acceder de forma remota
2

A partir de CUDA 3.1 está capacidades de virtualización no son vivos, por lo que el único enfoque útil es ejecutar programas CUDA directamente en el objetivo HW + SW

10

solo oí una charla en la conferencia de tecnología GPU de NVIDIA por un investigador llamado Xiaohui Cui (Laboratorio Nacional de Oak Ridge). Entre otras cosas, describió el acceso a las GPU desde máquinas virtuales usando algo llamado gVirtuS. Él no creó gVirtuS, sino que lo describió como un controlador de código abierto "virtual cuda". Ver el siguiente enlace: http://osl.uniparthenope.it/projects/gvirtus/

No he probado gVirtuS, pero parece que podría hacer lo que quiera.

17

Me enfrenté a una tarea similar una vez. Lo que terminé haciendo fue instalar Ubuntu en una memoria USB de 8GB con el modo persistente habilitado.

Eso me dio 4 GB para instalar CUDA y todo lo demás que necesitaba.

Tener un dispositivo USB de arranque puede ser muy útil. Recomiendo leer this.

Además, this link tiene un material muy interesante si está buscando otras distribuciones.

2

Use rCUDA para agregar una GPU virtual a su máquina virtual.

+2

A partir del 30 de noviembre de 2012, la versión estable actual (v3.2), así como la versión beta del Las nuevas distribuciones de rCUDA 4 Windows y Linux no son interoperables. Además, las versiones de 32 y 64 bits aún no son interoperables. Esto significa que una VM Linux que se ejecuta en un host de Windows no puede usar rCUDA. – SmileAndNod

+0

rCUDA no parece ser de código abierto (el sitio web tiene un formulario de solicitud de software) y no parece ser compatible con todos los linux como arch Linux. – simonzack