gpt4 book ai didi

opengl - CUDA 中的半精度 float

转载 作者:行者123 更新时间:2023-12-04 13:28:50 24 4
gpt4 key购买 nike

CUDA中有半精度浮点吗?

背景:我想使用 glTexSubImage3D 操作 opengl 纹理,其中的数据来自我使用 CUDA 生成的 PBO。纹理以 GL_INTENSITY16 格式存储(这是一种半精度浮点类型 afaik),我不想使用 glPixelTransferf(GL_x_SCALE,...) 从整数值缩放,因为它似乎在没有缩放的情况下要快得多。

有什么建议吗?

最佳答案

CUDA 仅原生支持 32 位和 64 位浮点精度类型。

驱动程序和运行时 API 都支持绑定(bind)到半浮点纹理,但内核内部的读取结果将返回提升为 32 位浮点数的值。 CUDA 标准库包括 __half2float()__float2half_rn()用于在半精度和单精度浮点类型之间转换的函数(存储在 16 位整数中的半浮点数)。因此,可以在 32 位精度内核中进行操作,并使用 16 位类型完成读取和写入。但是对于 native 16 位浮点,我认为你不走运。

编辑添加,在 2015 年,NVIDIA 通过添加 half 使用 CUDA 7.5 工具包扩展了半精度浮点支持。和 half2类型和内在函数来处理它们。还宣布(尚未发布)Pascal 架构将支持硬件中符合 IEE754-2008 的半精度运算。

关于opengl - CUDA 中的半精度 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6844144/

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