Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
EECE.6540 Computación heterogénea (Universidad de Massachusetts Lowell) - 46. Conceptos básicos de FPGA
46. Conceptos básicos de FPGA
Este video cubre los conceptos básicos de arreglos de puertas programables en campo (FPGA). A diferencia de las CPU, las FPGA se pueden programar para adaptarse a recursos de hardware específicos, lo que significa que son altamente personalizables. El video analiza la importancia de la latencia en el diseño de circuitos y cómo se puede equilibrar con la maximización de f max. Introduce el concepto de diseño de tuberías para aumentar la frecuencia a la que se puede realizar un cálculo, además de analizar las rutas de datos y las rutas de control en un circuito. Finalmente, el video analiza la ocupación del circuito en un FPGA y cómo la disminución de las burbujas y el aumento de la ocupación pueden aumentar la f máx.
47. Análisis de diseño (I): analizar imágenes tempranas de FPGA
47. Análisis de diseño (I): analizar imágenes tempranas de FPGA
Esta sección del video se enfoca en el proceso de análisis de imágenes tempranas de FPGA para un diseño de DPC++. El orador explica los pasos involucrados, como compilar el programa, generar el binario FPGA y ejecutar la generación de perfiles. El video incluye una demostración de cómo generar informes e interpretar los distintos paneles de información proporcionados en los informes. El orador también analiza las primeras imágenes de FPGA de un módulo b2 y analiza los diversos bloques lógicos, bucles, unidad de carga y factor de despliegue. También discuten cómo el diseño de una función de kernel puede afectar significativamente el diseño interno en FPGA y brindan ejemplos de cómo los bucles interno y externo se pueden desarrollar para aumentar el rendimiento. Los ejemplos ilustran la flexibilidad de la programación en lenguaje de alto nivel para influir en los recursos de hardware de la FPGA.
48. Análisis de diseño de FPGA DPC++ (II): creación de perfiles en tiempo de ejecución
48. Análisis de diseño de FPGA DPC++ (II): creación de perfiles en tiempo de ejecución
En este video, el presentador analiza el proceso de análisis del rendimiento en tiempo de ejecución de un programa utilizando herramientas que recopilan datos de rendimiento agregando registros de instrumentos de creación de perfiles a los flujos de bits de FPGA. Demuestran cómo compilar para la generación de perfiles e interpretar los resultados de la generación de perfiles colectivos utilizando el generador de perfiles dinámico Intel FPGA con contadores de rendimiento agregados por el usuario. Muestran cómo el generador de perfiles V2 muestra las funciones del kernel y los ejecutables que se utilizan para analizar los resultados del perfilado en tiempo de ejecución y cómo identificar los cuellos de botella de las particiones y optimizarlos. El ejemplo utilizado es un núcleo de modificación de matriz que tenía muchos accesos de memoria a la memoria global, que se optimizó mediante el uso de memoria local para reducir la comunicación con la memoria global y mejorar la eficiencia del diseño.
EECE.6540 Computación heterogénea (Universidad de Massachusetts Lowell) - 49. Ejemplos de OpenCL
49. Ejemplos de OpenCL (I)
El video de YouTube "Ejemplos de OpenCL (I)" cubre la implementación de la multiplicación de matrices usando bucles anidados en la programación C y su implementación como un kernel de OpenCL. El disertante explica cómo usar dos niveles de bucles anidados para el cálculo del producto escalar del elemento resultante en la matriz, y cómo cada elemento de salida de la matriz C se trata como un elemento de trabajo separado en OpenCL. El video también cubre los pasos necesarios para preparar el kernel de OpenCL para su ejecución y recuperar la matriz resultante de un dispositivo a un host, así como establecer tamaños de grupos de trabajo y ejecutar el kernel con argumentos de kernel modificados. Además, se proporciona un código de muestra para la multiplicación de matrices, y el orador demuestra el proceso de obtención de ID de dispositivos y plataformas en Mac OS y la creación de un objeto de programa en diferentes plataformas. Por último, el video explica la administración del búfer, rastreando los recursos asignados en el lado del host y los recursos de OpenCL utilizados, y brinda un ejemplo simple de kernel de multiplicación.
Este video cubre varios ejemplos del uso de OpenCL, incluida la multiplicación de matrices, la rotación de imágenes y el filtrado de imágenes. Para la rotación de imágenes, el orador explica cómo desglosar el problema mediante la descomposición de entrada y demuestra la función kernel utilizada para identificar la ubicación original y nueva de cada píxel. Para el filtrado de imágenes, el orador analiza el concepto de crear objetos de imagen en el lado del dispositivo y el uso de muestras de OpenCL para definir cómo acceder a la imagen. También presentan una implementación de muestra de la función de convolución de imagen con dos bucles for anidados. El video concluye con una demostración del uso de OpenCL para realizar un filtro de convolución en una imagen y verificar los resultados.
Una comparación de SYCL, OpenCL, CUDA y OpenMP para la clasificación de vectores de soporte masivamente paralelos ( WOCL / SYCLcon 2022 )
Una comparación de SYCL, OpenCL, CUDA y OpenMP para la clasificación de vectores de soporte masivamente paralelos
El video compara el rendimiento de SYCL, OpenCL, CUDA y OpenMP en diferentes plataformas de hardware para la clasificación masiva de máquinas de vectores de soporte en paralelo. El orador explica la paralelización de la multiplicación matriz-vector con una implementación llamada Parallel Fibonacci, que admite la ejecución multigpu, pero solo clasificación binaria y cálculos densos. El hardware utilizado para las pruebas incluye GPU Nvidia A100 y RTX 380, GPU AMD Radeon Pro 7 y CPU Intel Core E9-10-09020X. Los resultados muestran que CUDA es el backend más rápido para GPU Nvidia, mientras que OpenCL es el backend más rápido para CPU. SYCL es fácil de usar, mientras que Hipsicle es más rápido que DPC++ y OpenCL para un uso económico. Además, el orador analiza el trabajo futuro, como la investigación del rendimiento en FPGA, la adición de soporte para sistemas distribuidos a través de MPI y el uso de cálculos de precisión mixtos y hardware especial de aprendizaje automático como los núcleos tensoriales de NVIDIA.
Alcanzando un C++ aún más rico en OpenCL Kernels con el uso de libclcxx ( WOCL / SYCLcon 2022)
Alcanzando un C++ aún más rico en OpenCL Kernels con el uso de libclcxx
El video analiza el uso de libclcxx para permitir la integración de bibliotecas de C++ en el desarrollo de kernel de código abierto. El proyecto integra rasgos de tipo, una biblioteca esencial para la metaprogramación en C++, con el objetivo de exponer más funciones de C++ a los desarrolladores. El video muestra cómo la biblioteca de rasgos de tipo puede optimizar el rendimiento de los kernels de OpenCL a través de su capacidad para manipular el espacio de direcciones y los tipos de vectores. El video anima a los desarrolladores a experimentar con la biblioteca y contribuir a reducir los ciclos de desarrollo mientras obtienen la máxima compatibilidad con C++. La biblioteca proporciona documentación de Oxígeno en un estilo similar a las páginas de referencia de C++, lo que facilita a los desarrolladores la navegación a través de la nueva funcionalidad.
SYCL más allá de OpenCL: la arquitectura, el estado actual y la dirección futura de hipSYCL ( IWOCL / SYCLcon 2020 )
SYCL más allá de OpenCL: la arquitectura, el estado actual y la dirección futura de hipSYCL
El proyecto hipSYCL es una implementación de código abierto de SYCL que apunta a GPU a través del modelo de programación HIP en lugar de OpenCL. Consiste en un componente compilador, una interfaz hoz y un tiempo de ejecución seguro. El compilador seguro identifica kernels, maneja la asignación de memoria local e implementa un mecanismo de señalización. La función de envío crea elementos específicos basados en núcleos proporcionados por el usuario, y las funciones optimizadas se pueden definir con rock prim. La dirección futura es permitir múltiples back-ends y eliminar las restricciones en el modelo de compilación estática. El modelo de envío de operaciones está en transición a un envío por lotes para un mayor rendimiento de tareas, y hipSYCL es interoperable a nivel de código fuente, lo que permite mezclar y combinar con hip y CUDA. Como proyecto de código abierto, los colaboradores son bienvenidos.
SYCL: el futuro es abierto, paralelo y heterogéneo (Core C++ 2022 )
SYCL: el futuro es abierto, paralelo y heterogéneo
En este video sobre la programación SYCL, el orador destaca la necesidad de aumentar el nivel de abstracción para aumentar la productividad y atraer a más desarrolladores, ya que los modelos complejos requieren una mayor potencia de cómputo, que se cumple con los sistemas aceleradores. Se enfatiza la importancia de la portabilidad del software y OneAPI, ya que permite que los dispositivos funcionen en CPU, GPU y otros dispositivos. También se analizan los beneficios de SYCL, un modelo de programación abierto, paralelo y heterogéneo, y el orador destaca los numerosos recursos y herramientas en línea disponibles para optimizar el código y mejorar el rendimiento. El orador alienta a los espectadores a visitar oneapi.io y su canal de YouTube para obtener recursos y apoyo.
Aceleración de GPU en Python
Aceleración de GPU en Python
El video explica cómo lograr la aceleración de GPU en la programación de Python aprovechando el poder de las unidades de procesamiento de gráficos, que pueden proporcionar una aceleración de hasta 10 veces con paralelismo de datos. Se presentan brevemente los dos estándares para computación GPU, OpenCL y CUDA, y el video demuestra el uso de Pi OpenCL y CUDA para la multiplicación de matrices en Python. El orador explica el uso de la memoria global y el núcleo para la multiplicación de matrices, y también analiza el algoritmo utilizado para calcular un elemento en el producto matriz-matriz. Se analiza el código para la aceleración de GPU en C y Python, con énfasis en la comprensión de las representaciones internas de las matrices y la asignación de memoria. Los ejercicios de la lección proporcionan una base para una mayor exploración de la computación GPU.
Presentación de lanzamiento de OpenCL 3.0 (IWOCL / SYCLcon 2020)
Presentación de lanzamiento de OpenCL 3.0
El lanzamiento de OpenCL 3.0 se analiza en este video, con un enfoque en su importancia para la programación paralela de bajo nivel en la industria. OpenCL 3.0 no agrega nuevas funciones a la API, pero proporciona una realineación del ecosistema para permitir que OpenCL llegue a más desarrolladores y dispositivos. El presentador también analiza la adición de extensiones para los procesadores ligeros DSP, la hoja de ruta para la funcionalidad futura y el creciente ecosistema de compiladores de lenguaje kernel de código abierto que pueden generar kernels espirituales para OpenCL Vulcan. Se alienta la retroalimentación de los usuarios para ayudar a finalizar la especificación mientras el grupo de trabajo se prepara para la primera ola de implementaciones en los próximos meses.