opencl directcompute

OpenCL vs. DirectCompute?



(5)

Estoy buscando comparaciones entre OpenCL y DirectCompute , pero no he encontrado nada. Las ventajas de OpenCL de ser multiplataforma y tener una gama más amplia de GPU compatibles no me importan. Estoy bien con la codificación en Windows solo para las GPU DX11. Suponiendo que, ¿cuáles son los pros y los contras de cada API?

Sé que esta pregunta se planteó antes , pero estoy buscando más detalles.

No estoy interesado en CUDA, ya que no quiero limitarme solo al hardware de Nvidia.


Bueno, la principal ventaja de OpenCL es que no se limita solo a las tarjetas gráficas. Puede utilizar su CPU multinúcleo, su tarjeta gráfica y potencialmente cualquier número de otros dispositivos de aceleración de hardware (DSP, etc.), todos desde el mismo programa.

No estoy seguro si DirectCompute permite esa libertad.


OpenCL multiplataforma no es solo un detalle, ya que el código del host (el que llama a la API de OpenCL y envía los kernels) puede ser multiplataforma (ver texto del enlace , texto del enlace ...).

Escribe una vez, ejecuta en cualquier GPGPU, en cualquier lugar.

De lo contrario, las herramientas de OpenCL realmente están mejorando, con un complemento ATI Stream para Visual Studio, los SDK de NVidia y ATI que contienen toneladas de muestras, etc.



Probablemente la mayor diferencia para un codificador es que DirectCompute está programado por un lenguaje similar a HLSL, y OpenCL está programado a través de un lenguaje similar a C.

Otra diferencia a considerar es que, en general, para las GPU a nivel de producto, el soporte de DirectX es mejor (más rápido y con menos errores) que el soporte de OpenGL en Windows. Esto puede traducirse en un soporte más estable para DirectCompute, pero en realidad, esto es solo una especulación.


Utilizo OpenCL porque puedo portar fácilmente mi aplicación a Linux, pero con DirectCompute esto no es posible. También creo que el rendimiento de la implementación de OpenCL aumentará con el tiempo (que tendrá el mismo nivel que CUDA para las tarjetas NVidia) y también que los errores (controladores) (con suerte;)) se eliminarán con el tiempo.