HMPP函数库的函数命名需遵循通用格式:[HMPPS|HMPPI]_<name>_<datatype>[_<descriptor>](<parameters>)
例如:HmppResult HMPPS_MulC_64f64s_IS(double val, int64_t *srcDst, uint32_t len, int32_t scale);
在上述例子中:
I:表明该函数是原址操作函数,函数从输入向量依次取值,经过一系列运算以后将结果保存在源向量中。
S:表明该函数使用入参的度量因子对输出作了缩放处理,实际结果可通过输出向量与缩放因子经过计算以后复原,保留计算精度。
函数名表明该函数的主要功能,格式为:<name>=<operation>[_modifier]。其中:
数据类型表明该函数处理的数据类型,通常为函数参数的数据类型。HMPP中所使用的数据类型请参见基本数据类型。
数据类型的格式为:<bit depth><bit interpretation>。其中:
对于只处理一种类型数据的函数,<datatype>域只包含上表中列出的一种值。如果函数处理的源向量和目标向量的数据类型不同,源向量和目标向量各自的数据类型都会体现在函数命名中,并且遵循固定的顺序:<datatype>=<src1Datatype>[src2Datatype][dstDatatype]。
例如,HMPPS_DotProd_32f32fc计算两个数据类型分别为32位浮点型和32位浮点型复数的源向量的点积,并将计算结果存储在32位浮点型复数的目标向量中。
描述符由一个或多个字母组成,显示更多关于函数的细节,进一步描述函数的功能。
主要描述符如表1所示。
取值 |
说明 |
举例 |
---|---|---|
I |
函数执行的是原址操作,即源向量和目标向量是同一个向量(默认是非原址操作)。 例如,原址加法操作计算公式为:srcDst = srcDst + src。 |
HMPPS_Add_16s_I |
S |
函数结果饱和并且缩放模式固定(默认饱和且无缩放)。 |
HMPPS_Add_16s_S |
Axx |
保证xx位二进制有效位的舍入。 |
HMPPS_Powx_32f_A11 |
<parameters>元素指定该函数的所有参数。
参数的排列顺序按如下规则:
参数命名遵守如下约定: