title: OpenCL
text: # OpenCL
  
  OpenCL (Open Computing Language, en español lenguaje de computación abierto) consta de una interfaz de programación de aplicaciones y de un lenguaje de programación. Juntos permiten crear aplicaciones con paralelismo a nivel de datos y de tareas que pueden ejecutarse tanto en unidades centrales de procesamiento como unidades de procesamiento gráfico. El lenguaje está basado en C99, eliminando cierta funcionalidad y extendiéndolo con operaciones vectoriales.
  
  Apple creó la especificación original y fue desarrollada en conjunto con AMD, IBM, Intel y NVIDIA. Apple la propuso al Grupo Khronos para convertirla en un estándar abierto y libre de derechos. El 16 de junio de 2008 Khronos creó el Compute Working Group para llevar a cabo el proceso de estandarización. En 2013 se publicó la versión 2.0 del estándar.
  
  OpenCL forma parte de Mac OS X v10.6 ('Snow Leopard'), mientras que AMD decidió apoyar OpenCL en lugar de su antigua API Close to Metal.
  
  Intel también dispone de su propio entorno de desarrollo y NVIDIA además de tener su propia API para chips gráficos llamada CUDA, también admite OpenCL.
  
  ## Ejemplo
  
  Este ejemplo calcula una Transformada rápida de Fourier. Las llamadas a la API son las siguientes:
  
  El cómputo en sí es este:
  
  