Is there a way to do the task myself and use heterogeneous multi gpus on Windows 7?

Can I have two mixed AMD gpus chipsets / generations on my desktop; 6950 and 4870, and devote one gpu (4870) alone for opencl / gpgpu purposes, excluding the device from the video output or the driving display, looking at the OS, allowing the 4870 to essentially remain in deep sleep or to be thrown out / turned off as long as it has stream processors are called up?

Compared to 4870, 6950 is a heavyweight in opencl computing; enough so that it can crunch the numbers and still allows an active user session and even browsing the Internet. HOWEVER, as soon as I navigate to the webpage with the built-in flash video, forget about what I have and open the media player or media center - basically any video task with gpu-acceleration that requires 6950 to initialize UVD, display system hanging.

I am looking for a way to plug my 4870 into an open PC slot, make it sit in a sleep state with almost 0 heat consumption and power consumption (essentially only support interface alarms such as an Ethernet card in a disconnected desktop, supporting the line and waiting WOL command), and will reach state D0 (I don’t even care if the latency of this wake-up event is on a second scale), then run opencl ON ITS OWN calculations. I do not want to create a non-CF heterogeneous setup of the gpu command! In my example of a UVD situation, I would see manually stopping opencl calculations at 6950, starting these calculations, and then at 4870 to free 6950 to use multimedia / games as my wish result (provided with a strike on the calculation rate). Even better, if two gpus can independently run such calculations, while no one is using the desktop. I don’t even mind if I need to initiate transitions of the 4870 power state from / to the “OFF” state (say, a shortcut on the desktop), if it does not require a system restart, termination of the user session and logout ... and the manual ON switch / OFF for 4870 is something any experienced Windows end user can do, for example, clicking a shortcut to launch a script or even controlling a device and turning on / off the inclusion. So far, the 4870 is not wasting idly for one single use, which can occur sporadically.

I could not come up with a solution to facilitate this function, in addition to writing a new ini for 4870, to override the typical power management characteristics written to use the device as a typical video card (say, to turn off / on the power state without rejecting irq or other allocated resources, to “keep the door open” for interface accessibility and addressing). But this is an aspiration that far surpasses my abilities, and I can easily see that additional involvement in the licensing process is required.

+4
source share
1 answer

Windows 7 (and possibly Windows 10) does not define a "selected device." This software is responsible for choosing the right device. For example, google chrome add-on software (for video decoding) will select any gpu that will be used as the first target defined in it. If it is written in order to select a device with the first indexing, for its roles it needs to restart pci-e of both cards.

This OS is written for most (% 99) users, and not for users with multiple gpu (% 1?). It just selects one of gpus or the software has explicit control over the devices and just checks all gpus and selects the fastest. Therefore, you should look for software features instead of the OS.

The same goes for games! When I play dota-2 on the api volcano, it uses the HD7870 to calculate (textures, particles, etc.), but it uses the R7-240 for graphics! But I prefer the opposite, because the R7-240 cannot draw quickly. Because this game is written for most people who have no more than 1 gpu.

Cash management. I apologize for this. Then you need to enter the market for money. To enter the market 99% requires writing code for public, not scientific guys or the rich. The public is just 1 gpu and it is cheap.

I wish for this:

  • select 1 gpu for: unzipping files, watching videos, compressing Internet downloads and caching for the file system (up to 2 GB).
  • choose another gpu for: games, opencl applications, development, ...
  • select all gpus for: games, benchmarks, considered as one device in my applications, ..

but it is not guaranteed that he will become true, because the money is still said.

If I were a driver developer, I would add the “rename” option (and become a bad one in return) to provide N virtual OS devices, so the OS and other software will be able to get only 1 / N-th degree of the whole system or N / N, just using these renames or basic devices. Renaming can be one gpu computing unit. When the OS tells the drivers “give me% 25 of all the cores that use the same memory”, so it selects the device and gives% 25 of the total number of system cores. Therefore, even users can create renames for their work.

I even sent a message to microsoft for the "file system cache on my second video card", but they did not return!

0
source

All Articles