Q:

Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico?

Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada.
Recentemente descobri uma configuração que melhora absurdamente o desempenho da VM:

Habilitar aceleração de vídeo 3D;
Aumentar a memória de vídeo de ~8MB para 128MB.

Depois que alterei apenas essas duas opções, fiquei com a impressão que tudo ficou umas 5 vezes (!) mais rápido: boot do sistema operacional, execução dos teste do Rails e até mesmo o desempenho das aplicações Rails mesmo.
Me surpreendeu, porque eu sempre achei que aceleração 3D servia apenas para coisas gráficas como jogos, ferramentas de CAD, interface gráfica do Sistema Operacional, etc., mas na VM eu não uso nada gráfico.
O acontecimento acima me trouxe a dúvida se o processamento não-gráfico também pode se beneficiar da aceleração 3D, e porque isso acontece.

A:

Operações de vídeo são custosas. Gamers que criticam artefatos de ruptura (tearing) a 60FPS não têm idéia da complexidade das operações sendo realizadas pela GPU.
Mas nós somos vítimas deste efeito também. Estamos tão acostumados a processamentos de conteúdo visual especializado que não nos damos conta que as GPUs de hoje em dia são ordens de magnitude mais rápidas do que as CPUs - 120 vezes (12.000 %!) de acordo com a NVidia, 16 vezes de acordo com a Intel. Mesmo GPUs embarcadas (como cores extras ou processadores individuais) são, para operações de rasterização, mais rápidas.
Dependendo da implementação do ambiente em uma máquina virtual, as chamadas de funções que sofreriam offload para a GPU em uma máquina física são interpretadas pela CPU, em um processo que não é otimizado para velocidade.
Essas operações entram na mesma 'fila' de execução das instruções normais, resultando assim em uma considerável perda de performance.
Quando a aceleração de vídeo é habilitada você está permitindo que instruções para interfaces de instrumentação 3D conhecidas (OpenGL, DirectX, etc.) sejam utilizadas. Emuladores podem assim interceptar essas chamadas, e decidir se repassam as operações 3D para o host nativo ou se simplesmente as ignoram (quando, por exemplo, a VM não está sendo visualizada.)

