2016-11-08 7 views
0

Я построил нейронную сеть, которая должна использовать разложение Холески и решать треугольные системы как часть его вычисления. Это означает, что мне также необходимо вычислить градиенты всего вычисления, конечно.Theano: смешивание процессора и графического процессора?

Когда я пытаюсь скомпилировать код, я получаю сообщение об ошибке «No Cula available». К сожалению, я не могу скачать Cula из website.

Мне было интересно, можно ли смешивать CPU и GPU с theano. Матрицы, которые мне нужно использовать Cholesky и Solve on, являются маленькими (100x100), поэтому я мог бы сделать эту часть на процессоре. Для этого мне нужно было перенести матрицы в CPU сразу после того, как они были вычислены графическим процессором, а затем отправить результат на GPU. Возможно ли это сделать достаточно прозрачно?

ответ

1

Эта передача является прозрачной. Не нужно делать что-то особенное. Но я бы рекомендовал вам профилировать диаграмму Theano, чтобы быть уверенным: http://deeplearning.net/software/theano/tutorial/profiling.html#tut-profiling

Для cula, есть PR, который дает решение op на основе cusolver, предоставленное NVIDIA. Так что это, вероятно, больше не нужно. Попробуйте этот PR: https://github.com/Theano/Theano/pull/4917

+0

Спасибо. Я посмотрел на Холески. Похоже, что разложение вычисляется на CPU, но его градиент на графическом процессоре с использованием решения. Это верно? – Kiuhnm

+0

https://github.com/Theano/Theano/pull/4006 - старый PR, который получил переустановку, но имел проблемы во время rebase. Он добавил GpuCholesky op. – nouiz