OpenCL 数学函数

根据函数的输入和输出参数的类型,把OpenCL中一些内建函数分为浮点函数和整数函数。

本节中我们就分析浮点函数。在开始讲解浮点函数之前,我们需要对浮点函数中参数及返回值的数据类型做一个约定。

我们约定:使用通用类型名gentype指示这些数学函数参数可以取f loat、f loat2、f loat3、f loat4、f loat8、f loat16、double、double2、double3、double4、double8或double16数据类型;

使用通用类型名gentypef指示这些数学函数参数可以取f loat、f loat2、f loat3、f loat4、f loat8、f loat16数据类型;

使用通用类型名gentyped指示这些数学函数参数可以取double、double2、double3、double4、double8或double16数据类型。

数学函数

OpenCL C实现了下表列出的C99规范中描述的数学函数,主机端应用程序使用这些函数时需要包含math.h文件,而在OpenCL内核中使用时无须包含math.h头文件。这些数学函数不仅支持标量浮点数,还支持矢量浮点数。
下表内核数学函数
内核数学函数

内核数学函数

内核数学函数

注意的是对于函数fma(),有些OpenCL设备可以直接在硬件上计算,这加快了处理速度。在IEEE 754中对此有定义,但是对于OpenCL设备这不是必须的,可以在clGetDeviceInfo()函数中查询CL_DEVICE_SINGLE_FP_CONFIG属性信息,根据查询结果是否有CL_FP_FMA标识。

在OpenCL中还定义了一些浮点常量值,下表列出了这些常量值。

浮点常量

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程