Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 5): Cálculos multihilo en OpenCL" - página 2

 
Aleksey Vyazmikin:

Así que esto no es noticia - había 1 núcleo, y estaba cargado, y ahora hay dos núcleos, la carga ha disminuido en la mitad.... Lo más probable es que los cambios sean más significativos y la comparación no sea correcta.

Para entender las razones de la aceleración no es suficiente para mirar el número de núcleos, también debe mirar a la arquitectura de los cálculos.
 
Dmitriy Gizlyk:
Para entender las razones de la aceleración, no basta con mirar el número de núcleos, también hay que fijarse en la arquitectura informática.

Estoy de acuerdo. No he entendido por qué se han paralelizado 4 vectores en lugar de 2.

 
Aleksey Vyazmikin:

Así que esto no es noticia - había 1 núcleo, y estaba cargado, y ahora hay dos núcleos, la carga ha disminuido en la mitad.... Lo más probable es que los cambios sean más significativos y la comparación no sea correcta.

Más eficiente puede ser la asignación de memoria, un núcleo obtiene los datos en su totalidad a la vez, sin redistribución. Resulta ser más rápido. Pero para algunas tareas puede ser más lento cuando los cálculos del núcleo consumen muchos recursos.

 
Aleksey Vyazmikin:

De acuerdo. Aquí no entendí por qué entonces se paralelizaban 4 vectores y no 2?

Se paralelizaron 2 vectores de 4 elementos cada uno. Vectores enp y peso. Pusieron 4 elementos en cada uno y luego los multiplicaron en punto.

dot(inp,weight) -> i1*w1+i2*w2+i3*w3+i4*w4
 
Dmitriy Gizlyk

Dimitri, gracias por la respuesta.

 
Maxim Dmitrievsky:

Más eficiente puede ser la asignación de memoria, el núcleo obtiene los datos en su totalidad a la vez, sin reasignación. Resulta ser más rápido. Pero para algunas tareas puede ser más lento cuando los cálculos del núcleo consumen muchos recursos.

Puede ser.

 
Gracias por la serie de artículos, interesante e informativo. Pero la forma de entrenar la red, algo que no entiendo. Ya lo he ejecutado varias veces en el gráfico EURUSD. El pronóstico crece y luego empieza a caer. ¿Alguien ha entrenado ya la red?
 
Dmitriy Gizlyk:

Se paralelizan dos vectores de 4 elementos cada uno. Vectores inp (datos iniciales) y weight (pesos). Se escriben cuatro elementos en cada uno y luego se multiplican en punto

¿Es decir, debido a la operación de multiplicación secuencial se produce un incremento? Al fin y al cabo, se paralelizan dos vectores en los que se realizan secuencialmente 4 multiplicaciones (condicionalmente) en cada vector?

 
Artículo muy interesante y el tema de las redes neuronales es un tema candente hoy en día. Gracias al autor por el buen trabajo.
 
Aleksey Vyazmikin:

¿Es decir, debido a la operación de multiplicación secuencial se produce un incremento? Al fin y al cabo, se paralelizan dos vectores en los que se realizan secuencialmente 4 multiplicaciones (condicionalmente) en cada vector?

El uso de operaciones vectoriales permite realizar el producto de 4 elementos en paralelo en lugar de secuencialmente. Mira el vídeo https://ru.coursera.org/lecture/parallelnoye-programmirovaniye/4-1-chto-takoie-viektorizatsiia-i-zachiem-ona-nuzhna-f8lh3. Es sobre OpenMP, pero el significado es el mismo.

4.1. Что такое векторизация и зачем она нужна - Векторные вычисления с помощью OpenMP 4.0 | Coursera
4.1. Что такое векторизация и зачем она нужна - Векторные вычисления с помощью OpenMP 4.0 | Coursera
  • ru.coursera.org
Video created by Национальный исследовательский Томский государственный университет for the course "Введение в параллельное программирование с использованием OpenMP и MPI". Приветствуем вас на четвертой неделе курса! На этой недели мы разберемся ...