Hay mucho trabajo para entrenar una red neuronal profunda usando GPU. Desde la perspectiva de la optimización, ¿qué parte ahorra tiempo? ¿La evaluación de la función objetivo? ¿El cálculo del gradiente? ¿O algo más? ¿Y por qué?
¿Son ciertas operaciones de matrices (como la multiplicación de matrices) más rápidas en GPU que en CPU?
En optimización convexa Apéndice C. Tenemos conteo de operaciones de punto flotante para cada operación. ¿Se cambian en GPU? ¿O la GPU tiene operaciones de punto flotante mucho más rápidas?
2 votos
Tu sospecha es correcta - las GPU son excelentes en la multiplicación de matrices.
0 votos
También supondría que la multiplicación de matrices "sin matriz" sería común. Con esto quiero decir casos en los que la "matriz" es muy dispersa (por ejemplo, convolución) y/o tiene una estructura regular repetida (por ejemplo, FFT), nunca se ensamblará explícitamente en la práctica. Aquí, los algoritmos se estructurarán para acceder a la matriz solo a través de una rutina especializada para la "multiplicación de matriz-vector".
0 votos
@GeoMatt22, ¿podrías darme algún ejemplo de cómo se relaciona la transformada de Fourier rápida con la multiplicación de matrices?
1 votos
@hxd1011 nadie (fuera de un salón de clases o derivación) realizará una DFT como una multiplicación de matrices en la práctica. Sin embargo, si tomamos la definición: $X_k=\sum_nx_ne^{-i2\pi kn/N}$, esto es una multiplicación de matrices, $X_k=\sum_n\Omega_{kn}x_n$, donde $\Omega_{kn}=\omega^{kn}$ y $\omega=e^{-2\pi i/N}$. De manera similar, las convoluciones pueden expresarse matemáticamente como una multiplicación por una (discreta y bandada) matriz, pero esto no se hace comúnmente (fuera de los métodos implícitos para EDP).