Aquí hay algunas respuestas realmente buenas, así que solo para complementarlas.
Una de las principales fuerzas impulsoras del procesamiento de software es la capacidad. Esto se mencionó en una de las respuestas, pero voy a hacer un punto opuesto: la representación de software en realidad puede ser más capaz que la representación de hardware, no menos.
Con el hardware, generalmente está limitado a las capacidades del hardware en sí mismo, aunque OpenGL para uno es capaz de emular software de muchas cosas que pueden no existir en el hardware. Lo que eso significa es que si intenta usar la función X pero el hardware no lo admite, sucederá una de dos cosas: o volverá a la emulación de software (el escenario típico de OpenGL) o no podrá úselo (el típico escenario D3D).
Con la representación de software, puede escribir el código usted mismo. Puedes manipular cosas y tener un control total sobre lo que sucede hasta el nivel de píxeles. Para dar un ejemplo de una explosión del pasado, Quake implementó sombreadores de píxeles en el software en 1996, en un momento en que las tarjetas 3D (no se llamaban "GPU" entonces) apenas podían rasterizar unas pocas docenas de triángulos texturizados.
Este es más el caso con las GPU actuales también, pero todavía hay partes significativas de la tubería de gráficos que están expuestos como una funcionalidad fija (o incluso no están expuestos en absoluto).
El renderizado de software puede escalar mejor. Es relativamente reciente que hayamos visto que las configuraciones de múltiples GPU se vuelven realmente viables, pero el software puede escalar en muchos núcleos de CPU en muchos servidores. Puede tener granjas de servidores enteras dedicadas a esto, y las granjas de renderizado profesional seguirán utilizando la representación de software.
El software puede exponer diferentes paradigmas de representación. El hardware actual está muy centrado en el paradigma triángulo / vértice / fragmento / rasterización; se trata de elegir una cosa y optimizarla hasta que grite por piedad. Las GPU siguen siendo una mala elección para, por ejemplo, el trazado de rayos, que se implementa más comúnmente en el software.
Por supuesto, cuando se trata de una comparación directa de manzanas con manzanas, una GPU vencerá al software cualquier día de la semana, siempre que comparemos áreas donde las GPU son más fuertes. Pero eso no quiere decir que sean más fuertes en todas las áreas. A pesar de eso, y para los propósitos de este sitio SE, el uso de hardware es generalmente el camino a seguir, pero solo tenga en cuenta que existen casos de uso en los que el software también es viable.