Diferencias entre GPU y CPU

La diferencia entre el diseño de la
CPU y la GPU La razón por la cual la CPU y la GPU son muy diferentes se debe a sus diferentes objetivos de diseño, ya que están dirigidos a dos escenarios de aplicación diferentes. La CPU necesita una gran versatilidad para manejar varios tipos de datos y, al mismo tiempo, requiere un juicio lógico e introduce una gran cantidad de saltos e interrupciones de rama. Todo esto hace que la estructura interna de la CPU sea extremadamente complicada. La GPU se enfrenta con datos altamente unificados, independientes y a gran escala y un entorno informático puro que no necesita ser interrumpido.

Entonces, la CPU y la GPU presentan una arquitectura muy diferente (diagrama esquemático):
  Inserte la descripción de la imagen aquí

La gran diferencia entre CPU y GPU

Imagen de la documentación de nVidia CUDA. Entre ellos, el verde es la unidad de cálculo, el naranja-rojo es la unidad de almacenamiento y el naranja es la unidad de control.

GPU utiliza una gran cantidad de unidades informáticas y una canalización súper larga, pero solo una lógica de control muy simple y guarda el caché. La CPU no solo ocupa mucho espacio en la memoria caché, sino que también tiene una lógica de control compleja y muchos circuitos de optimización. Por el contrario, la potencia informática es solo una pequeña parte de la CPU
Inserte la descripción de la imagen aquí

Se puede ver en la imagen de arriba:

Caché, memoria local: CPU> GPU

Subprocesos: GPU> CPU

Registros: GPU> CPU Los registros múltiples pueden admitir muchos subprocesos. El subproceso necesita usar el registro. El número de subprocesos es grande. El registro también debe ir seguido de un gran número.

Unidad SIMD (instrucción única, múltiples flujos de datos, ejecute la misma instrucción al mismo tiempo de manera síncrona): GPU> CPU.

Diseño de CPU basado en baja latencia:
Inserte la descripción de la imagen aquí

La CPU tiene una poderosa ALU (unidad de operación aritmética), que puede completar cálculos aritméticos en unos pocos ciclos de reloj.

Las CPU actuales pueden alcanzar una precisión doble de 64 bits. La adición y multiplicación de cálculos de fuente de punto flotante de doble precisión solo requieren de 1 a 3 ciclos de reloj.

La frecuencia del ciclo de reloj de la CPU es muy alta, llegando a 1.532 ~ 3 gigahercios (gigabit HZ, 10 a la potencia de 9).

Los amortiguadores grandes también pueden reducir la latencia. Guarde una gran cantidad de datos en la memoria caché. Cuando necesite acceder a los datos, siempre que haya accedido a ellos, ahora puede obtenerlos directamente en la memoria caché.

Unidad de control de lógica compleja. Cuando un programa contiene múltiples ramas, reduce la latencia al proporcionar capacidades de predicción de ramas.

Reenvío de datos. Cuando algunas instrucciones dependen de los resultados de instrucciones anteriores, la unidad de control lógico de reenvío de datos determina la posición de estas instrucciones en la tubería y reenvía el resultado de una instrucción a las instrucciones posteriores tan pronto como sea posible. Estas acciones requieren muchas unidades de circuito de comparación y unidades de circuito repetidor.

Inserte la descripción de la imagen aquí

GPU está diseñado en base a un gran rendimiento.

La característica de la GPU es que hay muchas ALU y pocas memorias caché. El propósito de la memoria caché no es guardar los datos a los que se debe acceder más tarde, que es diferente de la CPU, sino mejorar el servicio de subprocesos. Si hay muchos subprocesos que necesitan acceder a los mismos datos, el caché combinará estos accesos y luego accederá al dram (porque los datos a los que se accede se almacenan en el dram en lugar del caché). Después de obtener los datos, el caché reenviará estos datos al correspondiente Hilo, esta vez es el papel del reenvío de datos. Sin embargo, debido a la necesidad de acceder al dram, naturalmente provocará el problema de la demora.

La unidad de control de la GPU (bloque de área amarilla a la izquierda) puede combinar múltiples accesos en menos accesos.

Aunque la GPU tiene una demora dramática, tiene una gran cantidad de ALU y muchos subprocesos. Para equilibrar el problema de la demora de memoria, podemos hacer un uso completo de las características de múltiples ALU para lograr un efecto de rendimiento muy grande. Asigne tantos subprocesos como sea posible. En términos generales, GPU ALU tendrá una tubería muy pesada debido a esto.

Entonces, con la CPU es bueno en el control lógico, la operación en serie. A diferencia de las operaciones de datos de propósito general, las GPU son buenas para la computación concurrente a gran escala, que es exactamente lo que requiere el descifrado de contraseñas. Por lo tanto, además del procesamiento de imágenes, las GPU también participan cada vez más en la informática.

La mayor parte del trabajo de GPU es así: es computacionalmente intensivo, pero no tiene contenido técnico y debe repetirse muchas veces. Al igual que tiene un trabajo que requiere cientos de millones de sumas, restas, multiplicaciones y divisiones, la mejor manera es contratar a docenas de estudiantes de primaria para hacer los cálculos juntos. Una persona cuenta una parte. De todos modos, estos cálculos no son técnicos y son puramente físicos. La CPU es como un viejo profesor. Se cuentan los cálculos integrales y diferenciales, es decir, los altos salarios. Un viejo profesor tiene 20 estudiantes de primaria. Si eres Foxconn, ¿cuál contratas? Este es el caso de las GPU, que utilizan muchas unidades informáticas simples para completar una gran cantidad de tareas informáticas, tácticas puramente humanas. Esta estrategia se basa en la premisa de que los estudiantes de primaria A y B no dependen de su trabajo y son independientes entre sí. Muchos problemas que involucran muchos cálculos tienen básicamente esta característica, como descifrar contraseñas, minería y muchos cálculos gráficos. Estos cálculos se pueden descomponer en múltiples tareas pequeñas idénticas y simples, y cada tarea se puede asignar a un estudiante de primaria. Pero todavía hay algunas tareas que implican "flujo". Por ejemplo, si tiene una cita a ciegas, ambas partes pueden esperar continuar con el desarrollo. ¿Aún no te has conocido en este lado? Busca a alguien para obtener el certificado. Este tipo de problema complicado es todo hecho por la CPU.

En general, dado que la CPU y la GPU se utilizan para procesar diferentes tareas al principio, no hay una pequeña diferencia en el diseño. Algunas tareas son similares a los problemas que la GPU se utilizó originalmente para resolver, por lo que se utiliza la GPU. La velocidad de computación de la GPU depende de cuántos estudiantes de primaria son contratados, y la velocidad de computación de la CPU depende de cuán poderoso sea contratado un profesor. La capacidad de los profesores para lidiar con tareas complejas aplasta a los estudiantes de primaria, pero para tareas menos complejas, aún no puede resistir a la multitud. Por supuesto, la GPU actual también puede hacer un trabajo un poco complicado, equivalente a actualizar al nivel de los estudiantes de secundaria. Pero aún necesita la CPU para alimentar los datos a su boca antes de que pueda comenzar a trabajar. Todavía depende de la CPU.

¿Qué tipo de programa es adecuado para ejecutarse en la GPU?

(1) Procedimientos computacionalmente intensivos. El llamado programa intensivo en cómputo es que la mayor parte de su tiempo de ejecución se gasta en operaciones de registro. La velocidad del registro es comparable a la velocidad del procesador, y casi no hay demora en leer y escribir datos desde el registro. Puede hacer una comparación. La latencia de la memoria de lectura es de unos pocos cientos de ciclos de reloj; la velocidad de lectura del disco duro es sin mencionar, incluso SSD, es realmente demasiado lenta.

(2) Programas paralelos fáciles. La GPU es en realidad una arquitectura SIMD (Single Instruction Multiple Data). Tiene cientos o miles de núcleos, y es mejor que cada núcleo haga lo mismo al mismo tiempo.

Publicado 16 artículos originales · Me gusta1 · Visitas 367

Supongo que te gusta

Origin blog.csdn.net/qq_41174940/article/details/104460899
Recomendado
Clasificación