2012-09-10 19 views
8

Tiene Kepler 2x o 4x el ancho de banda de Fermi al acceder a la memoria compartida?Ancho de banda de memoria compartida Fermi vs Kepler GPU

guía de programación establece: "Cada banco tiene un ancho de banda de 32 bits por dos reloj ciclos" (para 2.X), y "Cada banco tiene un ancho de banda de 64 bits por reloj ciclo" (3. X), entonces 4x está implícito?

+0

@Tom: Estoy citando desde 5.0 PG. (De hecho, la oración sobre 3.X ancho de banda se ha agregado w.r.t 4.2 PG). En ambos casos, hay 32 bancos. Mi pregunta se debe en parte a la p81 de [esta presentación] (http://developer.download.nvidia.com/GTC/PDF/GTC2012/PresentationPDF/S0514-GTC2012-GPU-Performance-Analysis.pdf) donde dicen que el ancho de banda es x2. No veo ninguna referencia a diferentes relojes en 2.X y 3.X, y confío en que cuando se usa "ciclo de reloj", significa lo mismo en todas las capacidades de cálculo (como, por ejemplo, con rendimiento de instrucción también). Lo que estos ciclos de reloj están en Hz no es relevante para esta pregunta. –

+0

La frecuencia del reloj es fundamental, ya que está hablando de anchos de banda que normalmente se miden en bytes/seg, yendo desde bytes/ciclo a bytes/seg. Requiere frecuencia de reloj. Estoy de acuerdo con que el documento no está claro y espero que se mejore la versión final de CUDA 5.0 (la versión que tiene es presumiblemente de la versión candidata). – Tom

Respuesta

6

En Fermi, cada SM tiene 32 bancos que entregan 32 bits en cada dos ciclos de reloj.

En Kepler, cada SMX tiene 32 bancos que entregan 64 bits en cada ciclo de reloj. Sin embargo, dado que el SMX de Kepler se rediseñó fundamentalmente para que sea eficiente desde el punto de vista energético, y dado que correr relojes rápidos consume mucha energía, Kepler opera desde un reloj central mucho más lento. Consulte la conversación Inside Kepler de GTC, de aproximadamente 8 minutos para obtener más información.

Así que la respuesta a la pregunta es que Kepler tiene ~ 2x, no 4x.

La próxima versión de los documentos (CUDA 5.0) debería explicar esto mejor.

+0

Estoy empezando a ver tu punto. Los SP en 3.X se ejecutan en el reloj de GPU principal, mientras que en 2.X se ejecutan en el reloj de sombreado, que era 2 veces el reloj de GPU principal. Entonces en Kepler es "por ciclo de reloj primario", y en Fermi fue "por dos ciclos de reloj de sombreado" (= por un ciclo de reloj primario). Por lo tanto, el acceso es igualmente frecuente desde la perspectiva del reloj primario de la GPU, y el ancho de banda 2x proviene de palabras más amplias de 64 bits. Esto también se refleja en "SMX Processing Core Architecture" del Kepler Whitepaper. ¡Es bueno aprender algo sobre la velocidad de reloj de los SP que! ¡Gracias! –

1

como se da en

Guía de programación 4.2: Memoria compartida tiene 16 bancos que están organizados de tal manera que las sucesivas palabras de 32 bits se asignan a los bancos sucesivos. Cada banco tiene un ancho de banda de 32 bits por dos ciclos de reloj.

Kepler Whitepaper: El ancho de banda de la memoria compartida para operaciones de carga de 64b y mayores también se duplica en comparación con el Fermi SM, a 256B por reloj de núcleo.

Para operaciones de carga pequeña, 4X es.

+0

@Tom: si el número de bancos es el mismo, si se necesitan 32b/2cc en Fermi y 64b/1cc en Kepler, matemáticamente 4X. Necesita más explicaciones sobre la lógica. – Fr34K

+2

La pregunta es pedir comparar Fermi (2.x) y Kepler (3.x). La cita de la guía de programación sobre 16 bancos se encuentra actualmente en la sección 1.x. Kepler vs Fermi es 2x. – Tom

+0

No olvide que el reloj Kepler es más lento para conservar energía (vea el video al que me he vinculado en mi respuesta). – Tom

Cuestiones relacionadas