gpt4 book ai didi

floating-point - NVIDIA GPU 的 OpenCL 中浮点值的原子加法?

转载 作者:行者123 更新时间:2023-12-01 23:00:18 24 4
gpt4 key购买 nike

OpenCL 3.0 规范 does not seem to have用于对浮点值进行原子加法的内在函数/内置函数,仅适用于整数值(在 OpenCL 1.x 和 2.x 中似乎也是如此)。然而,CUDA has offered浮点原子现在有一段时间了:

float  atomicAdd(float*  address, float  val); // since Fermi
double atomicAdd(double* address, double val); // since Pascal
__half atomicAdd(__half *address, __half val); // ?

自然地,任何简单的原子操作都可以通过比较和交换来模拟,而这在 OpenCL 中是可用的。但我的问题是:

  1. NVIDIA 是否以某种方式在 OpenCL 中公开了浮点原子?例如通过供应商扩展?使用编译指示?含蓄地?
  2. 是否有比比较交换模拟更有效的机制,我可以考虑将其作为浮点原子的替代品?对于 NVIDIA GPU 还是一般?

最佳答案

native 浮点原子是 OpenCL 3.0 非常需要的扩展。截至目前,它们仍然不可用。

  1. 唯一可能的方法是使用 inline PTX .
  2. 没有。 implementation with atomic compare-exchange for FP32 and FP64目前是最先进的,没有更好的方法。

2022 年 6 月更新:Floating-point atomics are being added to the OpenCL 3.0 standard但硬件供应商的采用可能仍需要一些时间。

关于floating-point - NVIDIA GPU 的 OpenCL 中浮点值的原子加法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72044986/

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