Esta respuesta puede ser demasiado tarde, pero vale la pena señalarla de todos modos. GPU Ocelot ( de la cual soy uno de los principales contribuyentes ) se puede compilar sin los controladores de dispositivo CUDA (libcuda.so) instalados si desea utilizar el emulador o los backends LLVM. He demostrado el emulador en sistemas sin GPU NVIDIA.
El emulador intenta implementar fielmente las especificaciones PTX 1.4 y PTX 2.1 que pueden incluir características que las GPU más antiguas no admiten. El traductor LLVM se esfuerza por lograr una traducción correcta y eficiente de PTX a x86 que, con suerte, hará de CUDA una forma eficaz de programar tanto CPU multinúcleo como GPU. -deviceemu
ha sido una característica obsoleta de CUDA durante bastante tiempo, pero el traductor LLVM siempre ha sido más rápido.
Además, varios verificadores de corrección están integrados en el emulador para verificar: los accesos a la memoria alineados, los accesos a la memoria compartida están sincronizados correctamente y la desreferenciación de la memoria global accede a las regiones de memoria asignadas. También hemos implementado un depurador interactivo de línea de comandos inspirado en gran parte por gdb para realizar un solo paso a través de kernels CUDA, establecer puntos de interrupción y puntos de observación, etc. Estas herramientas fueron desarrolladas específicamente para acelerar la depuración de programas CUDA; puede resultarles útil.
Perdón por el aspecto exclusivo de Linux. Hemos comenzado una rama de Windows ( así como un puerto de Mac OS X ) pero la carga de ingeniería ya es lo suficientemente grande como para enfatizar nuestras búsquedas de investigación. Si alguien tiene tiempo e interés, ¡puede desear ayudarnos a brindar soporte para Windows!
Espero que esto ayude.