异构CPU-GPU系统是加速计算密集型应用程序的强大方法,例如子集和问题。 解决问题的许多并行算法已在图形上实现处理单元(GPU)。 但是,这些GPU实现可能无法充分利用所有CPU内核和GPU资源。 GPU执行计算任务时,仅使用一个CPU内核来控制GPU,其余所有CPU内核均处于空闲状态,这导致大量可用浪费CPU资源。 本文提出了一种高效的CPU-GPU协同计算方案解决子集和问题,从而可以充分利用两个CPU的所有计算能力和GPU。 为了找到最合适的CPU和GPU之间的任务分配比率,本文建立一个简单但有效的任务分配模型。 考虑高CPU-GPU通讯开销以及CPU和GPU之间不平衡的工作负载可能会大大降低性能, 提出了一种增量式数据传输方法,以减少CPU-GPU的通信开销,并且基于反馈的动态任务分配方案旨在有效地平衡之间的工作量运行时的CPU和GPU。 实验结果表明,CPU-GPU协同计算与仅使用CPU或仅使用GPU的计算相比,具有显着的性能优势。