有没有一种方法可以在Windows7系统中独立执行任务并使用异构多GPU



我的桌面上可以有两个混合芯片组/一代AMD GPU吗;a 6950和4870,并仅将一个gpu(4870)用于opencl/gpgpu目的,将该设备从视频输出或显示驱动中删除,使4870基本上保持深度睡眠或显示弹出/禁用,直到调用其流处理器?

与4870相比,6950在露天矿的计算中是重量级的;足够让它可以处理数字,仍然允许活跃的用户会话,甚至网络浏览。然而,当我导航到一个嵌入了flash视频的网页时,忘记了我正在运行和打开的媒体播放器或媒体中心——基本上是任何需要6950初始化UVD的gpu加速视频任务,显示系统都会挂起。

我正在寻找一种方法,将我的4870插入一个打开的pcie插槽,使其处于休眠状态,产生接近0的热量和功耗(基本上只保持接口信号,就像断电桌面中的以太网卡保持线路并等待WOL命令),并获得D0状态(我甚至不在乎这个唤醒事件的延迟是否在秒的范围内),然后自行运行opencl计算。我不希望实现非CF异构gpu团队设置!在我的UVD挂起情况示例中,我会看到手动停止6950上的opencl计算,然后在4870上开始这些计算,以释放6950用于多媒体使用/游戏,这是我想要的结果(当然,计算速率会受到影响)。如果两个GPU能够在没有人使用桌面的情况下独立运行类似的计算,那就更好了。我甚至不介意我是否必须启动4870从"关闭"状态到"关闭"的电源状态转换(比如说,通过桌面上的快捷方式),只要它不需要系统重启、结束用户会话和注销……4870的手动开/关"开关"是任何精通windows的最终用户都可以做的事情,比如点击快捷方式运行脚本,或者甚至进入设备管理和切换启用/禁用。只要4870没有浪费时间空转一次,这种情况可能会偶尔发生。

除了为4870编写一个新的ini来覆盖为将设备用作典型图形卡而编写的典型电源管理特性之外,我想不出有什么解决方案来促进这一功能(比如说,在不放弃irq或其他分配资源的情况下进入/退出通电状态,以在接口可用性和寻址方面"敞开大门")。但这是一项远远超出我能力的努力,我很容易看到需要额外的许可参与才能实现。

Windows 7(可能还有Windows 10)没有定义"所选设备"。选择合适的设备是软件自己的责任。例如,谷歌chrome的附加软件(用于视频解码)将选择任何gpu作为其中定义的第一个目标。如果它被写为选择第一个索引设备,那么它需要两个卡的pci-e重新插入来切换它们的角色。

此操作系统适用于大多数用户(%9),而不适用于多gpu用户(%1?)。它只需选择一个gpu或对设备有明确控制的软件,并简单地对所有gpu进行基准测试并选择最快的。所以你应该寻找软件的能力,而不是操作系统。

游戏也是如此!当我在vulkan-api上玩dota-2时,它使用HD7870来计算(纹理、粒子等),但使用R7-240来计算图形!但我更喜欢相反的情况,因为R7-240抽不快。因为这个游戏是为大多数gpu不超过1的人编写的。

金钱控制发展我对此感到抱歉。然后,资金需要市场渗透。%99市场渗透需要为公众编写代码,而不是为科学人士或富人编写代码。Public只有1个gpu,这是一个便宜的gpu。

我希望:

  • 选择1 gpu用于:解压缩文件、观看视频、压缩互联网上传和文件系统缓存(最高2GB)
  • 选择另一个gpu用于:游戏、opencl应用程序、采矿等
  • 选择所有gpu用于:游戏,基准测试,被我的应用程序视为单个设备

但不能保证成为真的,因为金钱仍然会说话。

如果我是一名驱动程序开发人员,我会添加一个"重命名"选项(作为回报,我会变得很穷),为操作系统提供N个虚拟设备,因此操作系统和其他软件只能通过使用这些重命名或主设备获得整个系统的1/N次方或N/N。重命名可以是gpu的单个计算单元。当操作系统告诉驱动程序"给我共享相同内存的所有内核的%25"时,它会选择一个设备,并给系统总内核的%25%。因此,即使是用户也可以为自己的作品创建重命名。

我甚至给微软发了一条"我的第二张显卡上的文件系统缓存"的消息,但他们没有回复!

最新更新