c++ - 推力可以处理半精度 float (float16/IEEE 754-2008)吗?

标签 c++ cuda thrust

我正在寻找一个不需要 32 位精度的应用程序,12-16 位就足够了。

推力是否能够处理 float16(即将两个 16 位精度 float 打包/解包为 32 位字)?

我应该使用定点运算吗?

最佳答案

CUDA 硬件不包含对半精度算术的 native 支持,仅支持与浮点之间的转换。

由于 C 没有内置的 half 类型,因此转换内在函数使用 unsigned Short:

unsigned short __float2half_rn( float );
float __half2float( unsigned short );

关于c++ - 推力可以处理半精度 float (float16/IEEE 754-2008)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11755221/

相关文章:

c++ - 时间转换不确定

cuda - 阿姆达尔定律和 GPU

cuda - 多 GPU CUDA 推力

c++ - 减少 cuda 内核运行时 : dynamic memory allocation of matrices in kernel

c++ - 推力 copy_if : incomplete type is not allowed

c++ - CUDA 推力库和 cudaDeviceReset()

c++ - 有人如何定义数据类型,然后在数据类型定义之后立即在同一文件中包含的其他文件中使用它

c++ - Qt Creator 中的文件 I/O is_open() 失败

C++ 尝试设置指向新对象的指针

matrix - CUDA中有没有内置类型的矩阵用于矩阵和矩阵向量运算?