TL: Dr.: Depende del tipo de operaciones que desee.
Respuesta completa:
Tienes 2 opciones.
- ¿Cuál es la diferencia entre factorización y parametrización?
- ¿Cuáles son algunos proyectos de investigación interesantes relacionados con el aprendizaje automático?
- Soy un graduado en ingeniería eléctrica. Quiero seguir estudios superiores en aprendizaje automático o inteligencia artificial en EE. UU. ¿Qué tengo que hacer?
- ¿Se siguen evaluando empíricamente las arquitecturas de redes neuronales profundas?
- ¿Cómo sugeriría Carlos Matias La Borde que un novato aprenda el aprendizaje automático?
1.) Aprenda CUDA desde cero, lo que significa obtener una buena comprensión del modelo de hardware, el modelo del programador y cómo CUDA asigna el modelo del programador al modelo de hardware. Aprender sobre el hardware es importante, porque si bien CUDA hace un trabajo bastante bueno al abstraer muchos de los detalles esenciales de cómo se programan los subprocesos, existen problemas cuando el conocimiento de cómo se ejecutan y se programan los subprocesos podría ser útil. Consulte Qué es la programación de nivel warp (racecheck))
Tenga en cuenta que esto requiere una gran inversión, ya que esencialmente volvería a implementar muchas bibliotecas que son eficientes y han sido probadas en batalla. Sin embargo, ignorar completamente este no es el mejor enfoque, ya que puede ser útil al implementar algunas de las operaciones.
2.) En lugar de volver a implementar todo desde cero, use las bibliotecas aceleradas por GPU. Tienen implementaciones eficientes de fft, gemm y, lo que es más importante, cudnn, que implementa algunas de las operaciones más utilizadas en Deep Learning y sirve como base para construir operaciones avanzadas.
( Importante: si está implementando una operación completamente nueva, digamos una nueva capa, que no se puede implementar en términos de lo que proporciona cudnn, tendrá que escribirla usted mismo ) .
Ahora para los recursos:
1.) Comprar procesadores de procesadores paralelos masivos: un enfoque práctico (aplicaciones de GPU Computing Series) Reserve en línea a precios bajos en India
Un libro bastante decente. Enseña CUDA, OpenCL y OpenACC.
Sin embargo, algunas de las optimizaciones que puede necesitar para hacer que sus operaciones sean eficientes no están presentes en el libro.
2.) Compre la programación de CUDA: una guía del desarrollador para la computación paralela con GPU (aplicaciones de computación Gpu) Reserve en línea a precios bajos en la India
Se enfoca solo en CUDA. Muchos estudios de casos que enseñan algunas de las técnicas que puede utilizar.
También querrás consultar varias presentaciones que la gente de NVIDIA ha publicado en línea. Como ejemplo, vea http: //developer.download.nvidia…. Este es un excelente recurso sobre cómo perfilar su operación y mejorarla iterativamente. Busque tales presentaciones y aprenda de ellas.
Finalmente, recuerda que el perfilador es tu amigo. Úselo para determinar si su operación está ligada a la memoria o calculada para una y avance desde allí.
Buena suerte.