Есть ли способ самостоятельно задавать и использовать разнородные мульти GPU в системе Windows 7?
Могу ли я иметь два смешанных чипсета / поколения AMD GPU на моем рабочем столе; 6950 и 4870, и выделите один графический процессор (4870) только для целей opencl/gpgpu, исключив устройство из видеовыхода или показа движущей силы ОС, позволяя 4870 оставаться в глубоком сне или казаться выброшенным / отключенным до тех пор, пока потоковые процессоры называются?
По сравнению с 4870, 6950 является тяжелым в вычислениях opencl; Достаточно, чтобы он мог подсчитывать числа и при этом разрешать активный сеанс пользователя и даже просмотр веб-страниц. ОДНАКО, как только я перехожу на веб-страницу со встроенным флэш-видео, забываю, что у меня запущено, и открываю медиаплеер или медиацентр - в основном, любую видеокарту с ускорением GPU, которая требует 6950 для инициализации UVD, система отображения зависает.
Я ищу способ подключить мой 4870 к открытому разъему pcie, чтобы он находился в бездействующем состоянии с почти 0 тепловыделением и энергопотреблением (по сути, поддерживается только сигнализация интерфейса, как карта Ethernet в выключенном состоянии). рабочий стол, поддерживающий линию и ожидающий команду WOL), и достижение состояния D0 (мне даже все равно, будет ли задержка этого события пробуждения масштабироваться в секундах), чтобы затем выполнить вычисления opencl НА СВОЕМ СОБСТВЕННОМ. Я не желаю добиваться настройки разнородного графического процессора без CF! В моем примере ситуации зависания UVD я видел бы ручную остановку вычислений opencl на 6950, начиная эти вычисления, а затем на 4870, чтобы освободить 6950 для использования мультимедиа / игр в качестве результата моего желания (предоставлено, с ударом по расчету темп). Еще лучше, если бы два gpus могли независимо выполнять аналогичные вычисления, пока никто не использует рабочий стол. Я даже не возражаю, если мне придется инициировать переходы состояния питания 4870 из / в состояние "ВЫКЛ" (скажем, с помощью ярлыка на рабочем столе), если это не требует перезагрузки системы, завершение сеанса пользователя и выход из системы... и ручной переключатель "ВКЛ / ВЫКЛ" для 4870 - это то, что может сделать любой опытный конечный пользователь Windows - например, щелкнуть ярлык для запуска сценария или даже перейти к управлению устройством и переключению включить выключить. До тех пор, пока 4870 не работает вхолостую на холостом ходу для одного использования, которое может происходить спорадически.
Я не мог придумать решение для облегчения этой функции, кроме написания нового ini для 4870, чтобы переопределить типичные характеристики управления питанием, написанные для использования устройства в качестве типичной видеокарты (скажем, для включения / выключения питания с o отказ от irq или других выделенных ресурсов, чтобы "держать дверь открытой" при наличии интерфейса и адресации). Но это усилие, которое намного превосходит мои возможности, и я легко вижу необходимость в дополнительном лицензировании.
1 ответ
Windows 7 (и, возможно, Windows 10) не определяет "выбранное устройство". Ответственность за выбор правильного устройства лежит на самих программах. Например, дополнительное программное обеспечение Google Chrome(для декодирования видео) выберет gpu в качестве первой цели, определенной в нем. Если он написан для выбора устройства с первым индексированием, то ему необходимо повторно подключить pci-e обеих карт для переключения их ролей.
Эта ОС написана для большинства пользователей (%99), а не для пользователей с несколькими процессорами (%1?). Он просто выбирает один из gpus или программного обеспечения, имеет явный контроль над устройствами и просто тестирует все gpus и выбирает самые быстрые. Таким образом, вы должны искать возможности программного обеспечения, а не ОС.
То же самое относится и к играм! Когда я играю в dota-2 на vulkan api, он использует HD7870 для вычислений (текстур, частиц и т. Д.), Но использует R7-240 для графики! Но я предпочитаю обратное, потому что R7-240 не может быстро рисовать. Потому что эта игра написана для большинства людей, у которых не более 1 графического процессора.
Деньги контролируют развитие, извините за это. Затем необходимо проникновение на рынок за деньги. Для проникновения на рынок 99% необходимо написать код для публики, а не для научных ребят или богатых. Публика имеет всего 1 GPU, и это дешево.
Я хочу это:
- выберите 1 GPU для: разархивирования файлов, просмотра видео, сжатия интернет-загрузок и кэширования для файловой системы (до 2 ГБ)
- выберите другой gpu для: игр, приложений opencl, майнинга,..
- выбрать все графические процессоры для: игр, тестов, которые мои приложения рассматривают как одно устройство,..
но это не гарантировано, потому что деньги все еще говорят.
Если бы я был разработчиком драйверов, я бы добавил опцию "переименовать" (и получить плохую отдачу), чтобы отдать N виртуальных устройств ОС, чтобы ОС и другое программное обеспечение могли получать только 1/N мощность всей системы. или N/N, просто используя эти переименования или основные устройства. Переименование может быть одной вычислительной единицей графического процессора. Когда ОС сообщает драйверам "дайте мне%25 от всех ядер, которые разделяют одну и ту же память", она выбирает устройство и выдает%25 от общего количества ядер системы. Так что даже пользователи могут создавать переименования для своей работы.
Я даже отправил в Microsoft сообщение "Кэш файловой системы на моей 2-й видеокарте", но они не вернулись!