Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cuda 半精度:浮点半精度与浮点半精度之差_Cuda - Fatal编程技术网

Cuda 半精度:浮点半精度与浮点半精度之差

Cuda 半精度:浮点半精度与浮点半精度之差,cuda,Cuda,似乎没有关于这两个函数的文档 \uuuufloat2half和\uuuufloat2half之间的区别是什么?看起来CUDA文档在这里确实有点不足 在CUDA 7.5中引入新的half数据类型之前,CUDA中已经存在函数unsigned short\u float2half\u rn(float)与float\u half 2float(unsigned short x)组合。 它在设备功能.h中定义。评论如下: 将单精度浮点值x转换为以无符号短格式表示的半精度浮点值,以四舍五入到最接近的偶数模

似乎没有关于这两个函数的文档


\uuuufloat2half
\uuuufloat2half
之间的区别是什么?

看起来CUDA文档在这里确实有点不足

在CUDA 7.5中引入新的
half
数据类型之前,CUDA中已经存在函数
unsigned short\u float2half\u rn(float)
float\u half 2float(unsigned short x)
组合。 它在
设备功能.h
中定义。评论如下:

将单精度浮点值x转换为以无符号短格式表示的半精度浮点值,以四舍五入到最接近的偶数模式表示

函数
half\uu float2half(float)
cuda\u fp16.h
中定义,其作用显然相同,但返回一个
half

/*0048*/         STL.U16 [R2], R0;
在舍入到最近模式中,将浮点数a转换为半精度


但是,由于
half
unsigned short
的typedef,我用以下代码检查了它们是否也这样做:

#include <stdio.h>
#include "cuda_fp16.h"
#include "device_functions.h"
__global__ void test()
{
//  auto test = __float2half( 1.4232 );
    auto test = __float2half_rn( 1.4232 );
    printf( "%hu\n", test );
}

int main()
{
    test<<<1,1>>>();
    cudaDeviceSynchronize();
}
对于
\uuu float2half()


你查过电话号码了吗<代码>\uuu float2half()记录在这里。另一个似乎不存在。也许你的意思是
\uuuu2half2\urn()
?例如,我明白了。。。事实上,这一点在文章中已经提到了。非常感谢你详细的回答。
/*0048*/         STL.U16 [R2], R0;