A parte no tópico: sim, você pode rodar uma máquina virtual no Ubuntu.
CUDA requer acesso direto ao hardware. Isso significa que você terá que executar o Windows diretamente no hardware ou em um mecanismo de virtualização que permita que uma máquina virtual acesse dispositivos de hardware diretamente. Isso significa virtualização baseada em hipervisor. VirtualBox está definitivamente fora. O Google sugere que o Xen fará isso.
A execução de uma única instalação do Windows em diferentes configurações de hardware (como o bare metal e uma máquina virtual) é notoriamente difícil. Se você realmente não quiser instalar o Windows, talvez prefira executar o Ubuntu em uma VM no Windows.
Não está claro, a partir de sua pergunta, se você também deseja executar programas CUDA no Ubuntu. Se você fizer isso, você pode inicializar sua instalação existente em praticamente qualquer hardware, há pouca ou nenhuma configuração necessária. Isso requer um sistema de virtualização que possa ligar uma partição de disco dentro de uma VM, o que eu acho que o VMWare pode fazer, mas não o VirtualBox. (Também é possível com o VirtualBox criando um initrd personalizado com o módulo vboxsfs
, mas não é mais necessário nenhum setup. Um método alternativo é clonar a partição do sistema para um disco de máquina virtual.) ADICIONADO: Você pode querer investigar AndLinux , que é uma porta do Ubuntu para CoLinux , uma porta Linux em execução no Windows; Eu não sei se o CoLinux pode suportar CUDA.
Dado seu fluxo de trabalho, acho que sua melhor aposta é Xen. Se isso não funcionar, para que você precise de inicialização dupla, observe que ambos os sistemas suportam a hibernação, portanto, com a configuração correta, você pode alternar com relativa rapidez entre os dois (sem precisar fazer logon, reiniciar todos os programas etc.).