GPU 在 ML 预测方面是不是有显着改进? (不是训练)

Posted

技术标签:

【中文标题】GPU 在 ML 预测方面是不是有显着改进? (不是训练)【英文标题】:Do GPUs have a noticeable improvement in ML predictions? (not training)GPU 在 ML 预测方面是否有显着改进? (不是训练) 【发布时间】:2021-04-25 10:47:53 【问题描述】:

我有兴趣提高机器学习预测的性能。 (我不关心训练) - GPU 会提供更高的吞吐量还是更低的延迟? - 它们适合批量或在线服务吗? - 使用 GPU 对哪些类型的模型影响最大?

【问题讨论】:

【参考方案1】:

免责声明:真正的答案是“视情况而定;如果这样的决定对您很重要,您应该在目标系统上将 CPU 性能与 GPU 性能进行比较,以做出明智的决定。”当您不想(或没有时间)进行任何基准测试时,这个答案只是建议您松散地指导您的决定。

在研究环境中,预测通常(但不总是)分批进行。因此,即使模型完全是串行的(即每对操作之间存在执行依赖关系),它也可能仍然从并行化中受益,因为这些串行操作可能必须被复制多次同时查询点,因此您可以在批处理中跨查询点并行化预测。因此,如果您的预测设置涉及批次,您几乎应该始终使用 GPU。根据我自己的研究经验,无论使用何种模型,在批量预测设置中,GPU 总是比 CPU 快。

如果您一次只进行一个预测(例如“在线”预测设置),大多数现代机器学习方法通​​常仍然具有高度的可并行性。例如,在神经网络中,层之间只有执行依赖关系;层内的节点之间没有执行依赖关系。如果每层有很多节点(大多数现代深度学习架构都有),那么您的模型可能非常可并行化,并且可以从使用 GPU 而不是 CPU 中受益。

朴素贝叶斯分类器通过计算一堆(假定的)条件独立概率来进行预测,这些概率可以并行化,然后将它们相乘,可以通过归约来并行化。因此,他们也可能受益于使用 GPU 而不是 CPU。

对于具有对偶问题方法的支持向量机,进行预测需要计算每个训练数据点与查询点的内积(内核技巧),并将每个内积乘以相应的参数和目标二进制标签。这可以很容易地以类似于朴素贝叶斯分类器的方式并行化。

名单还在继续。关键是,即使您一次处理单个查询点,大多数 ML 方法至少相对有利于并行化,如果您批量处理查询点,则非常有利于并行化。这使得它们通常在“普通”GPU 上比“普通”CPU 运行得更快。

但归根结底,这取决于您的模型和目标系统,所以如果这对您很重要,您应该进行基准测试以做出明智的决定。

【讨论】:

以上是关于GPU 在 ML 预测方面是不是有显着改进? (不是训练)的主要内容,如果未能解决你的问题,请参考以下文章

C ++:这两种将数字写入矩阵的方式之间在速度上有显着差异吗?

时间序列深度学习:状态 LSTM 模型预测太阳黑子

时间序列深度学习:状态 LSTM 模型预测太阳黑子(上)

用于 android 的 ML-Kit 人脸检测是不是支持 GPU 加速?

谁将成为人工智能芯片领域的王者?

使用 ML 对纵向数据进行分类预测