2017-02-22 49 views
2

Я работаю с нейронными сетями и в настоящее время изучаю другие способы, кроме моего процессора, для ускорения процесса обучения. Используя Keras с Tensorflow на машине GPU в AWS, я смог действительно ускорить процесс.Обучение нейронных сетей параллельно, теоретическая основа

Как это распараллеливание работает в теории?(Я не рассматриваю кластерное распараллеливание)

Я изо всех сил пытался найти ссылку, поэтому попрошу вас понять, как это работает.

Спасибо заранее

+1

Если вы использовали * одиночный * GPU, то ускорение задается аппаратным ускорением при выполнении умножения матрицы. Не существует параллелизма, кроме методов эффективного вычисления работы нейронной сети на машине GPU. – fabrizioM

+0

Да, это так. Приносим извинения за второй вопрос, надеюсь, что это вас не беспокоит: есть ли что-то вроде openMP, разделяемой памяти для обучения нейронных сетей, как вы знаете? –

+1

@fabrizioM Ускорение работы с графическими процессорами - это распараллеливание, в частности [распараллеливание на уровне инструкций] (https://en.wikipedia.org/wiki/Instruction-level_parallelism). Кроме того, существует незначительное фундаментальное различие между одним GPU и несколькими GPU; в любом случае, это всего лишь куча вычислительных единиц, только в одном случае они соединены вместе на одной плате против нескольких плат. Связано: [SIMD] (https://en.wikipedia.org/wiki/SIMD). – Nat

ответ

1

В то время как я не знаком с соответствующими реализациями, обучение нейронной сети означает, что оптимизация параметров нейронной сети, например веса нейронных связей.

Общие методы оптимизации включают в себя quasi-Newton methods, которые ограничены по скорости матричными вычислениями, такими как инверсия матрицы. Графические процессоры могут значительно улучшить скорость вычислений здесь.

Ссылки:

  • "Matrix computations on the GPU", Nvidia (2013-08), обсуждается, как их GPU может выполнять большие матричные операции параллельно.

  • "Using GPUs", TensorFlow, рассказывает о том, как TensorFlow можно настроить на использование графических процессоров.