Nvidia CUDA: PhysX y computación general

por Javier Rodríguez 07/10/2009 ...

Introducción.

Conocido es que desde la implantación de las unidades de sombreado unificado en DirectX 10 los chips gráficos lograron prestaciones añadidas que pueden ser aplicadas a otro tipo de operaciones que llamamos cómputo general y que no es otra cosa que decir que podemos utilizarlas para ejecutar otro tipo de aplicaciones no orientadas a la generación de gráficos en pantalla. Da la casualidad que estos diseños de múltiples unidades programables tienen una efectividad espectacular en todas aquellas aplicaciones que puedan aprovechar su gran capacidad de calculo matemático en coma flotante.

Este tipo de aplicaciones suelen estar muy orientadas al mundo multimedia, tanto profesional como domestico, asi como a la investigación donde una sola grafica ofrece un potencial que antes solo se encontraban en caras estaciones de trabajo que eran más parecidas a un supercomputador que a un ordenador convencional.

El cómputo general no es exclusivo de ningún fabricante, todos al cumplir con ciertos requisitos del API de Microsoft tuvieron que adoptar este tipo de arquitecturas y de hecho actualmente existen plataformas abiertas para programación de aplicaciones de cómputo general siendo Windows 7, con DirectX 11 y DirectCompute 11, una de las plataformas idóneas para este tipo de aplicaciones. Por supuesto también existen otros APIs abiertos, muy extendidos y de futuro prometedor, como es el OpenCL, que se utiliza en cualquier plataforma, ya sea Windows, Mac o Linux, y que posiblemente acabe convirtiéndose en el OpenGL de la computación general aplicada en chips gráficos.

Existen también plataforma propietarias, con SDKs libres, como es CUDA que pertenece a Nvidia y que, salvo milagro, solo esta soportada por los chips gráficos de este fabricante. Se trata de una solución propietaria de la que cuelgan estándares más o menos establecidos en el sector como es PhysX, que se aplica al cálculo de física aplicada al videojuego. CUDA es de facto el API más extendido en la actualidad, tanto en aplicaciones profesionales, domesticas como lúdicas pero no es la única plataforma soportada por Nvidia ya que también tienen presencia en los otros APIs más importantes ya mencionados.

Tags: Software