Performance 在GPU上并行化复杂的数据密集型计算

Performance 在GPU上并行化复杂的数据密集型计算,performance,optimization,mathematical-optimization,gpu,Performance,Optimization,Mathematical Optimization,Gpu,前言:很抱歉,这是一个非常开放的问题,因为我正在研究的确切问题将非常复杂,我认为一个抽象的公式也包含了必要的细节。如果需要更多的细节,尽管问吧 GPU计算的效率来自于能够在数千个核上并行计算,即使这些核的运行速度比传统的CPU核慢。我想知道这个想法是否适用于我正在研究的问题 我正在研究的问题是一个优化问题,其中生成了一个潜在的解决方案,计算了该解决方案的质量,并与当前的最佳解决方案进行了比较,以接近可能的最佳解决方案 在当前算法中,此惩罚的计算是迄今为止占用处理器时间最多的部分(分析表明,大约

前言:很抱歉,这是一个非常开放的问题,因为我正在研究的确切问题将非常复杂,我认为一个抽象的公式也包含了必要的细节。如果需要更多的细节,尽管问吧


GPU计算的效率来自于能够在数千个核上并行计算,即使这些核的运行速度比传统的CPU核慢。我想知道这个想法是否适用于我正在研究的问题

我正在研究的问题是一个优化问题,其中生成了一个潜在的解决方案,计算了该解决方案的质量,并与当前的最佳解决方案进行了比较,以接近可能的最佳解决方案

在当前算法中,此惩罚的计算是迄今为止占用处理器时间最多的部分(分析表明,大约5%的时间用于生成新的有效可能性,95%的时间用于计算惩罚)。然而,该惩罚的计算是一个相当复杂的过程,其中(潜在)解决方案的不同部分相互依赖,并且受到多个不同的约束,可能会对解决方案进行惩罚-该问题的数据模型目前需要存储超过200MB的RAM

有没有在GPU上为此类问题编写算法的策略?我目前的问题是,需要为处理问题的每个处理器核心/线程加载数据模型,因为生成新的解决方案所需的时间太少,所以开始使用锁并等待处理器完成其惩罚计算将是低效的

一个GPU显然没有足够的内存供每个核心使用。然而,我的理解是,如果模型存储在RAM上,GPU和CPU之间的通信开销将大大降低算法的速度(目前,这些惩罚计算中大约有100万次是在相当现代的CPU的单个核心上每秒执行的,我猜每秒向GPU传输100万次数据将很快成为瓶颈)

如果有人有任何见解,或者甚至提到过类似的问题,我将不胜感激,因为我自己的搜索结果还不多