Advertisement

GPU编程及流式多处理器(四)

阅读量:

GPU编程和流式多处理器(四)
3.2. 单精度(32位)
单精度浮点运算在GPU计算中占据主导地位。GPU经过专门优化,能够高效地处理这种数据类型,不仅支持标准IEEE运算(如加法与乘法),还涵盖了非标准运算(如对先验函数的近似,例如sin()和log())。32位数值与整数共享相同的寄存器文件,因此在单精度浮点数值与32位整数之间进行强制转换时,使用__float_as_int()和__int_as_float()函数是无需额外开销的。

加法、乘法及乘加操作
编译器会自动将浮点数值的+、–以及_运算符转化为对应的加、乘及乘加指令。内部函数__fadd_rn()和__fmul_rn()可用于抑制融合操作,并将乘法纳入乘加指令中。

对等与除法操作
对于具备2.x或更高版本计算能力的设备,在使用–prec-div = true选项进行编译时,除法运算符遵循IEEE标准规定。而对于计算能力为1.x的设备或在计算能力为2.x但使用–prec-div = false选项进行编译的情况下,除法运算符与__fdividef(x,y)具有相同的精度水平。然而,在y值位于2126到2128区间时,若调用__fdividef(x,y),其结果会返回0;而除法运算符则返回正确的结果。此外,在相同区间内若x为无穷大,则__fdividef(x, y)将返回NaN值,而除法

全部评论 (0)

还没有任何评论哟~