gpt4 book ai didi

c++ - Windows 多任务破坏了 OpenCL 性能

转载 作者:可可西里 更新时间:2023-11-01 10:08:10 26 4
gpt4 key购买 nike

我正在用简单的想法编写 Qt 应用程序:有几个支持 OpenCL 的设备,每个设备都有自己的控制线程,用于准备数据、执行 OpenCL 内核和处理结果。 OpenCL 代码实际上是比特币挖掘内核(现在是 this one ,但没关系)。

使用 2 个 GPU 时一切正常。当我使用 GPU 和 CPU 时出现问题。 CPU 以合理的速度工作,但 GPU 的性能下降到零。

Linux下没有这个问题。在 Windows 下,poclbm 的行为方式相同:当启动多个实例时(1 个用于 GPU,1 个用于 CPU),GPU 性能为 0。

我不确定我应该发布代码的哪一部分,所以它会很有帮助。我只能提一下,该线程是 QThread 的子级,带有 run() 并用繁忙的循环 while( !_stop ) { mineBitcoins(); }。该循环的逻辑几乎是从 poclbm 的 BitcoinMiner::mining_thread ( here ) 中复制的。

我应该朝哪个方向挖掘?谢谢。

更新:我正在使用 QtOpenCLAMD APP SDK .

最佳答案

如果您在充分利用所有内核的 CPU 上运行内核,处理其他设备的线程可能无法跟上 GPU,从而有效地限制性能。

尝试减少在 CPU 上运行内核的线程数,例如如果您的程序在具有超线程的四核上运行,请将线程数限制为 7。

关于c++ - Windows 多任务破坏了 OpenCL 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9519670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com