Можно ли сделать вывод, используя предварительно обученную модель тензорного потока из ядра cuda? - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно сделать вывод, используя модель тензорного потока внутри ядра CUDA.Для этого мне понадобятся функции DEVICE для вывода, которые можно вызывать из ядра cuda.Ничего подобного не нашел в tenorflow C ++ API.

1 Ответ

0 голосов
/ 20 марта 2019

Я ни в коем случае не эксперт по Tensorflow. Но учтите, что выполнение вывода графического процессора в нетривиальной сети обычно включает несколько вызовов ядра. Казалось бы, маловероятно, что тот тип API, который вы ищете, существует. Даже учитывая, что запуск ядер из других ядер теоретически возможен (например, с использованием динамического параллелизма), весь смысл Tensorflow заключается в описании ваших вычислений на уровне абстракции, намного превышающем все, что связано с CUDA. Вы используете Tensorflow, чтобы сделать сопоставление для CUDA для вас. Tensorflow - это своего рода компилятор, который переводит ваш вычислительный граф во все, что он считает наилучшим способом выполнения вычислений, описанных графом на данном целевом оборудовании. Детали этого вида картирования очень специфичны для конкретной цели и могут быть изменены. Разоблачение любых подобных вещей в общедоступном API, похоже, противоречит самой природе Tensorflow. Конечно, Tensorflow является открытым исходным кодом, поэтому всегда можно просто посмотреть и выяснить, как именно выглядит код устройства, сгенерированный Tensorflow, и как он должен вызываться. Тем не менее, количество усилий, необходимых для этого, скорее всего, непомерно; и с каждой новой версией можно было бы ожидать, что все это сломается & hellip;

Вместо того, чтобы задавать вопрос о том, как вручную вызывать внутренние компоненты сеанса Tensorflow, более плодотворный подход, по-видимому, заключался бы в том, чтобы вместо этого Tensorflow вызывал вас. Может показаться, что, например, добавив пользовательскую операцию , вы можете заставить Tensorflow вызывать ваш код GPU & hellip;

...