Может ли Caffe или Caffe2 вводить данные непосредственно из gpu?

Я читал caffe2 учебники и пробовал предварительно подготовленные модели. Я знал, что caffe2 будет использовать GPU для запуска модели / сети. Но входные данные всегда даются из памяти CPU (то есть Host). Например, при загрузке предварительно обработанных моделей после загрузки модели мы можем предсказать изображение

result = p.run([img]) 

Однако изображение «img» следует читать в области ЦП. То, что я ищу, является каркасом, который может передавать изображения (которые декодируются из видео и все еще находится в памяти графического процессора) непосредственно в модель прогнозирования, вместо того, чтобы копировать его с GPU на область процессора, а затем снова передавать на GPU для прогнозирования результат. Является ли Caffe или Caffe2 такими функциями или интерфейсами для python или C ++? Или мне нужно заплатить Caffe, чтобы сделать это? Благодарю вообще.

  • Я хочу подождать как файлового дескриптора, так и мьютекса, какой рекомендуемый способ сделать это?
  • Строительство Mesa для окон 7. Mesa 9.1
  • Boost.Python: как открыть std :: unique_ptr
  • SWIG C-to-Python Int Array
  • Регулярное выражение для обнаружения замкнутых циклов C ++ для циклов while и while
  • Каковы некоторые методы генерации кода?
  • Признать персонажей номерного знака
  • Как исключение осуществляется под капотом?
  • взаимодействие Python и Torch7 (Lua) через общую библиотеку
  • Почему матричное умножение происходит быстрее с numpy, чем с ctypes в Python?
  • Как я могу использовать valgrind с расширениями Python C ++?
  • Портирование оптимизированного сита эратосфенов от Python до C ++
  • 2 Solutions collect form web for “Может ли Caffe или Caffe2 вводить данные непосредственно из gpu?”

    Я не думаю, что вы можете сделать это в caffe с интерфейсом python.
    Но я думаю, что это можно сделать с помощью c ++: в c ++ у вас есть доступ к mutable_gpu_data() Blob . Вы можете написать код, который запускается на устройстве, и «заполнить» входной mutable_gpu_data() Blob непосредственно из gpu. После того, как вы сделали это обновление, caffe должен иметь возможность продолжить его net->forward() .

    Как вы уже отметили, использование уровня Python заставляет данные в и из графического процессора, и это может привести к огромному успеху. Это верно не только для Caffe, но и для других фреймворков. Чтобы уточнить ответ Шая, вы можете посмотреть этот пошаговый учебник по добавлению уровней C ++ в Caffe . Приведенный пример должен касаться большинства проблем, связанных с реализацией уровня. Раскрытие информации: Я автор.

    Python - лучший язык программирования в мире.