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
6. Superescalar y VLIW
6. Superescalar y VLIW
El video explora cómo los procesadores usan la ejecución superescalar para detectar y extraer el paralelismo entre las instrucciones binarias para mejorar el rendimiento. Discute la importancia de la lógica de control en la identificación de instancias en las que las instrucciones pueden ejecutarse simultáneamente, como cuando no hay dependencias entre ellas. El video también presenta dos ejemplos de diseño de procesador, superescalar y VLIW, con este último transfiriendo la responsabilidad de detectar dependencias a los compiladores, generando largas palabras de instrucción para ser ejecutadas en paralelo. Si bien VLIW reduce la verificación del tiempo de ejecución, los puntos no utilizados en la palabra de instrucción larga aún pueden causar desperdicio en la unidad de ejecución.
EECE.6540 Computación heterogénea (Universidad de Massachusetts Lowell)
7. SIMD y multiproceso de hardware
El video explica dos formas de abordar los desafíos del paralelismo: instrucción única, datos múltiples (SIMD) y subprocesos múltiples de hardware (SMT). SIMD permite que las instrucciones de hardware se ejecuten en paralelo sobre múltiples elementos de datos, lo que simplifica la lógica de programación y decodificación. SMT explota el paralelismo a nivel de subprocesos al ejecutar flujos de instrucciones independientes simultáneamente, lo que exige archivos de registro adicionales y un uso compartido cuidadoso de la memoria caché. El video también analiza la implementación de la programación de subprocesos divididos en el tiempo, donde los subprocesos se turnan para ocupar la ruta de datos del procesador en forma rotativa, lo que reduce la latencia y permite que múltiples subprocesos accedan a unidades informáticas y sistemas de memoria simultáneamente. En última instancia, el procesador puede acomodar tantos subprocesos como sea necesario, aunque la ganancia de rendimiento puede no ser tan significativa en un procesador de un solo subproceso.
8. Arquitectura de procesador multinúcleo
8. Arquitectura de procesador multinúcleo
Este video explica la arquitectura de los procesadores multinúcleo y sus beneficios, como varios núcleos que funcionan de forma independiente y comparten algunos componentes, mientras que cada núcleo tiene su propia canalización y caché de datos. La importancia de la jerarquía de caché para cerrar la brecha de velocidad entre el microprocesador y el acceso a la memoria se destaca utilizando múltiples niveles de caché que explotan la localidad temporal y espacial. El video también aborda el diseño de sistema en chip, que combina diferentes unidades de función e interfaces en un solo chip para reducir el costo y el factor de forma. En general, el video brinda una útil introducción a la complejidad y las compensaciones involucradas en el diseño de procesadores multinúcleo.
9. Arquitectura GPU
9. Arquitectura GPU
La unidad de procesamiento acelerado (APU) es un procesador heterogéneo con núcleos de bajo consumo y unidades GPU, todo en el mismo chip. Las GPU tienen una gran cantidad de núcleos de sombreado que se pueden programar con instrucciones, y sus cachés generalmente no son coherentes, lo que hace que su diseño sea más simple y permite un rendimiento mucho mayor cuando muchos núcleos funcionan al mismo tiempo. AMD y Nvidia utilizan pequeñas unidades de cómputo para respaldar la operación en múltiples piezas de datos al mismo tiempo y tienen archivos de registro grandes para respaldar el cambio rápido de contexto. El orador también explica cómo administrar el flujo de control en la arquitectura GPU, especialmente en el manejo de instrucciones de bifurcación que pueden producir resultados no válidos, pero los programadores no deben preocuparse mucho por estos problemas porque los proveedores de procesadores ya han proporcionado lógica de control en el hardware. En general, las GPU son procesadores populares para cargas de trabajo complejas en el mercado moderno, especialmente en el campo de la IA y el aprendizaje automático.
10. Componentes internos de FPGA
10. Componentes internos de FPGA
Este video analiza la arquitectura y las características de los arreglos de puertas programables en campo (FPGA). Los FPGA tienen lógica programable, lo que les permite reprogramarse para adaptarse a nuevas funcionalidades y tener acceso directo a los datos a través de cantidades masivas de entradas y salidas (I/O). La estructura de la tabla de búsqueda en los FPGA consta de múltiples niveles de multiplexores que se pueden programar para definir funciones lógicas. Los FPGA usan registros programables que se pueden usar para contadores, registros de desplazamiento, máquinas de estado y funciones DSP. Cada bloque rectangular del chip representa un bloque de matriz lógica (LAB), y cada LAB contiene diez módulos lógicos adaptables (ALM). Los FPGA se utilizan en industrias tales como dispositivos de consumo, automotriz, instrumentación médica y comunicación y transmisión.
y llevar bits, y cómo la entrada a los registros puede provenir de elementos lógicos anteriores.
11. Memoria OpenCL en un sistema GPU
11. Memoria OpenCL en un sistema GPU
El instructor explica la asignación de la memoria OpenCL a la GPU AMD y los diferentes niveles de memoria en un sistema de GPU. El dispositivo de cómputo tiene un procesador de comandos que administra las directivas de las unidades de cómputo, que funcionan como núcleos con múltiples carriles SIMD, archivos de registro privados y memoria privada. El programa kernel está diseñado para proporcionar trabajos autónomos que permitan utilizar todos los núcleos disponibles y disminuir la latencia de acceso a la memoria. El orador también menciona el concepto de intensidad aritmética, que se refiere a la relación entre el cálculo y el movimiento del eje de la memoria, y cómo debe ser alta para evitar que el ancho de banda de la memoria de la GPU sea el factor limitante.
12. Ejemplo de OpenCL: multiplicación de matrices
12. Ejemplo de OpenCL: multiplicación de matrices
Este video presenta la multiplicación de matrices como un ejemplo de programación OpenCL. El orador demuestra cómo se escribe el código C para crear bucles independientes que pueden atravesar las filas y columnas de la matriz. Se analizan los elementos de trabajo y cómo se pueden asignar a elementos de matriz en OpenCL. Se explica una implementación del núcleo, cubriendo los argumentos de la función del núcleo, cómo se llama y su cuerpo. El orador muestra cómo se almacena la matriz de entrada en una matriz de una sola dimensión utilizando números de fila e índice para calcular los índices. En última instancia, la función kernel calcula el producto escalar para producir el elemento en la matriz de salida. Se enfatiza el enfoque lineal para almacenar matrices en la memoria física.
13. Estructura de un programa OpenCL (parte 1)
13. Estructura de un programa OpenCL (parte 1)
En el video "Estructura de un programa OpenCL (parte 1)", se explica el proceso de construcción de una aplicación OpenCL. El programa primero debe consultar la plataforma OpenCL para comprender sus recursos y crear un contexto OpenCL y una cola de comandos. A continuación, se crean búferes para el intercambio de datos entre el host y la memoria del dispositivo, y el programa del núcleo se compila en un binario para su ejecución en el dispositivo. El video continúa explicando cómo crear búferes de solo lectura y solo escritura, asignar espacio para matrices de salida y copiar los resultados al host. Se enfatiza la importancia de verificar las llamadas API para una ejecución exitosa.
14. Estructura de un programa OpenCL (parte 2)
14. Estructura de un programa OpenCL (parte 2)
El tercer paso en la programación de OpenCL involucra la compilación del núcleo, que es diferente para los dispositivos FPGA ya que se realiza fuera de línea. El programa de creación CL con fuente y C TX se usa para crear un programa, seguido del programa de creación CL para compilar el programa en binario. La función del kernel correcta se selecciona mediante el punto de entrada adecuado y los argumentos del kernel deben inicializarse mediante CL set kernel argument con el puntero correcto. El orador entra en detalles sobre la configuración adecuada de los argumentos en la multiplicación de matrices. Luego, analizan la configuración de tamaños de grupos de trabajo locales y globales, la ejecución del kernel y la obtención de resultados mediante la API CL in queue buffer. Finalmente, el orador menciona brevemente los eventos en la programación de OpenCL.
15. Demostración de multiplicación de matriz OpenCL
15. Demostración de multiplicación de matriz OpenCL
El video "Demostración de multiplicación de matrices de OpenCL" explica el proceso de ejecución de un ejemplo de multiplicación de matrices utilizando el marco OpenCL. Incluye varios archivos de código fuente, como un programa C principal para el lado del host, un programa del núcleo y un archivo MAKE. El video cubre diferentes aspectos del marco OpenCL, la obtención de ID de plataforma y dispositivo, la creación de un contexto OpenCL, el programa y los objetos del núcleo, la administración del búfer para el host y la creación e inicialización de búfer en el dispositivo. El presentador también muestra un kernel de muestra que realiza operaciones de producto de puntos y una demostración del resultado final en un motor de cómputo AMD Radeon pro 575.