【问题标题】:How to set CUDA floating-point rounding mode for atomics?如何为原子设置 CUDA 浮点舍入模式?
【发布时间】:2021-07-30 17:01:17
【问题描述】:

here 中讨论了 CUDA 对浮点舍入模式的处理。虽然诸如__fadd_rn 之类的各种内在函数可用于在程序的正常流程中执行舍入操作(在此处添加舍入到最近),但似乎并未指定诸如atomicAdd 之类的原子的舍入模式,并且没有讨论设置此舍入模式的方法。

是否可以设置CUDA atomics的舍入模式?

【问题讨论】:

    标签: floating-point cuda atomic


    【解决方案1】:

    你不能。

    引用PTX指令集documentation

    浮点运算.add 运算舍入到最接近的偶数。 atom.add.f32 在全局内存刷新上的当前实现 次正常的输入和结果为符号保持零;然而 共享内存上的 atom.add.f32 支持次正常的输入和结果 并且不会将它们刷新为零。

    atom.add.f16atom.add.f16x2 操作需要 .noftz 限定词;它保留了次正常的输入和结果,并且不 将它们刷新为零。

    另一种思考方式:当前 CUDA 硬件中可用的有限原子浮点支持是由内存控制器中的 ALU 完成的,而不是由 SM 中的浮点硬件完成的。后者实现了所有的舍入模式,前者没有。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      相关资源
      最近更新 更多