Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 12624|Respuesta: 0

CUDA es diferente de OpenCL

[Copiar enlace]
Publicado en 22/4/2018 21:42:36 | | | |
Según la información de la web, una breve recopilación de las diferencias entre CUDA y OpenCL. Por favor, señala cualquier error.

Digresión: Una prueba de simulación en el Laboratorio Nacional Sandia en Estados Unidos demostró que, debido a las limitaciones del mecanismo de almacenamiento y el ancho de banda de la memoria, los procesadores de 16, 32 o incluso 64 núcleos no solo no pueden mejorar el rendimiento de los superordenadores, sino que incluso pueden provocar una disminución significativa de la eficiencia.

¿Qué es OpenCL?

Es un estándar abierto y libre para la programación paralela para el propósito general de sistemas heterogéneos iniciado por Apple y producido conjuntamente por muchos fabricantes reconocidos en la industria, y también es un entorno de programación unificado. Es conveniente para desarrolladores de software escribir código eficiente y ligero para servidores de computación de alto rendimiento, sistemas de computación de escritorio y dispositivos portátiles, y es ampliamente utilizado en procesadores multinúcleo (CPU), unidades de procesamiento gráfico (GPU), arquitecturas tipo celda y otros procesadores paralelos como procesadores digitales de señal (DSP), y tiene amplias perspectivas de desarrollo en diversos campos como juegos, entretenimiento, investigación científica y atención médica.

¿Qué es CUDA?

CUDA es una arquitectura basada en computación paralela en GPUs Nvidia. CUDA incluye principalmente dos aspectos: uno es la arquitectura del conjunto de instrucciones ISA; el segundo motor de computación por hardware; En realidad es hardware y conjunto de instrucciones. En otras palabras, podemos pensar en CUDA como una arquitectura similar a X86 o celda, pero basada en GPUs, no en CPUs tradicionales.




¿Qué es realmente OpenCL?

OpenCL es en realidad una API completamente nueva para la programación paralela de sistemas heterogéneos, y OpenCL puede usar GPUs para realizar trabajo de computación paralela.
OpenGL es para grafos, mientras que OpenCL es para computación paralela.
En el proceso de desarrollo de OpenCL, las plataformas técnicas son todas GPUs NVIDIA y, de hecho, OpenCL se desarrolla basándose en plataformas GPU NVIDIA. Además, la primera demo de OpenCL también se ejecutaba en GPUs NVIDIA.
Esencialmente, OpenCL es una tecnología equivalente a DirectX en la plataforma Windows. O más bien, es una interfaz API que conecta hardware y software. En este sentido, es similar a OpenGL, pero OpenCL es mucho más extenso que OpenGL, y no se utiliza solo para gráficos 3D. Si lo describes en una frase, el papel de OpenCL es liberar el potencial del hardware llamando a los recursos informáticos del procesador y la GPU, para que el programa funcione más rápido y mejor.
¿Qué es realmente CUDA?

La arquitectura CUDA es nativa, especialmente diseñada para interfaces de computación, y esta arquitectura de hardware, incluyendo conjuntos de instrucciones, es un conjunto completo de arquitecturas diseñadas para este tipo de computación paralela y computación heterogénea. La arquitectura CUDA puede soportar APIs, incluyendo OpenCL o DirectX, y CUDA también soporta C, C++, Fortran, Java, Python y otros lenguajes.



¿Cuál es la relación entre OpenCL y CUDA?

La relación entre CUDA y OpenCL no es una relación de conflicto, sino una relación inclusiva. OpenCL es una API, en primer nivel, la arquitectura CUDA es de nivel superior, ya sea OpenCL, DX11 o lenguaje C, Fortran, computación DX11, pueden ser compatibles. Como desarrollador de programas, generalmente solo entiende estos lenguajes o APIs, y puede usar varios lenguajes para desarrollar sus propios programas, sin importar el lenguaje que elijan; mientras quieran llamar a la potencia de cálculo de la GPU, pueden usar CUDA para programar en esta arquitectura.
Las diferencias técnicas entre OpenCL y CUDA se reflejan principalmente en el método de implementación. CUDA basado en lenguaje C está empaquetado en un código fácil de escribir, por lo que incluso investigadores que no están familiarizados con la construcción de chips pueden usar herramientas CUDA para escribir programas prácticos. Aunque OpenCL es sintácticamente cercano a CUDA, enfatiza más las operaciones subyacentes, por lo que es más difícil, pero por ello OpenCL puede ejecutarse entre plataformas.
CUDA es una arquitectura de computación paralela que contiene una arquitectura de conjunto de instrucciones y un motor de hardware correspondiente. OpenCL es una interfaz de programación de aplicaciones (API) para computación paralela, y OpenCL es una nueva ruta de desarrollo de programas CUDA además de C para CUDA en la arquitectura NVIDIA CUDA.
Si quieres tener más control sobre el hardware, puedes usar la API de OpenCL para programar, y si no conoces mucho la API, también puedes programar en CUDA C, que son dos formas diferentes de programar, y tienen sus similitudes y diferencias. Pero hay un poco de que cuando se desarrollan los lenguajes OpenCL y CUDA C, en la computación paralela, sus conceptos son similares, estos dos programas tienen grandes similitudes entre ellos, por lo que es relativamente fácil portar programas entre sí.


El lenguaje CUDA C está posicionado de forma diferente a OpenCL, o dicho de otro modo, utiliza personas distintas. CUDA C es un lenguaje de alto nivel que puede ser fácilmente utilizado por no profesionales que no sepan mucho de hardware; OpenCL es una interfaz de desarrollo de aplicaciones orientada al hardware, que da a los programadores más control sobre el hardware, y será más difícil empezar y desarrollar.
Los hábitos de uso de los programadores también son muy importantes; quienes usan el lenguaje C en la plataforma CPU X86 aceptarán fácilmente el lenguaje C basado en la plataforma GPU CUDA; Las personas acostumbradas a usar OpenGL para el desarrollo gráfico serán más amables de ver OpenCL, y será muy fácil desarrollar programas informáticos relacionados con gráficos y vídeo sobre su base.






Anterior:HttpRuntime Cache establece la encapsulación de la información de caché
Próximo:¿Por qué no dar MB a avatares establecidos
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com