Я работаю над проектом распознавания изображений в реальном времени с использованием JavaScript. Да, многие могут жаловаться на неправильный язык, но мне нравится JS, и мне нравятся некоторые библиотеки ускоренного машинного обучения на GPU и доступные для него возможности. Я разработал довольно мощное распознавание изображений, которое почти достаточно быстро, чтобы работать в режиме реального времени, но даже на очень высокопроизводительном графическом процессоре одна карта просто не подходит для этой задачи, мне нужно примерно в два раза быстрее, поэтому я думая, что решение может состоять в том, чтобы иметь два отдельных окна, использующих два разных графических процессора, каждое из которых выполняет половину работы параллельно, и передавать результат в основное окно, чтобы отобразить результат обработки пользователю.
Я знаю, что с различными приложениями в Windows я могу легко выбрать, какой графический процессор я хочу использовать в окне. В прошлом я использовал обертки, такие как Electron (хотя я открыт для любой подобной системы), и думаю, что возможно будет возможно запустить два экземпляра обертки Electron, каждый из которых использует разные GPU, и пусть они общаются, но я на самом деле не уверен, что можно общаться в одном окне с другим, чтобы эффективно передавать результаты с низкой задержкой.
Я уверен, что существует множество способов связи между двумя приложениями с ОС Windows, но найти решение, которое работает с оберткой веб-страницы, такой как Electron (или что-то подобное) и делает это с очень низкой задержкой - гораздо менее тривиальная проблема.
Можно ли запустить упакованные окна веб-страниц, которые могут использовать отдельные графические процессоры (то есть Windows должна рассматривать их как отдельные приложения) и эффективно общаться? Если да, то какие есть варианты для этого и передачи любых (не всех) следующих типов данных с низкими затратами времени?
- строка
- целые
- плавает
- Массивы
- объекты
Я полагаю, что локальный сервер сокетов мог бы добиться цели, но это может быть излишним и, возможно, менее эффективным, чем лучшие решения.