Esta resposta pode ser tarde demais, mas vale a pena notar de qualquer maneira. O GPU Ocelot ( do qual eu sou um dos principais contribuidores ) pode ser compilado sem drivers de dispositivo CUDA (libcuda.so) instalados se você deseja usar o emulador ou backends LLVM. Eu demonstrei o emulador em sistemas sem GPUs NVIDIA.
O emulador tenta implementar fielmente as especificações PTX 1.4 e PTX 2.1, que podem incluir recursos que GPUs mais antigos não suportam. O tradutor LLVM se esforça para uma tradução correta e eficiente de PTX para x86, o que tornará o CUDA uma maneira eficaz de programar CPUs multicore, bem como GPUs. -deviceemu
tem sido um recurso obsoleto do CUDA há algum tempo, mas o tradutor LLVM sempre foi mais rápido.
Além disso, vários verificadores de correção são incorporados ao emulador para verificar: acessos de memória alinhados, acessos à memória compartilhada estão devidamente sincronizados e desreferenciamento de memória global acessa regiões alocadas de memória. Também implementamos um depurador interativo de linha de comando inspirado em grande parte pelo gdb para uma única etapa através de kernels CUDA, definir pontos de interrupção e pontos de controle, etc ... Essas ferramentas foram desenvolvidas especificamente para acelerar a depuração de programas CUDA; você pode achá-los úteis.
Desculpe pelo aspecto apenas do Linux. Começamos uma ramificação do Windows ( bem como uma porta do Mac OS X ), mas a carga de engenharia já é grande o suficiente para estressar nossas pesquisas. Se alguém tiver algum tempo e interesse, pode nos ajudar a fornecer suporte para o Windows!
Espero que isto ajude.