工具/软件:
在编译器文档 SPRU514中、
对于"--fp_mode"选项、
存在:
"请注意、TMU 硬件指令和库例程之间存在算法差异、因此运算结果可能略有不同。"
"可能略有不同"是什么意思?
我们需要清楚地描述可以安全依赖的 TMU 性能。
是否有一个精确的描述"轻微的差异"?
是否有方法来衡量差异?
针对2^64可能性(除法的两个32位单通道)进行系统测试是不切实际的。
此致
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
在编译器文档 SPRU514中、
对于"--fp_mode"选项、
存在:
"请注意、TMU 硬件指令和库例程之间存在算法差异、因此运算结果可能略有不同。"
"可能略有不同"是什么意思?
我们需要清楚地描述可以安全依赖的 TMU 性能。
是否有一个精确的描述"轻微的差异"?
是否有方法来衡量差异?
针对2^64可能性(除法的两个32位单通道)进行系统测试是不切实际的。
此致
Pierre,
请参阅以下内容。
|
时间 |
TMU |
|||
|
精度(带浮点) |
输入范围限制 |
浮点周期 |
固定点周期(假设转换为浮点、计算、然后转换回固定点) |
|
|
部门 |
1 ULP (最低精度单位) |
- |
5. |
9. |
|
取平方根 |
1 ULP |
- |
5. |
9. |
|
余弦 |
2.6822 x 10^-7 |
- |
6. |
10. |
|
反正切(atan2 (y、x)) |
1.036096 x 10^-8 |
- |
10. |
14 |
|
反正切(atan (x)) |
1.036096 x 10^-8 |
[-1、1] |
6. |
10. |
|
指数 |
最大值(7 ULP、2^-20) |
6. |
10. |
|
|
自然对数 |
最大值(1 ULP、2^-23) |
- |
6. |
10. |
一个问题区域是指数、当 基址或指数变大时、精度开始下降。
输入=1.6324520、RTS 输出=5.1164045334、黄金输出=5.1164045334、RTS 错误= 0.000000
输入= 1.6324520、TMU 输出= 5.1164054871、黄金输出= 5.1164045334、TMU 误差= 0.0000009537
输入= 2.3451440、RTS 输出= 10.4347753525、黄金输出= 10.4347753525、RTS 错误= 0.0000000000
输入=2.3451440、TMU 输出=10.4347734451、黄金输出=10.4347753525、TMU 错误=-0.0000019073
输入=3.2344100、RTS 输出=25.3913879395、黄金输出=25.3913879395、RTS 错误= 0.0000000000
输入= 3.2344100、TMU 输出= 25.3913345337、Golden 输出= 25.3913879395、TMU 误差=-0.0000534058
Input=6.4230309、RTS Output=615.8668823242、Golden Output=615.8668823242、RTS Error = 0.0000000000
输入= 6.4230309、TMU 输出= 615.8727416992、黄金输出= 615.8668823242、TMU 误差= 0.0058593750
输入= 9.2389936、RTS 输出= 10290.6777343750、黄金输出= 10290.6777343750、RTS 误差= 0.0000000000
输入= 9.2389936、TMU 输出= 10290.5507812500、黄金输出= 10290.6777343750、TMU 误差=-0.1269531250
Input=13.86100001、RTS Output=1046540.0000000000、Golden Output=1046540.000000、RTS Error = 0.0000000000
输入= 13.86100001、TMU 输出= 1850481.3750000000、黄金输出= 1046540.000000、TMU 误差= 803941.37500
谢谢、
Sira