如何将OpenCL代码从FP32转换为FP16?

时间:2018-11-14 08:36:25

标签: opencl amd gpu-programming amd-gpu half-precision-float

是否有一种方法可以自动转换为在FP32 GPU上进行FP32计算而编写的代码,以便它始终可以代替FP32进行FP16计算?

我要实现的目标是为旧的GPU(不支持HALF类型)运行代码,在具有此功能的较新GPU上运行,但是我自己无需阅读代码...

如果不可能,请告诉我应该阅读哪些文档,自己动手做...

(新GPU是Radeon Vega Frontier,驱动程序是ROCm 1.9.1,操作系统是Ubuntu 18.04) (代码是广泛的,由不同的模块组成...因此,除非有要求,否则我不会在此处发布它)

1 个答案:

答案 0 :(得分:1)

否,没有标准的标记来表示“处理浮点一半”。您必须将“ float”更改为“ half”。另外,您的设备必须支持fp16计算(很多情况下,仅支持在加载/存储时从fp32转换为fp16的存储)。 cl_khr_fp16扩展名增加了对半标量和向量类型的支持,这些类型是可用于算术运算的内置类型。在使用它的所有内核中都需要一个#prama。